Skip to content

Commit 067a694

Browse files
Merge pull request #3778 from nhsuk/dms_post_migration_config
Remove old db resources or dms migration resources
2 parents d11e0c7 + c4e664d commit 067a694

13 files changed

Lines changed: 11 additions & 262 deletions
Lines changed: 0 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +0,0 @@
1-
module "dms_custom_kms_migration" {
2-
source = "./modules/dms"
3-
environment = var.environment
4-
5-
ecs_sg_ids = concat(local.ecs_sg_ids, [module.prepare_new_db_service.security_group_id])
6-
source_endpoint = aws_rds_cluster.aurora_cluster.endpoint
7-
source_port = aws_rds_cluster.aurora_cluster.port
8-
source_database_name = aws_rds_cluster.aurora_cluster.database_name
9-
source_db_secret_arn = var.db_secret_arn == null ? aws_rds_cluster.aurora_cluster.master_user_secret[0].secret_arn : var.db_secret_arn
10-
11-
target_endpoint = aws_rds_cluster.core.endpoint
12-
target_port = aws_rds_cluster.core.port
13-
target_database_name = aws_rds_cluster.core.database_name
14-
target_db_secret_arn = aws_rds_cluster.core.master_user_secret[0].secret_arn
15-
target_db_rotation_arn = aws_secretsmanager_secret_rotation.target.id
16-
17-
engine_name = aws_rds_cluster.aurora_cluster.engine
18-
subnet_ids = [aws_subnet.private_subnet_a.id, aws_subnet.private_subnet_b.id]
19-
20-
rds_cluster_security_group_id = aws_security_group.rds_security_group.id
21-
vpc_id = aws_vpc.application_vpc.id
22-
}
23-
24-
module "prepare_new_db_service" {
25-
source = "./modules/ecs_service"
26-
27-
cluster_id = aws_ecs_cluster.cluster.id
28-
cluster_name = aws_ecs_cluster.cluster.name
29-
environment = var.environment
30-
maximum_replica_count = 1
31-
minimum_replica_count = 1
32-
network_params = {
33-
subnets = [aws_subnet.private_subnet_a.id, aws_subnet.private_subnet_b.id]
34-
vpc_id = aws_vpc.application_vpc.id
35-
}
36-
server_type = "none"
37-
server_type_name = "prepare_new_db"
38-
task_config = {
39-
environment = [{
40-
name = "DB_HOST"
41-
value = aws_rds_cluster.core.endpoint
42-
},
43-
{
44-
name = "DB_NAME"
45-
value = aws_rds_cluster.core.database_name
46-
},
47-
{
48-
name = "RAILS_ENV"
49-
value = var.rails_env
50-
},
51-
{
52-
name = "SENTRY_ENVIRONMENT"
53-
value = var.environment
54-
},
55-
{
56-
name = "MAVIS__CIS2__ENABLED"
57-
value = "false"
58-
},
59-
{
60-
name = "MAVIS__SPLUNK__ENABLED"
61-
value = "false"
62-
}
63-
]
64-
secrets = [
65-
{
66-
name = "DB_CREDENTIALS"
67-
valueFrom = aws_rds_cluster.core.master_user_secret[0].secret_arn
68-
},
69-
{
70-
name = "RAILS_MASTER_KEY"
71-
valueFrom = var.rails_master_key_path
72-
}
73-
]
74-
cpu = 1024
75-
memory = 2048
76-
docker_image = "${var.account_id}.dkr.ecr.eu-west-2.amazonaws.com/${var.docker_image}@${var.image_digest}"
77-
execution_role_arn = aws_iam_role.ecs_task_execution_role.arn
78-
task_role_arn = aws_iam_role.ecs_task_role.arn
79-
log_group_name = aws_cloudwatch_log_group.ecs_log_group.name
80-
region = var.region
81-
health_check_command = ["CMD-SHELL", "echo 'alive' || exit 1"]
82-
}
83-
depends_on = [aws_rds_cluster_instance.core]
84-
}
85-
86-
resource "aws_security_group_rule" "db_prepare_access_to_db" {
87-
type = "ingress"
88-
from_port = aws_rds_cluster.core.port
89-
to_port = aws_rds_cluster.core.port
90-
protocol = "tcp"
91-
security_group_id = aws_security_group.rds_security_group.id
92-
source_security_group_id = module.prepare_new_db_service.security_group_id
93-
94-
description = "Allow access from the prepare_new_db ECS service to the core RDS cluster"
95-
}

