DB クラスタースナップショットや PITR から復元した際にリーダーインスタンスが作成されない原因を教えてください
困っている内容
現在、Aurora MySQL をライターインスタンス 1 台、リーダーインスタンス 1 台の計 2 台構成で使用しています。
この DB クラスターのスナップショットを取得し復元を開始した所、DB クラスターとライターインスタンスのみ復元され、リーダーインスタンスが復元されませんでした。
DB クラスターを復元する際、現行の構成(ライター・リーダーの 2 台構成) で復元できないのでしょうか?
回答
DB クラスタースナップショットや PITR から復元する場合、リーダーインスタンスは作成されないため、復元完了後に手動で追加する必要があります。[1][2]
また、ライターインスタンスの作成有無に関しても、復元方法によって変化します。
- AWS マネジメントコンソール: ライターインスタンスが作成される
- AWS CLI, AWS API: ライターインスタンスは作成されない
- 補足: DB クラスターのエンドポイントが「作成中」ステータスのままとなる
■ スナップショットからの復元
重要
コンソールを使用して DB クラスターを復元する場合、Amazon RDS は自動的に使用する DB クラスターのプライマリ DB インスタンス (ライター) を作成します。AWS CLI を使用して DB クラスターを復元する場合、使用する DB クラスターのプライマリインスタンスを明示的に作成する必要があります。プライマリインスタンスは、DB クラスターで作成される初期の DB インスタンスです。プライマリ DB インスタンスを作成しない場合、DB クラスターエンドポイントはcreating
ステータスのままです。
RDS API を使用して DB クラスターを復元する場合は、DB クラスターのプライマリインスタンスを明示的に作成する必要があります。プライマリインスタンスは、DB クラスターで作成される初期の DB インスタンスです。プライマリ DB インスタンスを作成しない場合、DB クラスターエンドポイントは
creating
ステータスのままです。
■PITR からの復元
重要
コンソールを使用して DB クラスターを特定の時点に復元する場合、Amazon RDS は自動的に使用する DB クラスターのプライマリインスタンス (ライター) を作成します。AWS CLI を使用して DB クラスターを特定の時点に復元する場合は、使用する DB クラスターのプライマリインスタンスを明示的に作成する必要があります。プライマリインスタンスは、DB クラスターで作成される初期の DB インスタンスです。
RDS API を使用して DB クラスターを特定の時点に復元する場合は、DB クラスターのプライマリインスタンスを明示的に作成する必要があります。プライマリインスタンスは、DB クラスターで作成される初期の DB インスタンスです。
試してみた
AWS マネジメントコンソールと AWS CLI を使用し、DB クラスタースナップショットや PITR からの復元時にリーダーインスタンスが作成されないこと、また復元方法によってライターインスタンスの作成有無に違いがあることを確認してみます。
今回は下記構成で、DB クラスタースナップショットおよび PITR からの復元を試します。
- エンジン: Aurora MySQL
- エンジンバージョン: 8.0.mysql_aurora.3.08.2
- DB インスタンス: 2 台(ライター・リーダー各 1 台)
AWS マネジメントコンソールの場合
DB クラスタースナップショットからの復元を行います。
すると、DB クラスターとライターインスタンスは作成されますが、リーダーインスタンスは作成されません。
また、PITR からの復元を行います。
こちらも同様に、DB クラスターとライターインスタンスは作成され、リーダーインスタンスは作成されません。
このことから、AWS マネジメントコンソールで復元を行った場合、DB クラスターとライターインスタンスが作成され、リーダーインスタンスは作成されないことが確認できました。
AWS CLI の場合
AWS CLI の restore-db-cluster-from-snapshot コマンド[3] を実行し、DB クラスタースナップショットからの復元を行います。
すると、DB クラスターは作成されますが、ライターインスタンスとリーダーインスタンスは作成されません。
なお、この状態の DB クラスターでは、AWS マネジメントコンソール上から DB インスタンスを追加することができません。
そのため、DB インスタンスを追加したい場合は、AWS CLI の create-db-instance コマンド[4] を使用してください。
create-db-instance コマンドで DB インスタンス追加後は、AWS マネジメントコンソール上からも DB インスタンスの追加が可能となります。
次に、AWS CLI の restore-db-cluster-to-point-in-time コマンド[5] を実行し、PITR からの復元を行います。
こちらも同様に、DB クラスターのみ作成され、ライターインスタンスとリーダーインスタンスは作成されません。
このことから、AWS CLI で復元を行った場合、DB クラスターのみ作成され、ライターインスタンスとリーダーインスタンスは作成されないことが確認できました。