Skip to content

Commit 0c25dd1

Browse files
authored
Merge pull request #2110 from govuk-forms/allow-aurora-to-scale
Allow aurora to scale
2 parents 56ca600 + f072e9a commit 0c25dd1

6 files changed

Lines changed: 15 additions & 32 deletions

File tree

infra/deployments/forms/inputs.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,8 @@ variable "environmental_settings" {
195195
enable_alert_actions = bool
196196
forms_product_page_support_url = string
197197
rds_maintenance_window = string
198+
rds_minimum_capacity_acus = number
199+
rds_maxium_capacity_acus = number
198200
ips_to_block = list(string)
199201
rate_limit_bypass_cidrs = list(string)
200202
enable_shield_advanced_healthchecks = bool

infra/deployments/forms/rds/main.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ module "rds" {
1616

1717
apply_immediately = var.apply_immediately
1818
rds_maintenance_window = var.environmental_settings.rds_maintenance_window
19+
min_capacity = var.environmental_settings.rds_minimum_capacity_acus
20+
max_capacity = var.environmental_settings.rds_maxium_capacity_acus
1921
auto_pause = var.environmental_settings.pause_databases_on_inactivity
2022
seconds_until_auto_pause = var.environmental_settings.pause_databases_after_inactivity_seconds
2123
backup_retention_period = var.environmental_settings.database_backup_retention_period_days
@@ -40,6 +42,8 @@ module "forms_runner_rds" {
4042

4143
apply_immediately = var.apply_immediately
4244
rds_maintenance_window = var.environmental_settings.rds_maintenance_window
45+
min_capacity = var.environmental_settings.rds_minimum_capacity_acus
46+
max_capacity = var.environmental_settings.rds_maxium_capacity_acus
4347
auto_pause = var.environmental_settings.pause_databases_on_inactivity
4448
seconds_until_auto_pause = var.environmental_settings.pause_databases_after_inactivity_seconds
4549
backup_retention_period = var.environmental_settings.database_backup_retention_period_days

infra/deployments/forms/tfvars/dev.tfvars

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ environmental_settings = {
1717
enable_alert_actions = false
1818
forms_product_page_support_url = "https://www.dev.forms.service.gov.uk/support"
1919
rds_maintenance_window = "wed:04:00-wed:04:30"
20+
rds_minimum_capacity_acus = 0.5
21+
rds_maxium_capacity_acus = 2
2022
ips_to_block = []
2123
rate_limit_bypass_cidrs = []
2224
enable_shield_advanced_healthchecks = false

infra/deployments/forms/tfvars/production.tfvars

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ environmental_settings = {
4040
]
4141
forms_product_page_support_url = "https://www.forms.service.gov.uk/support"
4242
rds_maintenance_window = "wed:04:00-wed:04:30"
43+
rds_minimum_capacity_acus = 2
44+
rds_maxium_capacity_acus = 10
4345
ips_to_block = []
4446
rate_limit_bypass_cidrs = []
4547
enable_shield_advanced_healthchecks = true

infra/deployments/forms/tfvars/staging.tfvars

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ environmental_settings = {
1919
enable_alert_actions = true
2020
forms_product_page_support_url = "https://www.staging.forms.service.gov.uk/support"
2121
rds_maintenance_window = "wed:04:00-wed:04:30"
22+
rds_minimum_capacity_acus = 1
23+
rds_maxium_capacity_acus = 2
2224
ips_to_block = []
2325
rate_limit_bypass_cidrs = []
2426
enable_shield_advanced_healthchecks = false

infra/modules/rds/rds.tf

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,6 @@ locals {
2424
performance_insights_retention_period = var.enable_advanced_database_insights ? 465 : null
2525
}
2626

27-
locals {
28-
serverlessv2_scaling_profiles = {
29-
30-
dev = {
31-
# 0.5 is the lowest value that keeps the cluster warm (no cold start on first connection).
32-
# Setting min_capacity = 0 would enable auto-pause but cause ~20-30s wake-up delays.
33-
min_capacity = 0.5
34-
max_capacity = 2
35-
}
36-
37-
default = {
38-
min_capacity = var.min_capacity
39-
max_capacity = var.max_capacity
40-
}
41-
}
42-
43-
serverlessv2_scaling = lookup(
44-
local.serverlessv2_scaling_profiles,
45-
var.env_name,
46-
local.serverlessv2_scaling_profiles["default"]
47-
)
48-
}
49-
5027
resource "aws_rds_cluster" "cluster_aurora_v2" {
5128
#checkov:skip=CKV2_AWS_8:AWS RDS inbuilt backup process is sufficient
5229
#checkov:skip=CKV2_AWS_27:Query logging is not required at this time
@@ -91,15 +68,9 @@ resource "aws_rds_cluster" "cluster_aurora_v2" {
9168
performance_insights_enabled = var.enable_advanced_database_insights
9269
performance_insights_retention_period = local.performance_insights_retention_period
9370

94-
dynamic "serverlessv2_scaling_configuration" {
95-
for_each = [local.serverlessv2_scaling]
96-
97-
content {
98-
min_capacity = serverlessv2_scaling_configuration.value.min_capacity
99-
max_capacity = serverlessv2_scaling_configuration.value.max_capacity
100-
101-
seconds_until_auto_pause = try(serverlessv2_scaling_configuration.value.seconds_until_auto_pause, null)
102-
}
71+
serverlessv2_scaling_configuration {
72+
max_capacity = var.max_capacity
73+
min_capacity = var.min_capacity
10374
}
10475

10576
lifecycle {

0 commit comments

Comments
 (0)