From 9444e0feb70cfde57b5a760ad81972e6de7060b3 Mon Sep 17 00:00:00 2001 From: Jeremy Cook Date: Mon, 27 Jan 2025 09:05:54 +1300 Subject: [PATCH] upgraded Aurora DB to Serverless V2 --- README.md | 8 ++++---- terraform/modules/aurora/main.tf | 22 +++++++++++++++------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cbd37ab..92ffb99 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,10 @@ locals { stocks_app_architecture = "arch1" #either arch1 or arch2 cluster_name = "${local.name}-eks-${local.environment}" - version = "1.27" + version = "1.31" instance_types = ["m5.large"] capacity_type = "ON_DEMAND" - disk_size = 10 + disk_size = 20 min_size = 2 max_size = 2 desired_size = 2 @@ -87,9 +87,9 @@ Source Code and Artifacts: #### Stocks DB -Aurora RDS DB (serverless v1) SQL database: +Aurora RDS DB (serverless v2) SQL database: -- MySQL 5.7 +- MySQL 8.0 ### Prerequisites Ensure that the following tools are installed and configured appropriately. diff --git a/terraform/modules/aurora/main.tf b/terraform/modules/aurora/main.tf index d37c3f0..c74cf2a 100644 --- a/terraform/modules/aurora/main.tf +++ b/terraform/modules/aurora/main.tf @@ -22,7 +22,7 @@ resource "aws_security_group" "allow_mysql_from_private_subnets" { resource "aws_rds_cluster" "cloudacademy" { cluster_identifier = "cloudacademy" engine = "aurora-mysql" - engine_mode = "serverless" + engine_version = "8.0.mysql_aurora.3.08.0" enable_http_endpoint = true master_username = var.master_username @@ -34,18 +34,26 @@ resource "aws_rds_cluster" "cloudacademy" { db_subnet_group_name = aws_db_subnet_group.cloudacademy.name vpc_security_group_ids = [aws_security_group.allow_mysql_from_private_subnets.id] - scaling_configuration { - auto_pause = true - min_capacity = 1 - max_capacity = 1 - seconds_until_auto_pause = 300 - timeout_action = "ForceApplyCapacityChange" + serverlessv2_scaling_configuration { + min_capacity = 0.5 # Min ACU + max_capacity = 1.0 # Max ACU } } +resource "aws_rds_cluster_instance" "cloudacademy" { + cluster_identifier = aws_rds_cluster.cloudacademy.id + instance_class = "db.serverless" + engine = aws_rds_cluster.cloudacademy.engine + engine_version = aws_rds_cluster.cloudacademy.engine_version +} + #==================================== resource "terraform_data" "db_setup" { + depends_on = [ + aws_rds_cluster_instance.cloudacademy + ] + triggers_replace = [ filesha1("${path.module}/db_setup.sql") ]