Skip to content

Commit 994aab3

Browse files
Ken LippoldKen Lippold
authored andcommitted
Updated AWS worker deployment
1 parent ae21824 commit 994aab3

2 files changed

Lines changed: 73 additions & 7 deletions

File tree

terraform/aws/app-runner.tf

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,7 @@ resource "aws_iam_role" "app_runner_service_role" {
188188
Action = "sts:AssumeRole"
189189
Effect = "Allow"
190190
Principal = {
191-
Service = [
192-
"tasks.apprunner.amazonaws.com",
193-
"ecs-tasks.amazonaws.com"
194-
]
191+
Service = "tasks.apprunner.amazonaws.com"
195192
}
196193
}
197194
]

terraform/aws/fargate.tf

Lines changed: 72 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ resource "aws_ecs_task_definition" "hydroserver_worker" {
1717
network_mode = "awsvpc"
1818
cpu = "1024" # 1 vCPU
1919
memory = "2048" # 2 GB
20-
execution_role_arn = aws_iam_role.app_runner_access_role.arn
21-
task_role_arn = aws_iam_role.app_runner_service_role.arn
20+
execution_role_arn = aws_iam_role.ecs_worker_execution_role.arn
21+
task_role_arn = aws_iam_role.ecs_worker_task_role.arn
2222

2323
container_definitions = jsonencode([
2424
{
@@ -85,4 +85,73 @@ resource "aws_ecs_service" "hydroserver_worker" {
8585

8686
deployment_minimum_healthy_percent = 100
8787
deployment_maximum_percent = 200
88-
}
88+
}
89+
90+
91+
# ---------------------------------
92+
# ECS Task Role
93+
# ---------------------------------
94+
95+
resource "aws_iam_role" "ecs_worker_task_role" {
96+
name = "hydroserver-${var.instance}-ecs-worker-role"
97+
98+
assume_role_policy = jsonencode({
99+
Version = "2012-10-17"
100+
Statement = [{
101+
Effect = "Allow"
102+
Action = "sts:AssumeRole"
103+
Principal = {
104+
Service = "ecs-tasks.amazonaws.com"
105+
}
106+
}]
107+
})
108+
}
109+
110+
resource "aws_iam_policy_attachment" "ecs_worker_role_ssm" {
111+
name = "hydroserver-${var.instance}-ecs-ssm-attachment"
112+
roles = [aws_iam_role.ecs_worker_task_role.name]
113+
policy_arn = aws_iam_policy.app_runner_ssm_policy.arn
114+
}
115+
116+
resource "aws_iam_policy_attachment" "ecs_worker_task_role_s3" {
117+
name = "hydroserver-${var.instance}-ecs-s3-attachment"
118+
roles = [aws_iam_role.ecs_worker_task_role.name]
119+
policy_arn = aws_iam_policy.app_runner_s3_policy.arn
120+
}
121+
122+
resource "aws_iam_policy_attachment" "ecs_worker_task_role_rds" {
123+
name = "hydroserver-${var.instance}-ecs-worker-rds-attachment"
124+
roles = [aws_iam_role.ecs_worker_task_role.name]
125+
policy_arn = aws_iam_policy.app_runner_rds_policy[0].arn
126+
}
127+
128+
# ---------------------------------
129+
# ECS Execution Role
130+
# ---------------------------------
131+
132+
resource "aws_iam_role" "ecs_worker_execution_role" {
133+
name = "hydroserver-${var.instance}-ecs-worker-execution-role"
134+
135+
assume_role_policy = jsonencode({
136+
Version = "2012-10-17"
137+
Statement = [{
138+
Effect = "Allow"
139+
Action = "sts:AssumeRole"
140+
Principal = {
141+
Service = "ecs-tasks.amazonaws.com"
142+
}
143+
}]
144+
})
145+
}
146+
147+
resource "aws_iam_policy_attachment" "ecs_worker_execution_ecr" {
148+
name = "hydroserver-${var.instance}-ecs-worker-ecr-attachment"
149+
roles = [aws_iam_role.ecs_worker_execution_role.name]
150+
policy_arn = aws_iam_policy.app_runner_ecr_access_policy.arn
151+
}
152+
153+
resource "aws_iam_policy_attachment" "ecs_worker_execution_logs" {
154+
name = "hydroserver-${var.instance}-ecs-worker-logs-attachment"
155+
roles = [aws_iam_role.ecs_worker_execution_role.name]
156+
policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
157+
}

0 commit comments

Comments
 (0)