Q91 — AWS DOP-C02 第3章
第 91/100 問 | ← 第3章
ある企業が、MySQL互換のAmazon Aurora Multi-AZ DBクラスターをデータベースとして使用するアプリケーションを運用しています。ディザスタリカバリの目的で、クロスリージョンの読み取り専用レプリカが作成されています。DevOpsエンジニアは、障害発生時にこのレプリカを自動的に昇格させ、プライマリデータベースインスタンスとして機能させるようにしたいと考えています。
- A. Amazon Route 53 CNAMEを、遅延に基づくヘルスチェックで構成し、プライマリエンドポイントとレプリカエンドポイントの両方を指すようにします。AWS CloudTrailからAmazon RDS障害通知をサブスクライブするAmazon SNSトピックを作成し、そのトピックからAWS Lambda関数を呼び出して、レプリカインスタンスをプライマリへ昇格させます。
- B. Auroraカスタムエンドポイントを作成し、これをプライマリDBインスタンスを指すように設定します。アプリケーションをこのエンドポイントを使用するように構成します。AWS CloudTrailを設定してAWS Lambda関数を実行し、レプリカインスタンスを昇格させ、カスタムエンドポイントを新しく昇格したインスタンスを指すように更新します。
- C. AWS Lambda関数を作成し、アプリケーションのAWS CloudFormationテンプレートを更新してレプリカを昇格させ、テンプレートを適用してスタックを更新し、アプリケーションを新しく昇格したインスタンスを指すように再構成します。Amazon CloudWatchアラームを作成し、障害イベント発生後にこのLambda関数を呼び出します。
- D. AuroraエンドポイントをAWS Systems Manager Parameter Storeに保存します。データベース障害を検知するAmazon EventBridgeイベントを作成し、これによりAWS Lambda関数を実行してレプリカインスタンスを昇格させ、AWS Systems Manager Parameter Storeに保存されているエンドポイントURLを更新します。アプリケーションを、データベース接続失敗時にParameter Storeからエンドポイントを再読み込みするようにコーディングします。 ✓
正解: D. AuroraエンドポイントをAWS Systems Manager Parameter Storeに保存します。データベース障害を検知するAmazon EventBridgeイベントを作成し、これによりAWS Lambda関数を実行してレプリカインスタンスを昇格させ、AWS Systems Manager Parameter Storeに保存されているエンドポイントURLを更新します。アプリケーションを、データベース接続失敗時にParameter Storeからエンドポイントを再読み込みするようにコーディングします。
解説
本問は、Amazon Auroraのクロスリージョンディザスタリカバリおよび自動フェイルオーバーの実装方法を問うものです。Amazon Auroraのドキュメントによると、Amazon EventBridgeでRDS障害イベントをリアルタイムに検出し、Lambda関数をトリガーしてレプリカを独立インスタンスへ昇格させ、Systems Manager Parameter Storeでエンドポイントを動的に更新することで、アプリケーションのシームレスな切り替えが実現できます。選択肢Dは、EventBridgeによるリアルタイム障害検知、Lambdaによる昇格処理、Parameter Storeによるエンドポイント更新、およびアプリケーション側での接続失敗時の再読み込みという一連の自動化フローを提供しており、完全な自動ディザスタリカバリを実現します。他の選択肢は、リアルタイム性、エンドポイント管理、またはトリガー機構において不十分であり、例としてRoute 53のレイテンシー、CloudTrailの非リアルタイム性、CloudFormationの遅い更新などが挙げられます。