Q49 — AWS SAA-C03 第3章
第 49/65 問 | ← 第3章
Q179. ある会社が、Application Load Balancer の背後に配置された Amazon EC2 インスタンス上で、ビジネスクリティカルな Web アプリケーションを実行しています。EC2 インスタンスは Auto Scaling グループ内にあります。アプリケーションでは、単一のアベイラビリティーゾーン(AZ)にデプロイされた Amazon Aurora PostgreSQL データベースを使用しています。この会社は、アプリケーションを高可用性(HA)状態にし、ダウンタイムとデータ損失を最小限に抑えたいと考えています。これらの要件を満たす解決策のうち、運用上の負担が最も少ないものはどれですか?
- A. EC2 インスタンスを異なる AWS リージョンに配置します。Amazon Route 53 のヘルスチェックを利用してトラフィックをリダイレクトします。また、Aurora PostgreSQL のクロスリージョンレプリケーションを有効にします。
- B. Auto Scaling グループを複数のアベイラビリティーゾーン(AZ)で動作するように設定します。データベースをマルチAZ構成に設定します。さらに、データベース向けに Amazon RDS Proxy インスタンスを構成します。 ✓
- C. Auto Scaling グループを単一のアベイラビリティーゾーン(AZ)でのみ動作するように設定します。データベースに対して毎時スナップショットを作成し、障害発生時にそのスナップショットからデータベースを復元します。
- D. Auto Scaling グループを複数の AWS リージョンで動作するように設定します。アプリケーションから Amazon S3 へデータを書き込み、S3 Event Notifications を使用して AWS Lambda 関数を起動し、その関数からデータベースへデータを書き込みます。
正解: B. Auto Scaling グループを複数のアベイラビリティーゾーン(AZ)で動作するように設定します。データベースをマルチAZ構成に設定します。さらに、データベース向けに Amazon RDS Proxy インスタンスを構成します。
解説
高可用性を実現するには、コンピューティング層(EC2+Auto Scaling)およびデータベース層の両方で、単一障害点(SPOF)を排除する必要があります。選択肢Bでは、Auto Scaling グループを複数のAZに分散させることで、AZ単位の障害に耐えられるようになり、Aurora PostgreSQL をマルチAZ構成にすることで、自動フェイルオーバーによるデータベースの高可用性とデータ損失の最小化(同期レプリケーション)が実現されます。RDS Proxy は接続管理の最適化や一時的な接続問題への耐性向上に寄与し、運用負担を増加させません。他選択肢は以下のような課題があります:Aはクロスリージョンレプリケーションは非同期であり、データ損失が発生する可能性があり、Route 53 のヘルスチェックとDNS切り替えには遅延と手動介入リスクが伴い、運用負担も大きいです。Cは単一AZ構成のためAZ障害で完全に停止し、スナップショット復元はRPO/RTOともに大きく、高可用性要件を満たしません。Dはマルチリージョン構成ですが、S3経由の非同期書き込みはデータ整合性・レイテンシ・運用複雑性を大幅に悪化させ、かつRDS ProxyやマルチAZ Auroraと比較して運用負担が圧倒的に大きくなります。したがって、最小の運用負担で要件を満たすのは選択肢Bです。