Skip to content

Commit ccfe5e7

Browse files
committed
refactor: simplify autoscaling defaults with try() and update ECS settings
• Replace manual null checks with try() in _local.tf for autoscaling values. • Remove redundant fargate_* settings from service_data. • Update ECS task and service definitions to pull cpu, memory, and desired_count from override_autoscaling. • Add new architectural design sections to README.
1 parent fc2deea commit ccfe5e7

3 files changed

Lines changed: 51 additions & 73 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
- [2.5 Records Management Standard Notice](#25-records-management-standard-notice)
1212
- [2.6 Additional Standard Notices](#26-additional-standard-notices)
1313
- [3. Architectural Design](#3-architectural-design)
14+
- [Requirements](#requirements)
15+
- [Providers](#providers)
16+
- [Modules](#modules)
17+
- [Resources](#resources)
18+
- [Inputs](#inputs)
19+
- [Outputs](#outputs)
1420

1521
# 1. Overview
1622

_local.tf

Lines changed: 42 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -37,69 +37,65 @@ locals {
3737
auth_secret = var.secrets_manager_auth_secret_version != "" ? { name = "NEXTAUTH_SECRET", value = var.secrets_manager_auth_secret_version } : null
3838
override_autoscaling = {
3939
ecr-viewer = {
40-
cpu = var.override_autoscaling["ecr-viewer"].cpu != null ? var.override_autoscaling["ecr-viewer"].cpu : 512,
41-
memory = var.override_autoscaling["ecr-viewer"].memory != null ? var.override_autoscaling["ecr-viewer"].memory : 1024,
42-
min_capacity = var.override_autoscaling["ecr-viewer"].min_capacity != null ? var.override_autoscaling["ecr-viewer"].min_capacity : 1,
43-
max_capacity = var.override_autoscaling["ecr-viewer"].max_capacity != null ? var.override_autoscaling["ecr-viewer"].max_capacity : 5,
44-
target_cpu = var.override_autoscaling["ecr-viewer"].target_cpu != null ? var.override_autoscaling["ecr-viewer"].target_cpu : 50,
45-
target_memory = var.override_autoscaling["ecr-viewer"].target_memory != null ? var.override_autoscaling["ecr-viewer"].target_memory : 80
40+
cpu = try(var.override_autoscaling["ecr-viewer"].cpu, 512),
41+
memory = try(var.override_autoscaling["ecr-viewer"].memory, 1024),
42+
min_capacity = try(var.override_autoscaling["ecr-viewer"].min_capacity, 1),
43+
max_capacity = try(var.override_autoscaling["ecr-viewer"].max_capacity, 5),
44+
target_cpu = try(var.override_autoscaling["ecr-viewer"].target_cpu, 50),
45+
target_memory = try(var.override_autoscaling["ecr-viewer"].target_memory, 80)
4646
},
4747
fhir-converter = {
48-
cpu = var.override_autoscaling["fhir-converter"].cpu != null ? var.override_autoscaling["fhir-converter"].cpu : 1024,
49-
memory = var.override_autoscaling["fhir-converter"].memory != null ? var.override_autoscaling["fhir-converter"].memory : 2048,
50-
min_capacity = var.override_autoscaling["fhir-converter"].min_capacity != null ? var.override_autoscaling["fhir-converter"].min_capacity : 1,
51-
max_capacity = var.override_autoscaling["fhir-converter"].max_capacity != null ? var.override_autoscaling["fhir-converter"].max_capacity : 5,
52-
target_cpu = var.override_autoscaling["fhir-converter"].target_cpu != null ? var.override_autoscaling["fhir-converter"].target_cpu : 50,
53-
target_memory = var.override_autoscaling["fhir-converter"].target_memory != null ? var.override_autoscaling["fhir-converter"].target_memory : 80
48+
cpu = try(var.override_autoscaling["fhir-converter"].cpu, 512),
49+
memory = try(var.override_autoscaling["fhir-converter"].memory, 1024),
50+
min_capacity = try(var.override_autoscaling["fhir-converter"].min_capacity, 1),
51+
max_capacity = try(var.override_autoscaling["fhir-converter"].max_capacity, 5),
52+
target_cpu = try(var.override_autoscaling["fhir-converter"].target_cpu, 50),
53+
target_memory = try(var.override_autoscaling["fhir-converter"].target_memory, 80)
5454
},
5555
ingestion = {
56-
cpu = var.override_autoscaling["ingestion"].cpu != null ? var.override_autoscaling["ingestion"].cpu : 512,
57-
memory = var.override_autoscaling["ingestion"].memory != null ? var.override_autoscaling["ingestion"].memory : 1024,
58-
min_capacity = var.override_autoscaling["ingestion"].min_capacity != null ? var.override_autoscaling["ingestion"].min_capacity : 1,
59-
max_capacity = var.override_autoscaling["ingestion"].max_capacity != null ? var.override_autoscaling["ingestion"].max_capacity : 5,
60-
target_cpu = var.override_autoscaling["ingestion"].target_cpu != null ? var.override_autoscaling["ingestion"].target_cpu : 50,
61-
target_memory = var.override_autoscaling["ingestion"].target_memory != null ? var.override_autoscaling["ingestion"].target_memory : 80
56+
cpu = try(var.override_autoscaling["ingestion"].cpu, 512),
57+
memory = try(var.override_autoscaling["ingestion"].memory, 1024),
58+
min_capacity = try(var.override_autoscaling["ingestion"].min_capacity, 1),
59+
max_capacity = try(var.override_autoscaling["ingestion"].max_capacity, 5),
60+
target_cpu = try(var.override_autoscaling["ingestion"].target_cpu, 50),
61+
target_memory = try(var.override_autoscaling["ingestion"].target_memory, 80)
6262
},
6363
validation = {
64-
cpu = var.override_autoscaling["validation"].cpu != null ? var.override_autoscaling["validation"].cpu : 512,
65-
memory = var.override_autoscaling["validation"].memory != null ? var.override_autoscaling["validation"].memory : 1024,
66-
min_capacity = var.override_autoscaling["validation"].min_capacity != null ? var.override_autoscaling["validation"].min_capacity : 1,
67-
max_capacity = var.override_autoscaling["validation"].max_capacity != null ? var.override_autoscaling["validation"].max_capacity : 5,
68-
target_cpu = var.override_autoscaling["validation"].target_cpu != null ? var.override_autoscaling["validation"].target_cpu : 50,
69-
target_memory = var.override_autoscaling["validation"].target_memory != null ? var.override_autoscaling["validation"].target_memory : 80
64+
cpu = try(var.override_autoscaling["validation"].cpu, 512),
65+
memory = try(var.override_autoscaling["validation"].memory, 1024),
66+
min_capacity = try(var.override_autoscaling["validation"].min_capacity, 1),
67+
max_capacity = try(var.override_autoscaling["validation"].max_capacity, 5),
68+
target_cpu = try(var.override_autoscaling["validation"].target_cpu, 50),
69+
target_memory = try(var.override_autoscaling["validation"].target_memory, 80)
7070
},
7171
trigger-code-reference = {
72-
cpu = var.override_autoscaling["trigger-code-reference"].cpu != null ? var.override_autoscaling["trigger-code-reference"].cpu : 512,
73-
memory = var.override_autoscaling["trigger-code-reference"].memory != null ? var.override_autoscaling["trigger-code-reference"].memory : 1024,
74-
min_capacity = var.override_autoscaling["trigger-code-reference"].min_capacity != null ? var.override_autoscaling["trigger-code-reference"].min_capacity : 1,
75-
max_capacity = var.override_autoscaling["trigger-code-reference"].max_capacity != null ? var.override_autoscaling["trigger-code-reference"].max_capacity : 5,
76-
target_cpu = var.override_autoscaling["trigger-code-reference"].target_cpu != null ? var.override_autoscaling["trigger-code-reference"].target_cpu : 50,
77-
target_memory = var.override_autoscaling["trigger-code-reference"].target_memory != null ? var.override_autoscaling["trigger-code-reference"].target_memory : 80
72+
cpu = try(var.override_autoscaling["trigger-code-reference"].cpu, 512),
73+
memory = try(var.override_autoscaling["trigger-code-reference"].memory, 1024),
74+
min_capacity = try(var.override_autoscaling["trigger-code-reference"].min_capacity, 1),
75+
max_capacity = try(var.override_autoscaling["trigger-code-reference"].max_capacity, 5),
76+
target_cpu = try(var.override_autoscaling["trigger-code-reference"].target_cpu, 50),
77+
target_memory = try(var.override_autoscaling["trigger-code-reference"].target_memory, 80)
7878
},
7979
message-parser = {
80-
cpu = var.override_autoscaling["message-parser"].cpu != null ? var.override_autoscaling["message-parser"].cpu : 512,
81-
memory = var.override_autoscaling["message-parser"].memory != null ? var.override_autoscaling["message-parser"].memory : 1024,
82-
min_capacity = var.override_autoscaling["message-parser"].min_capacity != null ? var.override_autoscaling["message-parser"].min_capacity : 1,
83-
max_capacity = var.override_autoscaling["message-parser"].max_capacity != null ? var.override_autoscaling["message-parser"].max_capacity : 5
84-
target_cpu = var.override_autoscaling["message-parser"].target_cpu != null ? var.override_autoscaling["message-parser"].target_cpu : 50,
85-
target_memory = var.override_autoscaling["message-parser"].target_memory != null ? var.override_autoscaling["message-parser"].target_memory : 80
80+
cpu = try(var.override_autoscaling["message-parser"].cpu, 512),
81+
memory = try(var.override_autoscaling["message-parser"].memory, 1024),
82+
min_capacity = try(var.override_autoscaling["message-parser"].min_capacity, 1),
83+
max_capacity = try(var.override_autoscaling["message-parser"].max_capacity, 5),
84+
target_cpu = try(var.override_autoscaling["message-parser"].target_cpu, 50),
85+
target_memory = try(var.override_autoscaling["message-parser"].target_memory, 80)
8686
},
8787
orchestration = {
88-
cpu = var.override_autoscaling["orchestration"].cpu != null ? var.override_autoscaling["orchestration"].cpu : 512,
89-
memory = var.override_autoscaling["orchestration"].memory != null ? var.override_autoscaling["orchestration"].memory : 1024,
90-
min_capacity = var.override_autoscaling["orchestration"].min_capacity != null ? var.override_autoscaling["orchestration"].min_capacity : 1,
91-
max_capacity = var.override_autoscaling["orchestration"].max_capacity != null ? var.override_autoscaling["orchestration"].max_capacity : 5
92-
target_cpu = var.override_autoscaling["orchestration"].target_cpu != null ? var.override_autoscaling["orchestration"].target_cpu : 50,
93-
target_memory = var.override_autoscaling["orchestration"].target_memory != null ? var.override_autoscaling["orchestration"].target_memory : 80
88+
cpu = try(var.override_autoscaling["orchestration"].cpu, 512),
89+
memory = try(var.override_autoscaling["orchestration"].memory, 1024),
90+
min_capacity = try(var.override_autoscaling["orchestration"].min_capacity, 1),
91+
max_capacity = try(var.override_autoscaling["orchestration"].max_capacity, 5),
92+
target_cpu = try(var.override_autoscaling["orchestration"].target_cpu, 50),
93+
target_memory = try(var.override_autoscaling["orchestration"].target_memory, 80)
9494
}
9595
}
9696
service_data = length(var.service_data) > 0 ? var.service_data : {
9797
ecr-viewer = {
9898
short_name = "ecrv",
99-
fargate_cpu = local.override_autoscaling["ecr-viewer"].cpu,
100-
fargate_memory = local.override_autoscaling["ecr-viewer"].memory,
101-
min_capacity = local.override_autoscaling["ecr-viewer"].min_capacity,
102-
max_capacity = local.override_autoscaling["ecr-viewer"].max_capacity,
10399
app_repo = local.dibbs_repo,
104100
app_image = var.disable_ecr == false ? "${terraform.workspace}-ecr-viewer" : "ecr-viewer",
105101
app_version = var.phdi_version,
@@ -149,10 +145,6 @@ locals {
149145
},
150146
fhir-converter = {
151147
short_name = "fhirc",
152-
fargate_cpu = local.override_autoscaling["fhir-converter"].cpu,
153-
fargate_memory = local.override_autoscaling["fhir-converter"].memory,
154-
min_capacity = local.override_autoscaling["fhir-converter"].min_capacity,
155-
max_capacity = local.override_autoscaling["fhir-converter"].max_capacity,
156148
app_repo = local.dibbs_repo,
157149
app_image = var.disable_ecr == false ? "${terraform.workspace}-fhir-converter" : "fhir-converter",
158150
app_version = var.phdi_version,
@@ -166,10 +158,6 @@ locals {
166158
},
167159
ingestion = {
168160
short_name = "inge",
169-
fargate_cpu = local.override_autoscaling["ingestion"].cpu,
170-
fargate_memory = local.override_autoscaling["ingestion"].memory,
171-
min_capacity = local.override_autoscaling["ingestion"].min_capacity,
172-
max_capacity = local.override_autoscaling["ingestion"].max_capacity,
173161
app_repo = local.dibbs_repo,
174162
app_image = var.disable_ecr == false ? "${terraform.workspace}-ingestion" : "ingestion",
175163
app_version = var.phdi_version,
@@ -183,10 +171,6 @@ locals {
183171
},
184172
validation = {
185173
short_name = "vali",
186-
fargate_cpu = local.override_autoscaling["validation"].cpu,
187-
fargate_memory = local.override_autoscaling["validation"].memory,
188-
min_capacity = local.override_autoscaling["validation"].min_capacity,
189-
max_capacity = local.override_autoscaling["validation"].max_capacity,
190174
app_repo = local.dibbs_repo,
191175
app_image = var.disable_ecr == false ? "${terraform.workspace}-validation" : "validation",
192176
app_version = var.phdi_version,
@@ -200,10 +184,6 @@ locals {
200184
},
201185
trigger-code-reference = {
202186
short_name = "trigcr",
203-
fargate_cpu = local.override_autoscaling["trigger-code-reference"].cpu,
204-
fargate_memory = local.override_autoscaling["trigger-code-reference"].memory,
205-
min_capacity = local.override_autoscaling["trigger-code-reference"].min_capacity,
206-
max_capacity = local.override_autoscaling["trigger-code-reference"].max_capacity,
207187
app_repo = local.dibbs_repo,
208188
app_image = var.disable_ecr == false ? "${terraform.workspace}-trigger-code-reference" : "trigger-code-reference",
209189
app_version = var.phdi_version,
@@ -217,10 +197,6 @@ locals {
217197
},
218198
message-parser = {
219199
short_name = "msgp",
220-
fargate_cpu = local.override_autoscaling["message-parser"].cpu,
221-
fargate_memory = local.override_autoscaling["message-parser"].memory,
222-
min_capacity = local.override_autoscaling["message-parser"].min_capacity,
223-
max_capacity = local.override_autoscaling["message-parser"].max_capacity,
224200
app_repo = local.dibbs_repo,
225201
app_image = var.disable_ecr == false ? "${terraform.workspace}-message-parser" : "message-parser",
226202
app_version = var.phdi_version,
@@ -234,10 +210,6 @@ locals {
234210
},
235211
orchestration = {
236212
short_name = "orch",
237-
fargate_cpu = local.override_autoscaling["orchestration"].cpu,
238-
fargate_memory = local.override_autoscaling["orchestration"].memory,
239-
min_capacity = local.override_autoscaling["orchestration"].min_capacity,
240-
max_capacity = local.override_autoscaling["orchestration"].max_capacity,
241213
app_repo = local.dibbs_repo,
242214
app_image = var.disable_ecr == false ? "${terraform.workspace}-orchestration" : "orchestration",
243215
app_version = var.phdi_version,

ecs.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ resource "aws_ecs_task_definition" "this" {
99
execution_role_arn = aws_iam_role.ecs_task_execution.arn
1010
network_mode = "awsvpc"
1111
requires_compatibilities = ["FARGATE"]
12-
cpu = each.value.fargate_cpu
13-
memory = each.value.fargate_memory
12+
cpu = local.override_autoscaling[each.key].cpu
13+
memory = local.override_autoscaling[each.key].memory
1414
container_definitions = jsonencode([
1515
{
1616
name = each.key,
@@ -48,7 +48,7 @@ resource "aws_ecs_service" "this" {
4848
name = each.key
4949
cluster = aws_ecs_cluster.dibbs_app_cluster.id
5050
task_definition = each.value.arn
51-
desired_count = local.service_data[each.key].min_capacity
51+
desired_count = local.override_autoscaling[each.key].min_capacity
5252
launch_type = "FARGATE"
5353

5454
scheduling_strategy = "REPLICA"

0 commit comments

Comments
 (0)