-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathhitcount.yml
146 lines (145 loc) · 4.15 KB
/
hitcount.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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
SubnetID:
Type: String
Default: subnet-1195677a
Resources:
Cluster:
Type: AWS::ECS::Cluster
Properties:
ClusterName: deployment-hit-cluster
RedisLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: deployment-web-log-group
WebLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: deployment-redis-log-group
ExecutionRole:
Type: AWS::IAM::Role
Properties:
RoleName: deployment-hit-role
AssumeRolePolicyDocument:
Statement:
- Effect: Allow
Principal:
Service: ecs-tasks.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
ContainerSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupName: ContainerSecurityGroup
GroupDescription: Security group for NGINX container
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 0.0.0.0/0
JenContainerSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupName: JenContainerSecurityGroup
GroupDescription: Security group for NGINX container
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 8080
ToPort: 8080
CidrIp: 0.0.0.0/0
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
Family: deployment-hit-task
Cpu: 256
Memory: 512
NetworkMode: awsvpc
ExecutionRoleArn: !Ref ExecutionRole
ContainerDefinitions:
- Name: nginx
Image: nginx
PortMappings:
- ContainerPort: 80
LogConfiguration:
LogDriver: awslogs
Options:
awslogs-region: !Ref AWS::Region
awslogs-group: !Ref WebLogGroup
awslogs-stream-prefix: ecs
# - Name: redis
# Image: redis
# Essential: true
# PortMappings:
# - ContainerPort: 6379
# LogConfiguration:
# LogDriver: awslogs
# Options:
# awslogs-region: !Ref AWS::Region
# awslogs-group: !Ref RedisLogGroup
# awslogs-stream-prefix: ecs
# - Name: web
# Image: devopsjuly22017/web
# PortMappings:
# - ContainerPort: 5000
# LogConfiguration:
# LogDriver: awslogs
# Options:
# awslogs-region: !Ref AWS::Region
# awslogs-group: !Ref WebLogGroup
# awslogs-stream-prefix: ecs
RequiresCompatibilities:
- EC2
- FARGATE
Service:
Type: AWS::ECS::Service
Properties:
ServiceName: deployment-hit-service
Cluster: !Ref Cluster
TaskDefinition: !Ref TaskDefinition
DesiredCount: 1
LaunchType: FARGATE
NetworkConfiguration:
AwsvpcConfiguration:
AssignPublicIp: ENABLED
Subnets:
- !Ref SubnetID
SecurityGroups:
- !GetAtt ContainerSecurityGroup.GroupId
JenTaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
Family: deployment-jen-task
Cpu: 256
Memory: 512
NetworkMode: awsvpc
ExecutionRoleArn: !Ref ExecutionRole
ContainerDefinitions:
- Name: nginx
Image: jenkins/jenkins:lts
PortMappings:
- ContainerPort: 8080
LogConfiguration:
LogDriver: awslogs
Options:
awslogs-region: !Ref AWS::Region
awslogs-group: !Ref WebLogGroup
awslogs-stream-prefix: ecs
RequiresCompatibilities:
- EC2
- FARGATE
JenService:
Type: AWS::ECS::Service
Properties:
ServiceName: deployment-jen-service
Cluster: !Ref Cluster
TaskDefinition: !Ref JenTaskDefinition
DesiredCount: 1
LaunchType: FARGATE
NetworkConfiguration:
AwsvpcConfiguration:
AssignPublicIp: ENABLED
Subnets:
- !Ref SubnetID
SecurityGroups:
- !GetAtt ContainerSecurityGroup.GroupId