Amazon Aurora PostgreSQL のリードレプリカの追加

はじめに

Amazon Aurora PostgreSQL (以下、Aurora PostgreSQL) の DB クラスタにリードレプリカを追加する方法をまとめる。

実施方法

下記の3つの方法で追加が可能。

  • AWS マネジメントコンソールを利用する方法
  • AWS CLI を利用する方法
  • RDS API を利用する方法

ここでは、「AWS マネジメントコンソールを利用する方法」と「AWS CLI を利用する方法」を検証する。

AWS マネジメントコンソールを利用する方法

AWS マネジメントコンソールを利用してリードレプリカを作成する方法を記載する。

1. AWS マネジメントコンソールで Amazon RDS のコンソールに移動する

AWS マネジメントコンソールを利用する方法-1

2. 「データベース」を選択する

AWS マネジメントコンソールを利用する方法-2

3. DB クラスタと DB インスタンスの「ステータス」を確認する

DB クラスタと DB インスタンス (ソース DB) の「ステータス」が「利用可能」であることを確認する。

AWS マネジメントコンソールを利用する方法-3

4. 「アクション > リーダーの追加」を選択する

AWS マネジメントコンソールを利用する方法-4

5. 「リーダーの追加」でリードレプリカの設定をする

設定項目はクラスタ (インスタンス) の作成時と基本同じ。 AZ の配置など要件に従って設定を行う。

AWS マネジメントコンソールを利用する方法-5-1

設定の入力が終わったら、「Add reader」を選択する。

AWS マネジメントコンソールを利用する方法-5-2

6. 「ステータス」が「利用可能」となったことを確認する。

設定値に不備などがなければ、「データベース」に戻る。 リードレプリカは「ロール」が「読み込み」と表示される。

AWS マネジメントコンソールを利用する方法-6-1

数分程度待ち、「ステータス」が「利用可能」となれば、作成完了。

AWS マネジメントコンソールを利用する方法-6-2

AWS CLI を利用する方法

AWS CLIcreate-db-instance コマンドを利用する。

AWS CLI の実行環境は下記の通り。

  • macOS Big Sur バージョン 11.2.2
  • AWS CLI v2 (2.1.29)

実行コマンド

下記のコマンドにて作成する。

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 マネジメントコンソールを確認すると、リードレプリカが追加されている。

AWS CLI を利用する方法-1

数分程度待ち、「ステータス」が「利用可能」となれば、作成完了。

AWS CLI を利用する方法-2

注意事項

  • リードレプリカは、最大15個まで作成が可能。
  • マルチマスタークラスタでは、リードレプリカの構成がサポートされていない。
  • Aurora では、異なるリージョン (クロスリージョン) でリードレプリカを構成できない。異なるリージョンで読み取り用のレプリカを構成したい場合は、グローバルデータベースを利用する。

参考文献