@@ -53,6 +53,9 @@ resource "aws_rds_cluster" "core" {
5353 preferred_backup_window = " 01:00-01:30"
5454 preferred_maintenance_window = " sun:02:30-sun:03:00"
5555 db_cluster_parameter_group_name = " default.aurora-postgresql16"
56+ monitoring_interval = var. enable_enhanced_db_monitoring ? 30 : 0
57+ monitoring_role_arn = var. enable_enhanced_db_monitoring ? aws_iam_role. enhanced_db_monitoring [0 ]. arn : null
58+ enabled_cloudwatch_logs_exports = [" postgresql" , " instance" ]
5659
5760 serverlessv2_scaling_configuration {
5861 max_capacity = var. max_aurora_capacity_units
@@ -83,4 +86,20 @@ resource "aws_rds_cluster_instance" "core" {
8386 engine_version = aws_rds_cluster. core . engine_version
8487 db_subnet_group_name = aws_db_subnet_group. core . name
8588 promotion_tier = each. value [" promotion_tier" ]
89+ monitoring_interval = var. enable_enhanced_db_monitoring ? 30 : 0
90+ monitoring_role_arn = var. enable_enhanced_db_monitoring ? aws_iam_role. enhanced_db_monitoring [0 ]. arn : null
91+ }
92+
93+ resource "aws_iam_role" "enhanced_db_monitoring" {
94+ count = var. enable_enhanced_db_monitoring ? 1 : 0
95+ name = " enhanced-db-monitoring-role-${ var . environment } "
96+ assume_role_policy = templatefile (
97+ " ../app/templates/iam_assume_role.json.tpl" ,
98+ { service_name = " monitoring.rds.amazonaws.com" })
99+ }
100+
101+ resource "aws_iam_role_policy_attachment" "enhanced_db_monitoring_policy" {
102+ count = var. enable_enhanced_db_monitoring ? 1 : 0
103+ role = aws_iam_role. enhanced_db_monitoring [0 ]. name
104+ policy_arn = " arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole"
86105}
0 commit comments