Q97 — AWS SAA-C03 第12章
第 97/100 問 | ← 第12章
Q897. ある企業がアプリケーションをAWSクラウド上にホストしています。このアプリケーションは、Elastic Load Balancing(ELB)ロードバランサの後ろでAuto Scalingグループ内のAmazon EC2インスタンス上で実行され、Amazon DynamoDBテーブルに接続しています。災害復旧(DR)の目的で、同社はアプリケーションを別のAWSリージョンからも利用可能とし、ダウンタイムを最小限に抑えることを求めています。これらの要件を満たす中で、ダウンタイムが最も短いソリューションはどれですか?
- A. DRリージョンにAuto ScalingグループおよびELBを作成します。DynamoDBテーブルをグローバルテーブルとして設定します。DNSフェイルオーバーを構成して、新しいDRリージョンのELBを指すようにします。 ✓
- B. 必要に応じてEC2インスタンス、ELB、DynamoDBテーブルを起動するためのAWS CloudFormationテンプレートを作成します。DNSフェイルオーバーを構成して、新しいDRリージョンのELBを指すようにします。
- C. 必要に応じてEC2インスタンスおよびELBを起動するためのAWS CloudFormationテンプレートを作成します。DynamoDBテーブルをグローバルテーブルとして設定します。DNSフェイルオーバーを構成して、新しいDRリージョンのELBを指すようにします。
- D. DRリージョンにAuto ScalingグループおよびELBを作成します。DynamoDBテーブルをグローバルテーブルとして設定します。評価期間10分のAmazon CloudWatchアラームを作成し、そのアラームがトリガーされた際にAmazon Route 53を更新するAWS Lambda関数を呼び出すようにします。
正解: A. DRリージョンにAuto ScalingグループおよびELBを作成します。DynamoDBテーブルをグローバルテーブルとして設定します。DNSフェイルオーバーを構成して、新しいDRリージョンのELBを指すようにします。
解説
アプリケーションの災害復旧(DR)においてダウンタイムを最小限に抑えるには、以下のソリューションが最適です: A. DRリージョンにAuto ScalingグループおよびELBを作成し、DynamoDBテーブルをグローバルテーブルとして設定し、DNSフェイルオーバーを構成してDRリージョンのELBを指すようにする。 DRリージョンに事前にAuto ScalingグループおよびELBを構築しておくことで、障害発生時に即座にアプリケーションを起動・スケールできます。Auto Scalingグループは、負荷やインスタンスの健全性に基づいて自動的にEC2インスタンスをプロビジョニング・終了します。 DynamoDBのグローバルテーブル機能により、データが複数のAWSリージョンへ自動的にレプリケートされます。これにより、DRリージョンでもデータが即時に利用可能となり、アプリケーションのシームレスな切り替えが実現します。 DNSフェイルオーバーを活用すれば、プライマリリージョンの障害検知後にトラフィックをDRリージョンのELBへ自動的に振り向けることができ、ユーザーへの影響を最小限に抑えながら迅速な復旧が可能です。 一方、選択肢Bは、CloudFormationによるリソース作成を提案していますが、DynamoDBのグローバルテーブル機能を活用しないため、データのリアルタイムレプリケーションや即時可用性が確保できず、ダウンタイムが長くなる可能性があります。 選択肢CはDynamoDBをグローバルテーブルとして設定していますが、DNSフェイルオーバーの構成について言及しておらず、トラフィックの自動的な切り替えが保証されないため、DR対応が不十分です。 選択肢Dは、CloudWatchアラームとLambda関数によるRoute 53の手動更新を含むため、アラーム評価期間(10分)や関数実行の遅延・失敗リスクなど、追加の遅延要因と単一障害点が存在し、ダウンタイムの最小化という観点では最適ではありません。 以上より、ダウンタイムを最も小さくするには、DRリージョンに事前構築されたAuto ScalingグループとELB、DynamoDBのグローバルテーブル、そしてDNSフェイルオーバーを組み合わせた選択肢Aが最も適したソリューションです。