-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApplication-template.yml
132 lines (113 loc) · 3.6 KB
/
Application-template.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
AWSTemplateFormatVersion: '2010-09-09'
Description: Elastic Beanstalk
Parameters:
ProjectName:
Type: String
ApplicationName:
Type: String
Default: capstone
EnvironmentName:
Type: String
Default: elasticbeanstalk
AppS3Key:
Type: String
Default: Application-0.0.1-SNAPSHOT.jar
SolutionStackName:
Type: String
Default: 64bit Amazon Linux 2 v3.4.3 running Corretto 11
Resources:
EBInstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Roles:
- !Ref EBEC2Role
EBEC2Role:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: 'Allow'
Principal:
Service:
- 'ec2.amazonaws.com'
Action:
- 'sts:AssumeRole'
ManagedPolicyArns:
- 'arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier'
- 'arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier'
- 'arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker'
- 'arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess'
- 'arn:aws:iam::aws:policy/AWSCloudFormationFullAccess'
- 'arn:aws:iam::aws:policy/AutoScalingFullAccess'
RoleName: 'aws-elasticbeanstalk-ec2-role'
EBServiceRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: 'Allow'
Principal:
Service:
- 'elasticbeanstalk.amazonaws.com'
Action:
- 'sts:AssumeRole'
ManagedPolicyArns:
- 'arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth'
- 'arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkService'
RoleName: 'aws-elasticbeanstalk-service-role'
SecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Security Group
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '80'
ToPort: '80'
CidrIp: 0.0.0.0/0
Application:
Type: AWS::ElasticBeanstalk::Application
Properties:
ApplicationName: !Ref ApplicationName
ApplicationVersion:
Type: AWS::ElasticBeanstalk::ApplicationVersion
Properties:
ApplicationName: !Ref Application
SourceBundle:
S3Bucket: !Join
- ''
- - !Ref ProjectName
- '-artifacts'
S3Key: !Ref AppS3Key
Environment:
Type: AWS::ElasticBeanstalk::Environment
Properties:
EnvironmentName: !Sub "${ApplicationName}-${EnvironmentName}"
ApplicationName: !Ref Application
TemplateName: !Ref ConfigurationTemplate
VersionLabel: !Ref ApplicationVersion
DependsOn:
- ConfigurationTemplate
- ApplicationVersion
ConfigurationTemplate:
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
Properties:
ApplicationName: !Ref Application
SolutionStackName: !Ref SolutionStackName
OptionSettings:
- Namespace: aws:elasticbeanstalk:environment
OptionName: EnvironmentType
Value: SingleInstance
- Namespace: aws:elasticbeanstalk:environment
OptionName: LoadBalancerType
Value: application
- Namespace: aws:elasticbeanstalk:environment
OptionName: ServiceRole
Value: !Ref EBServiceRole
- Namespace: aws:autoscaling:launchconfiguration
OptionName: IamInstanceProfile
Value: !Ref EBInstanceProfile
- Namespace: aws:autoscaling:launchconfiguration
OptionName: SecurityGroups
Value: !Ref SecurityGroup