この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、崔です。
CloudFormation が Amazon Aurora Global Database に対応したので、やってみました。
Amazon Aurora Global Database Expands Manageability Capabilities
CloudFormation のドキュメントはこちら。GlobalClusterというリソースが追加されてます。
AWS::RDS::GlobalCluster - AWS CloudFormation
やってみた
東京リージョンにあるクラスターをグローバルデータベース化していきます。
まず、最初の状態はこちらです。
CloudFormation でグローバルデータベース化します。
AWSTemplateFormatVersion: 2010-09-09
Parameters:
GlobalClusterIdentifier:
Type: String
Description: Identifier used for global database cluster
AllowedPattern: '^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$'
RDSCluster:
Type: String
Description: Identifier used for DB cluster
AllowedPattern: '^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$'
Resources:
GlobalCluster:
Type: 'AWS::RDS::GlobalCluster'
Properties:
GlobalClusterIdentifier: !Ref GlobalClusterIdentifier
SourceDBClusterIdentifier: !Ref RDSCluster
新規作成する Global Database 名と、既存のクラスター名をパラメータに入力します。
これで、既存クラスターが、 Global Database に取り込まれました。
次に、ソウルリージョンで CloudFormation を実行して、セカンダリークラスターを追加します。
AWSTemplateFormatVersion: 2010-09-09
Parameters:
GlobalClusterIdentifier:
Type: String
Description: Identifier used for global database cluster
AllowedPattern: '^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$'
RDSClusterIdentifier:
Type: String
Description: Identifier used for DB cluster
AllowedPattern: '^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$'
Resources:
RDSCluster:
Type: 'AWS::RDS::DBCluster'
Properties:
GlobalClusterIdentifier: !Ref GlobalClusterIdentifier
DBClusterIdentifier: !Ref RDSClusterIdentifier
Engine: aurora-mysql
EngineVersion: 5.7.mysql_aurora.2.07.2
DBClusterParameterGroupName: test-cluster-parameter-group
DBSubnetGroupName: db-test-subnet
VpcSecurityGroupIds:
- 'sg-xxxxxxxxxxxxxxxxx'
先程、作成した Global Database 名と追加するセカンダリークラスター名をパラメータに入力します。
無事に、セカンダリークラスターが追加されました。
もちろん、CloudFormation のテンプレートに、AWS::RDS::DBInstance リソースを記載していれば、セカンダリークラスター下にインスタンスも同時に作成されます。
今までは、マネコンや CLI でしか作成できなかったので、CloudFormation で作成できるようになったのは、地味に嬉しいです!
参考
Aurora Global Databaseをセカンダリークラスターにインスタンスを立てずに作成してみた | Developers.IO