# DB subnet group ============================================================ resource "aws_db_subnet_group" "this" { name = "${var.identifier}-subnet-group" subnet_ids = var.subnet_ids tags = local.tags } # DB parameter group ========================================================= resource "aws_db_parameter_group" "this" { name = "${var.identifier}-params" family = local.parameter_group_family dynamic "parameter" { for_each = var.parameters content { name = parameter.key value = parameter.value } } lifecycle { create_before_destroy = true } tags = local.tags } # RDS Oracle instance ======================================================== resource "aws_db_instance" "this" { identifier = var.identifier engine = var.engine engine_version = var.engine_version license_model = var.license_model instance_class = var.instance_class character_set_name = var.character_set_name allocated_storage = var.allocated_storage max_allocated_storage = var.max_allocated_storage storage_type = "gp3" storage_encrypted = true kms_key_id = var.kms_key_id username = var.username manage_master_user_password = var.manage_master_user_password db_subnet_group_name = aws_db_subnet_group.this.name vpc_security_group_ids = var.security_group_ids parameter_group_name = aws_db_parameter_group.this.name option_group_name = var.option_group_name multi_az = var.multi_az backup_retention_period = var.backup_retention_period backup_window = "03:00-04:00" maintenance_window = "sun:05:00-sun:06:00" deletion_protection = var.deletion_protection skip_final_snapshot = var.skip_final_snapshot final_snapshot_identifier = var.skip_final_snapshot ? null : "${var.identifier}-final" monitoring_interval = var.monitoring_interval performance_insights_enabled = true auto_minor_version_upgrade = false copy_tags_to_snapshot = true tags = local.tags }