CloudformationでAurora(MySQL5.7互換)を作ってみる
こんばんわ、吉江です。
皆さんはCloudformationでAurora(5.7互換)を作成されたことがありますか? 私の場合、5.6互換はすんなり作成できたのですが5.7互換でいくつか躓いたところがあったのでご紹介させてもらいます。
そもそも何が行った?
事の発端はAuroraをCloudFormationで作成する際に5.6互換はエンジンバージョン等の具体的なバージョン変更のみで行けると対応出来ると考えてましたが、 改めてテンプレートを作成してみると失敗しまくりでした。
大まかな変更点
RDSインスタンスを作成する最低限のリソースで変更点を以下のようにまとめます。 具体的には以下のリソース作成で使うアクションです。
- DBCluster関連リソース作成
- ClusterParameterGroup
- Cluster
- DBInstance関連リソース作成
- OptionGroup
- InstanceParameterGroup
- Instance
リソース名 | エンティティ名 | MySQL5.6互換 | MySQL5.7互換 |
---|---|---|---|
AWS::RDS::DBClusterParameterGroup | Family | aurora5.6 | aurora-mysql5.7 |
AWS::RDS::DBCluster | Engine | aurora | aurora-mysql |
AWS::RDS::OptionGroup | EngineName | aurora | aurora-mysql |
AWS::RDS::OptionGroup | MajorEngineVersion | 5.6 | 5.7 |
AWS::RDS::DBParameterGroup | Family | aurora5.6 | aurora-mysql5.7 |
AWS::RDS::DBInstance | Engine | aurora | aurora-mysql |
Aurora(5.7互換)を作成するテンプレです。
全テンプレートを貼り付けると長ったらしくなってしまうため、Resource部分だけ抜き出しました。 RefとなっているところはParamterを参照している部分となりますので、参考に留めていただければと思います。
Resources: TestAurora57dbSubnetGroup: Type: AWS::RDS::DBSubnetGroup Properties: DBSubnetGroupDescription: Subnets available for the RDS DB Instance SubnetIds: Ref: DBSubnetsInVPC TestAurora57dbClusterParameterGroup: Type: AWS::RDS::DBClusterParameterGroup Properties: Family: "aurora-mysql5.7" Description: "Test-Aurora-57ClusterParameterGroup" Parameters: time_zone: "Asia/Tokyo" TestAurora57dbOptionGroup: Type: "AWS::RDS::OptionGroup" Properties: EngineName: "aurora-mysql" MajorEngineVersion: "5.7" OptionGroupDescription: "TestAurora57db_RDS_OptionGroup" Tags: - Key: Name Value: Test-Aurora-57db-OptionGroup TestAurora57dbInstanceParameterGroup: Type: AWS::RDS::DBParameterGroup Properties: Family: "aurora-mysql5.7" Description: "Test-Aurora-57InstanceParameterGroup" TestAurora57dbCluster: Type: AWS::RDS::DBCluster Properties: BackupRetentionPeriod: Ref: DBBackupRetentionPeriod DatabaseName: TestAurora57db DBClusterIdentifier: Test-Aurora-57cluster DBClusterParameterGroupName: Ref: TestAurora57dbClusterParameterGroup DBSubnetGroupName: Ref: TestAurora57dbSubnetGroup Engine: aurora-mysql MasterUsername: Ref: DBMasterUser MasterUserPassword: Ref: DBMasterPassword Port: 3306 PreferredBackupWindow: Ref: DBBackupWindow PreferredMaintenanceWindow: Ref: DBMaintenanceWindow StorageEncrypted: True VpcSecurityGroupIds: - Ref: DBSecurityGroupId Tags: - Key: Name Value: Test-Aurora-57db-Cluster TestAurora57dbInstance: Type: "AWS::RDS::DBInstance" Properties: AutoMinorVersionUpgrade: False AvailabilityZone: ap-northeast-1a DBInstanceClass: Ref: DBInstanceClass DBInstanceIdentifier: Test-Aurora-57db DBClusterIdentifier: Ref: TestAurora57dbCluster DBSubnetGroupName: Ref: TestAurora57dbSubnetGroup Engine: aurora-mysql OptionGroupName: Ref: TestAurora57dbOptionGroup DBParameterGroupName: Ref: TestAurora57dbInstanceParameterGroup PubliclyAccessible: False Tags: - Key: Name Value: TestAurora57dbInstance
最後に
おそらくAurora5.6互換が発表されたタイミングではAurora(PostgreSQL)が発表されていなかったことでaurora
や5.6
といった形だったのかと思いました。
aurora-mysql5.7
やaurora-mysql
の形で記載したほうが確かに区別が付きやすいのでアリだと思います。