How to: Option Group for RDS in CDK
For an RDS MS SQL database I wanted to use the native S3 restore and backup option. It took me some time to figure out the correct syntax so this is how I created the option group.
Copy/Paste
const optionGroupRDS = new rds.OptionGroup(this, 'optionGroup',{
engine: rds.DatabaseInstanceEngine.SQL_SERVER_SE,
configurations: [{
name: 'SQLSERVER_BACKUP_RESTORE',
settings:{'IAM_ROLE_ARN':'ARN:::of::backuprole'}
}]
})
const instance = new rds.DatabaseInstance(this, 'mssql',{
engine: rds.DatabaseInstanceEngine.SQL_SERVER_SE,
vpc: VPCID,
masterUsername: 'cdkuser',
databaseName: '',
optionGroup: optionGroupRDS
})How to read the docs
Under the RDS construct you can see optionGroup as a parameter:
| optionGroup?🔹 | IOptionGroup | The option group to associate with the instance. |
|---|
Click on IOptionGroup to see interface options and thats just plain confusing.
In this case you create a new OptionGroup Construct that implements the IOptionGroup. You find the details to an option group on the left under constructs in the RDS docs: Option Group
const optionGroupRDS = new rds.OptionGroup(this, 'optionGroup',{
//config here
})These are the parameters that are mandatory:
| Name | Type |
|---|---|
| configurations🔹 | Array OptionConfiguration |
| engine🔹 | IInstanceEngine |
The engine IInstanceEngine is again the same that you used for your RDS instance already.
const optionGroupRDS = new rds.OptionGroup(this, 'optionGroup',{
engine: rds.DatabaseInstanceEngine.SQL_SERVER_SE,
})Lastly the configuration array: Configuration array
const optionGroupRDS = new rds.OptionGroup(this, 'optionGroup',{
engine: rds.DatabaseInstanceEngine.SQL_SERVER_SE,
configurations: [{
name: 'SQLSERVER_BACKUP_RESTORE',
settings:{'IAM_ROLE_ARN':'ARN:::of::backuprole'}
}]
})And you finished your option group.🚀
