Amazon Aurora PostgreSQL 互換エディションの Global Database でフェイルオーバーを実行する方法、およびフェイルオーバーが失敗した理由を教えてください。
解決方法
Aurora Global Database の場合、フェイルオーバーを実行するには 2 つの異なるオプションがあります。
- 計画外の手動フェイルオーバー (「デタッチしてプロモート」) - このオプションは、計画外のシステム停止からの回復や災害復旧テストを行う場合に使用します。
- マネージドプランドフェイルオーバー - このオプションは、運用上のメンテナンスやその他の計画的な運用手順に使用します。
計画外の手動フェイルオーバー
プライマリ AWS リージョンで予定外の障害が発生した後にセカンダリクラスターにフェイルオーバーするには、まず次の操作を行います。
- 障害が発生した AWS リージョンのプライマリ Aurora DB クラスターへの DML ステートメントやその他の書き込み操作の実行を停止します。
- セカンダリ AWS リージョンから新しいプライマリ DB クラスターとして使用する Aurora DB クラスターを特定します。Aurora Global Database に 2 つ以上のセカンダリ AWS リージョンがある場合は、遅延時間が最も短いセカンダリクラスターを選択します。
- 選択したセカンダリ DB クラスターを Aurora Global Database から削除します。
次に、計画外の手動フェイルオーバーを完了するには、次の手順を実行します。
- 新しいエンドポイントを使用して、現在スタンドアロンになった Aurora DB クラスターにすべての書き込み操作が送信されるようにアプリケーションを再構成します。Aurora Global Database の作成時に指定された名前を受け入れた場合は、クラスターのエンドポイント文字列から -ro を削除してエンドポイントを変更します。
例えば、セカンダリクラスターのエンドポイント my-global.cluster-ro-aabb.us-west-1.rds.amazonaws.com は、そのクラスターが Aurora Global Database からデタッチされると、my-global.cluster-aabb.us-west-1.rds.amazonaws.com になります。
リージョンの追加を開始すると、セカンダリ Aurora DB クラスターは、新しい Aurora Global Database のプライマリクラスターになります。
- DB クラスターに AWS リージョンを追加して、プライマリクラスターからセカンダリクラスターへのレプリケーションプロセスを開始します。
- 必要に応じて、さらに AWS リージョンを追加して、アプリケーションのサポートに必要なトポロジを再作成します。
詳細については、「予期しない停止からの Amazon Aurora Global Database の復旧」を参照してください。
マネージドプランドフェイルオーバー
Aurora Global Database のマネージドプランドフェイルオーバーを開始するには、以下を操作を行います。
- Amazon RDS コンソールを開きます。
- [Databases] (データベース) を選択し、フェイルオーバーする Aurora Global Database を探します。
- [Actions] (アクション) メニューから [Fail over global database] (グローバルデータベースをフェイルオーバー) を選択します。フェイルオーバーは保留中になり、プロセスはフェイルオーバーターゲットを選択するまで開始されません。
- プライマリに昇格させるセカンダリ Aurora DB クラスターを選択します。セカンダリ DB クラスターが使用可能である必要があります。
注: 複数のセカンダリ DB クラスターがある場合は、すべてのセカンダリ DB の 遅延量を比較してください。遅延量量が最も少ないものを選択します。
- [Fail over global database] (グローバルデータベースをフェイルオーバー) を選択してセカンダリ DB クラスターを選択し、フェイルオーバープロセスを開始します。
データベースリストの「Status」(ステータス) 列には、フェイルオーバープロセス中の各 Aurora DB インスタンスと Aurora DB クラスターの状態が表示されます。
コンソール上部のステータスバーに進行状況が表示され、[Cancel failover] (フェイルオーバーをキャンセル) オプションが表示されます。
[Cancel failover] (フェイルオーバーをキャンセル) を選択すると、フェイルオーバーを続行するか、フェイルオーバープロセスをキャンセルするかを選択できます。
- [Close] (閉じる) を選択してフェールオーバーを続行し、プロンプトを閉じます。
フェイルオーバーが完了すると、Aurora DB クラスターとその現在の状態が [Database] (データベース) リストに表示されます。詳細については、「Amazon Aurora Global Database の管理された計画的なフェイルオーバーを実行する」を参照してください。
また、AWS コマンドラインインターフェイス (AWS CLI) を使用して failover-global-cluster コマンドを実行することで、マネージドプランドフェイルオーバーを開始することもできます。
フェイルオーバーが失敗する理由
フェイルオーバーは、次のいずれかの理由で失敗することがあります。
- ソースとターゲットの間のレプリケーション遅延
- アベイラビリティーゾーンの障害
- コンピューティングノードの障害
- DB インスタンス間のネットワークの問題
- ストレージの問題
- 大規模イベント
関連情報
Amazon Aurora Global Database のフェイルオーバーを使用する