Q54 — AWS SAA-C03 第15章
第 54/100 問 | ← 第15章
Q1154. ある会社では、API をホストするために Amazon EC2 Auto Scaling グループを使用しています。EC2 インスタンスは Application Load Balancer(ALB)に関連付けられたターゲットグループに属しています。また、データは Amazon Aurora PostgreSQL データベースに格納されています。この API には毎週のメンテナンスウィンドウがあります。会社は、この毎週のメンテナンスウィンドウ中に API が静的なメンテナンス応答を返すことを保証する必要があります。この要件を、最も少ない運用オーバーヘッドで満たす解決策はどれですか?
- A. Aurora PostgreSQL 内にキーと値を格納するためのテーブルを作成し、メンテナンスフラグ用のキーを設定します。メンテナンスウィンドウ開始時にこのフラグを設定し、API がそのテーブルをクエリしてフラグの状態を確認し、フラグが設定されている場合はメンテナンス応答を返すように構成します。メンテナンスウィンドウ終了時にフラグをリセットします。
- B. Amazon Simple Queue Service(Amazon SQS)キューを作成し、EC2 インスタンスをそのキューにサブスクライブします。メンテナンスウィンドウ開始時にキューにメッセージを送信し、API がキューからメンテナンス開始メッセージを受信した場合にメンテナンス応答を返すように構成します。メンテナンスウィンドウ終了時に別のメッセージをキューに送信して通常動作を復元します。
- C. ALB にリスナールールを作成し、リクエストのパスがワイルドカードと一致する場合にメンテナンス応答を返すように設定します。このルールの優先順位を 1 に設定します。メンテナンスを実施し、メンテナンスウィンドウ終了後にこのリスナールールを削除します。 ✓
- D. Amazon Simple Notification Service(Amazon SNS)トピックを作成し、EC2 インスタンスをそのトピックにサブスクライブします。メンテナンスウィンドウ開始時にトピックにメッセージを送信し、API がトピックからメンテナンス開始メッセージを受信した場合にメンテナンス応答を返すように構成します。メンテナンスウィンドウ終了時に別のメッセージをトピックに送信して通常動作を復元します。
正解: C. ALB にリスナールールを作成し、リクエストのパスがワイルドカードと一致する場合にメンテナンス応答を返すように設定します。このルールの優先順位を 1 に設定します。メンテナンスを実施し、メンテナンスウィンドウ終了後にこのリスナールールを削除します。
解説
静的なメンテナンス応答を毎週のメンテナンスウィンドウ中に返すという要件を、最も少ない運用オーバーヘッド(シンプルさと管理容易性)で満たすため、各選択肢を検討します。重要な要件は以下の通りです:・メンテナンスウィンドウ中は静的なメンテナンス応答を返すこと。・運用オーバーヘッドが最小であること(コード変更や複雑なロジックを伴わないこと)。・API やデータベースへのコード変更が不要であること。選択肢の分析:A:Aurora PostgreSQL 内にメンテナンスフラグを格納するテーブルを作成し、API がそのテーブルをクエリしてフラグの状態を確認する方法。これは、データベーススキーマの変更(テーブル追加)、API コードの変更(DB クエリ処理の追加)、およびメンテナンス中のフラグ操作(手動またはスクリプトによる更新)を必要とし、運用オーバーヘッドは高くなります。B:Amazon SQS キューを作成し、EC2 インスタンスをサブスクライブ、メッセージ受信に基づくメンテナンスモード制御を行う方法。SQS のセットアップとインスタンスのサブスクライブ、API コードの変更(SQS メッセージの受信と応答制御)、およびメンテナンス中のメッセージ送信が必要であり、運用オーバーヘッドは高くなります。C:ALB にリスナールールを作成し、特定のパス(例:「/maintenance」など)にマッチしたリクエストに対して固定応答(メンテナンスページなど)を返す方法。ルールの優先順位を 1 に設定することで、他のルールより先に適用され、メンテナンス中は確実にメンテナンス応答が返されます。メンテナンス終了後はルールを削除(または無効化)すればよいです。これは、コード変更を一切必要とせず、ALB の組み込み機能のみを利用する最もシンプルな方法であり、運用オーバーヘッドは非常に低くなります。D:Amazon SNS トピックを作成し、EC2 インスタンスをサブスクライブ、メッセージ受信に基づくメンテナンスモード制御を行う方法。SNS のセットアップとサブスクライブ、API コードの変更(SNS メッセージの受信と応答制御)、およびメンテナンス中のメッセージ送信が必要であり、運用オーバーヘッドは高くなります。最も少ない運用オーバーヘッドを実現する最適な解決策は、選択肢 C です。この解決策は、ALB のネイティブ機能を活用してメンテナンス応答を提供し、コード変更が不要で、単純な ALB 設定(ルールの作成/削除)のみで実現可能です。