terraform/app/env/preview.tfvars

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
environment = "preview"
2-
db_secret_arn = "arn:aws:secretsmanager:eu-west-2:393416225559:secret:dbAuroraSecret-ysKvF5RMbWMr-lnpooZ"
32
dns_certificate_arn = null
43
docker_image = "mavis/webapp"
54
resource_name = {
6-
dbsubnet_group = "mavis-preview-addonsstack-1pd6pksn106rk-dbdbsubnetgroup-8pkydanicgra"
7-
db_cluster = "mavis-preview-addonsstack-1pd6pksn106r-dbdbcluster-lrf8p5py9wfb"
8-
db_instance = "mavis-preview-addonsstack-1pd6p-dbdbwriterinstance-aozmqfwfm2va"
95
rds_security_group = "mavis-preview-AddonsStack-1PD6PKSN106RK-dbDBClusterSecurityGroup-7cmoQwi6uv8e"
106
loadbalancer = "mavis-preview-pub-lb"
117
lb_security_group = "mavis-preview-PublicHTTPLoadBalancerSecurityGroup-qfHAKWH39OY3"

terraform/app/env/production.tfvars

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
environment = "production"
2-
db_secret_arn = "arn:aws:secretsmanager:eu-west-2:820242920762:secret:dbAuroraSecret-zjL6LdCCIV5c-oSfy6Y"
32
dns_certificate_arn = ["arn:aws:acm:eu-west-2:820242920762:certificate/dd00edc0-b305-45bd-83aa-7c7f298b0a68"]
43
docker_image = "mavis/webapp"
54
resource_name = {
6-
dbsubnet_group = "mavis-production-addonsstack-h6b1986bq928-dbdbsubnetgroup-1dpsuyglv1es"
7-
db_cluster = "mavis-production-addonsstack-h6b1986bq-dbdbcluster-actkuhui4ce7"
8-
db_instance = "mavis-production-addonsstack-h6-dbdbwriterinstance-l8rqm5mbgilx"
95
rds_security_group = "mavis-production-AddonsStack-H6B1986BQ928-dbDBClusterSecurityGroup-dEt2cEtcHBMo"
106
loadbalancer = "mavis-production-pub-lb"
117
lb_security_group = "mavis-production-PublicHTTPLoadBalancerSecurityGroup-G7umbZTkvkwK"
@@ -26,10 +22,9 @@ ecs_log_retention_days = 30
2622
backup_retention_period = 7
2723
ssl_policy = "ELBSecurityPolicy-TLS13-1-2-2021-06"
2824
access_logs_bucket = "nhse-mavis-access-logs-production"
29-
max_aurora_capacity_units = 32
25+
max_aurora_capacity_units = 16
3026
minimum_web_replicas = 2
3127
maximum_web_replicas = 4
3228
container_insights = "enhanced"
3329

3430
enable_backup_to_vault = true
35-

terraform/app/env/qa.tfvars

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
environment = "qa"
2-
db_secret_arn = "arn:aws:secretsmanager:eu-west-2:393416225559:secret:dbAuroraSecret-GBwVtQEAmugK-wPubjU"
32
dns_certificate_arn = ["arn:aws:acm:eu-west-2:393416225559:certificate/dafb0f10-ee18-45e2-8971-28d4ab434375"]
43
docker_image = "mavis/webapp"
54
resource_name = {
6-
dbsubnet_group = "mavis-qa-addonsstack-z0l4gx5euv3i-dbdbsubnetgroup-fgvafc16exxw"
7-
db_cluster = "mavis-qa-addonsstack-z0l4gx5euv3i-dbdbcluster-ysszxsdiq1ka"
8-
db_instance = "mavis-qa-addonsstack-z0l4gx5euv-dbdbwriterinstance-sstfvcbqdcwa"
95
rds_security_group = "mavis-qa-AddonsStack-Z0L4GX5EUV3I-dbDBClusterSecurityGroup-vd2Avaw4JIgr"
106
loadbalancer = "mavis-qa-pub-lb"
117
lb_security_group = "mavis-qa-PublicHTTPLoadBalancerSecurityGroup-ml4lZT5ey5ih"
@@ -24,7 +20,7 @@ http_hosts = {
2420
appspec_bucket = "nhse-mavis-appspec-bucket-qa"
2521
minimum_web_replicas = 2
2622
maximum_web_replicas = 4
27-
max_aurora_capacity_units = 32
23+
max_aurora_capacity_units = 16
2824
container_insights = "enhanced"
2925

3026
enable_backup_to_vault = true

terraform/app/env/sandbox-alpha.tfvars

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
environment = "sandbox-alpha"
22
rails_master_key_path = "/copilot/mavis/secrets/STAGING_RAILS_MASTER_KEY"
3-
db_secret_arn = null
43
dns_certificate_arn = null
54
resource_name = {
6-
dbsubnet_group = "mavis-sandbox-alpha-rds-subnet"
7-
db_cluster = "mavis-sandbox-alpha-rds-cluster"
8-
db_instance = "mavis-sandbox-alpha-rds-instance"
95
rds_security_group = "mavis-sandbox-alpha-rds-sg"
106
loadbalancer = "mavis-sandbox-alpha-alb"
117
lb_security_group = "mavis-sandbox-alpha-alb-sg"
@@ -24,4 +20,3 @@ appspec_bucket = "nhse-mavis-appspec-bucket-sandbox-alpha"
2420
minimum_web_replicas = 1
2521
maximum_web_replicas = 2
2622
good_job_replicas = 1
27-

terraform/app/env/sandbox-beta.tfvars

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
environment = "sandbox-beta"
22
rails_master_key_path = "/copilot/mavis/secrets/STAGING_RAILS_MASTER_KEY"
3-
db_secret_arn = null
43
dns_certificate_arn = null
54
resource_name = {
6-
dbsubnet_group = "mavis-sandbox-beta-rds-subnet"
7-
db_cluster = "mavis-sandbox-beta-rds-cluster"
8-
db_instance = "mavis-sandbox-beta-rds-instance"
95
rds_security_group = "mavis-sandbox-beta-rds-sg"
106
loadbalancer = "mavis-sandbox-beta-alb"
117
lb_security_group = "mavis-sandbox-beta-alb-sg"

terraform/app/env/test.tfvars

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
environment = "test"
2-
db_secret_arn = "arn:aws:secretsmanager:eu-west-2:393416225559:secret:dbAuroraSecret-LwdZBGzdPMq6-PkAjKC"
32
dns_certificate_arn = ["arn:aws:acm:eu-west-2:393416225559:certificate/7e80f006-e9d8-488f-b950-d97f3cc41e4f"]
43
docker_image = "mavis/webapp"
54
resource_name = {
6-
dbsubnet_group = "mavis-test-addonsstack-gb8z9lqvo8of-dbdbsubnetgroup-8hrfkmuyp4c4"
7-
db_cluster = "mavis-test-addonsstack-gb8z9lqvo8of-dbdbcluster-0ed2hxoxu1v1"
8-
db_instance = "mavis-test-addonsstack-gb8z9lqv-dbdbwriterinstance-mq40ycdtxcan"
95
rds_security_group = "mavis-test-AddonsStack-GB8Z9LQVO8OF-dbDBClusterSecurityGroup-1KSO3O1CL4NI5"
106
loadbalancer = "mavis--Publi-W19xy2QLULZ4"
117
lb_security_group = "mavis-test-PublicHTTPLoadBalancerSecurityGroup-15LE48D6JYPML"
@@ -21,5 +17,3 @@ http_hosts = {
2117
appspec_bucket = "nhse-mavis-appspec-bucket-test"
2218
minimum_web_replicas = 2
2319
maximum_web_replicas = 4
24-
25-
max_aurora_capacity_units = 32

terraform/app/env/training.tfvars

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
environment = "training"
2-
db_secret_arn = "arn:aws:secretsmanager:eu-west-2:393416225559:secret:dbAuroraSecret-3bG6y4wn5Enz-YvireA"
1+
environment = "training"
32
dns_certificate_arn = [
43
"arn:aws:acm:eu-west-2:393416225559:certificate/368edbcb-37c5-4146-9087-ff011bef5e05",
54
"arn:aws:acm:eu-west-2:393416225559:certificate/e93e3912-eee4-4f6e-826d-c628bff58527",
65
]
76
docker_image = "mavis/webapp"
87
resource_name = {
9-
dbsubnet_group = "mavis-training-addonsstack-1jzsxp7p84221-dbdbsubnetgroup-ybdt5wfbx9jl"
10-
db_cluster = "mavis-training-addonsstack-1jzsxp7p842-dbdbcluster-dojxjwailzmh"
11-
db_instance = "mavis-training-addonsstack-1jzs-dbdbwriterinstance-pbl8rjktgtmp"
128
rds_security_group = "mavis-training-AddonsStack-1JZSXP7P84221-dbDBClusterSecurityGroup-A5NL1GFJ83LX"
139
loadbalancer = "mavis--Publi-w1wzc4E2jrl6"
1410
lb_security_group = "mavis-training-PublicHTTPLoadBalancerSecurityGroup-L8GOGS04ARYI"
@@ -28,5 +24,3 @@ http_hosts = {
2824
appspec_bucket = "nhse-mavis-appspec-bucket-training"
2925
minimum_web_replicas = 2
3026
maximum_web_replicas = 4
31-
32-
max_aurora_capacity_units = 32

terraform/app/iam_policy_documents.tf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ data "aws_iam_policy_document" "ecs_secrets_access" {
6060
sid = "dbSecretSid"
6161
actions = ["secretsmanager:GetSecretValue"]
6262
resources = [
63-
var.db_secret_arn == null ? aws_rds_cluster.aurora_cluster.master_user_secret[0].secret_arn : var.db_secret_arn,
6463
aws_rds_cluster.core.master_user_secret[0].secret_arn
6564
]
6665
effect = "Allow"

terraform/app/kms.tf

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
data "aws_iam_role" "dms_service_linked_role" {
2-
name = "AWSServiceRoleForDMSServerless"
3-
}
4-
51
resource "aws_kms_key" "rds_cluster" {
62
description = "Custom KMS key for new Aurora cluster"
73
policy = jsonencode({
@@ -11,25 +7,10 @@ resource "aws_kms_key" "rds_cluster" {
117
Sid = "AllowAccount"
128
Effect = "Allow"
139
Principal = {
14-
AWS = ["arn:aws:iam::${var.account_id}:root", "arn:aws:iam::${var.backup_account_id}:root"]
10+
AWS = ["arn:aws:iam::${var.account_id}:root"]
1511
}
1612
Action = "kms:*"
1713
Resource = "*"
18-
},
19-
{
20-
Sid = "AllowDMS"
21-
Effect = "Allow"
22-
Principal = {
23-
AWS = data.aws_iam_role.dms_service_linked_role.arn
24-
}
25-
Action = [
26-
"kms:Encrypt",
27-
"kms:Decrypt",
28-
"kms:ReEncrypt*",
29-
"kms:GenerateDataKey*",
30-
"kms:DescribeKey"
31-
]
32-
Resource = "*"
3314
}
3415
]
3516
})

0 commit comments

Comments
 (0)