Amazon Aurora PostgreSQL のリードレプリカの追加
はじめに
Amazon Aurora PostgreSQL (以下、Aurora PostgreSQL) の DB クラスタにリードレプリカを追加する方法をまとめる。
実施方法
下記の3つの方法で追加が可能。
ここでは、「AWS マネジメントコンソールを利用する方法」と「AWS CLI を利用する方法」を検証する。
AWS マネジメントコンソールを利用する方法
AWS マネジメントコンソールを利用してリードレプリカを作成する方法を記載する。
1. AWS マネジメントコンソールで Amazon RDS のコンソールに移動する
2. 「データベース」を選択する
3. DB クラスタと DB インスタンスの「ステータス」を確認する
DB クラスタと DB インスタンス (ソース DB) の「ステータス」が「利用可能」であることを確認する。
4. 「アクション > リーダーの追加」を選択する
5. 「リーダーの追加」でリードレプリカの設定をする
設定項目はクラスタ (インスタンス) の作成時と基本同じ。 AZ の配置など要件に従って設定を行う。
設定の入力が終わったら、「Add reader」を選択する。
6. 「ステータス」が「利用可能」となったことを確認する。
設定値に不備などがなければ、「データベース」に戻る。 リードレプリカは「ロール」が「読み込み」と表示される。
数分程度待ち、「ステータス」が「利用可能」となれば、作成完了。
AWS CLI を利用する方法
AWS CLI の create-db-instance コマンドを利用する。
実行コマンド
下記のコマンドにて作成する。
aws rds create-db-instance --db-instance-identifier aurora-test-cluster-read-replica-2 \ --db-cluster-identifier aurora-test-cluster \ --engine aurora-postgresql \ --db-instance-class db.t3.medium \ --availability-zone ap-northeast-1d
引数の意味と設定値は順番に下記の通り。
引数 | 設定値 |
---|---|
db-instance-identifier (DB インスタンス名) |
aurora-test-cluster-read-replica-2 |
db-cluster-identifier (DB クラスタ名) |
aurora-test-cluster |
engine (DB エンジン) |
aurora-postgresql |
db-instance-class (DB インスタンスクラス) |
db.t3.medium |
availability-zone (DB インスタンスを配置する AZ) |
ap-northeast-1d |
コマンドに不備がなければ、下記のような出力 (ここでは yaml 形式で出力) が返される。 今回作成したリードレプリカに加えて、DB クラスタの既存リソースの情報も出力されている点に注意する。
DBInstance: AllocatedStorage: 1 AssociatedRoles: [] AutoMinorVersionUpgrade: true AvailabilityZone: ap-northeast-1d BackupRetentionPeriod: 1 CACertificateIdentifier: rds-ca-2019 CopyTagsToSnapshot: false CustomerOwnedIpEnabled: false DBClusterIdentifier: aurora-test-cluster DBInstanceArn: arn:aws:rds:ap-northeast-1:12345678912:db:aurora-test-cluster-read-replica-2 DBInstanceClass: db.t3.medium DBInstanceIdentifier: aurora-test-cluster-read-replica-2 DBInstanceStatus: creating DBName: aurora_test_db DBParameterGroups: - DBParameterGroupName: default.aurora-postgresql11 ParameterApplyStatus: in-sync DBSecurityGroups: [] DBSubnetGroup: DBSubnetGroupDescription: Created from the RDS Management Console DBSubnetGroupName: xxxxx SubnetGroupStatus: Complete Subnets: - SubnetAvailabilityZone: Name: ap-northeast-1a SubnetIdentifier: subnet-xxxxxxxx SubnetOutpost: {} SubnetStatus: Active - SubnetAvailabilityZone: Name: ap-northeast-1d SubnetIdentifier: subnet-xxxxxxxx SubnetOutpost: {} SubnetStatus: Active - SubnetAvailabilityZone: Name: ap-northeast-1c SubnetIdentifier: subnet-xxxxxxxx SubnetOutpost: {} SubnetStatus: Active VpcId: vpc-xxxxxxxx DbInstancePort: 0 DbiResourceId: db-xxxxxxxxxxxxxxxxxxxxxxxxxx PubliclyAccessible: false ReadReplicaDBInstanceIdentifiers: [] StorageEncrypted: false StorageType: aurora TagList: [] VpcSecurityGroups: - Status: active VpcSecurityGroupId: sg-xxxxxxxxxxxxxxxxx
AWS マネジメントコンソールを確認すると、リードレプリカが追加されている。
数分程度待ち、「ステータス」が「利用可能」となれば、作成完了。
注意事項
- リードレプリカは、最大15個まで作成が可能。
- マルチマスタークラスタでは、リードレプリカの構成がサポートされていない。
- Aurora では、異なるリージョン (クロスリージョン) でリードレプリカを構成できない。異なるリージョンで読み取り用のレプリカを構成したい場合は、グローバルデータベースを利用する。