'Create Aurora Cluster with Babelfish enables using Cloud Formation
Is there any way we can create an Aurora RDS Cluster Multi-AZ with Babelfish enabled using cloud formation. We can create it using [console or cli][1]. However, I want to create it using Cloudformation. I am not finding the options in the below available options.
DBCluster:
Type: AWS::RDS::DBCluster
Properties:
AssociatedRoles:
AssociatedRoles
AvailabilityZones:
AvailabilityZones
BacktrackWindow: Number
BackupRetentionPeriod: Number
CopyTagsToSnapshot: false
DBClusterIdentifier: "String"
DBClusterParameterGroupName: "String"
DBSubnetGroupName: "String"
DatabaseName: "String"
DeletionProtection: false
EnableCloudwatchLogsExports:
EnableCloudwatchLogsExports
EnableHttpEndpoint: false
EnableIAMDatabaseAuthentication: false
Engine: "String" # Required
EngineMode: "String"
EngineVersion: "String"
GlobalClusterIdentifier: "String"
KmsKeyId: "String"
MasterUserPassword: "String"
MasterUsername: "String"
Port: Number
PreferredBackupWindow: "String"
PreferredMaintenanceWindow: "String"
ReplicationSourceIdentifier: "String"
RestoreType: "String"
ScalingConfiguration:
AutoPause: false
MaxCapacity: Number
MinCapacity: Number
SecondsUntilAutoPause: Number
SnapshotIdentifier: "Number"
SourceDBClusterIdentifier: "Number"
SourceRegion: "Number"
StorageEncrypted: false
Tags:
Tags
UseLatestRestorableTime: false
VpcSecurityGroupIds:
VpcSecurityGroupIds
Not even at instance level
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: "String"
AllowMajorVersionUpgrade: false
AssociatedRoles:
AssociatedRoles
AutoMinorVersionUpgrade: false
AvailabilityZone: "String"
BackupRetentionPeriod: Number
CACertificateIdentifier: "String"
CharacterSetName: "String"
CopyTagsToSnapshot: false
DBClusterIdentifier: "String"
DBInstanceClass: "String" # Required
DBInstanceIdentifier: "String"
DBName: "String"
DBParameterGroupName: "String"
DBSecurityGroups:
DBSecurityGroups
DBSnapshotIdentifier: "String"
DBSubnetGroupName: "String"
DeleteAutomatedBackups: false
DeletionProtection: false
Domain: "String"
DomainIAMRoleName: "String"
EnableCloudwatchLogsExports:
EnableCloudwatchLogsExports
EnableIAMDatabaseAuthentication: false
EnablePerformanceInsights: false
Engine: "String"
EngineVersion: "String"
Iops: Number
KmsKeyId: "String"
LicenseModel: "String"
MasterUserPassword: "String"
MasterUsername: "String"
MaxAllocatedStorage: Number
MonitoringInterval: Number
MonitoringRoleArn: "String"
MultiAZ: false
OptionGroupName: "String"
PerformanceInsightsKMSKeyId: "String"
PerformanceInsightsRetentionPeriod: Number
Port: "String"
PreferredBackupWindow: "String"
PreferredMaintenanceWindow: "String"
ProcessorFeatures:
ProcessorFeatures
PromotionTier: Number
PubliclyAccessible: false
SourceDBInstanceIdentifier: "String"
SourceRegion: "String"
StorageEncrypted: false
StorageType: "String"
Tags:
Tags
Timezone: "String"
UseDefaultProcessorFeatures: false
VPCSecurityGroups:
VPCSecurityGroups
Thank you guys for your time and help. [1]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/babelfish-create.html
Solution 1:[1]
Well, I got the answer to this question from somewhere else and it is the same as @SilentSteel mentioned in his comment. You have to create a new DB Cluster Parameter group with babel fish option 'on' and assign that parameter group to the cluster. However, babel fish is only supported in postgresql13 and later versions.
RDSClusterParameterGroupforBF:
Type: AWS::RDS::DBClusterParameterGroup
Properties:
Description: "Parameter Group for adding BableFish support in Aurora PostgreSQL" # Required
Family: "aurora-postgresql13" # Required
Parameters:
rds.babelfish_status: 'on'
Then in the cluster you will assign this using
RDSCluster:
Type: 'AWS::RDS::DBCluster'
Properties:
MasterUsername: !Join ['', ['{{resolve:secretsmanager:', !Ref MyRDSSecret, ':SecretString:username}}' ]]
MasterUserPassword: !Join ['', ['{{resolve:secretsmanager:', !Ref MyRDSSecret, ':SecretString:password}}' ]]
DBClusterIdentifier: aurora-postgresql-cluster
Engine: aurora-postgresql
EngineVersion: '13.6'
EngineMode: provisioned
**DBClusterParameterGroupName: !Ref RDSClusterParameterGroupforBF**
DBSubnetGroupName: !Ref AuroraDBSubnetGroup1
DatabaseName: Sample
Port: '5432'
VpcSecurityGroupIds:
- Ref: DatabaseSecurityGroup
EnableCloudwatchLogsExports:
- postgresql
Tags:
- Key: Name
Value: !Sub ${EnvironmentName} Aurora DB Cluster1
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Ali Mohsan |