Q2 — AWS SAA-C03 第13章

第 2/100 問 | ← 第13章

Q902. ある企業がAWS上でECサイトアプリケーションを運用しています。Amazon EC2インスタンスが購入処理を行い、購入詳細をAmazon Aurora PostgreSQL DBクラスターに保存しています。顧客はピーク時の使用状況においてアプリケーションのタイムアウトを経験しています。ソリューションアーキテクトは、アプリケーションを再設計して、ピーク時の需要にも対応できるようにスケーリング可能にする必要があります。これらの要件を最もコスト効率よく満たすためのアクションの組み合わせはどれですか?(2つ選択)

正解: A. 新しいEC2インスタンスのAuto Scalingグループを設定し、処理が完了するまで購入処理を再試行するようにします。アプリケーションを更新して、Amazon RDS Proxyを介してDBクラスターに接続するようにします。, C. アプリケーションを更新して、購入リクエストをAmazon Simple Queue Service(Amazon SQS)キューに送信するようにします。SQSキューからメッセージを読み取る新しいEC2インスタンスのAuto Scalingグループを設定します。

解説

アプリケーションのスケーリングとピーク時のタイムアウト問題への対応という要件を満たすには、以下の2つのアクションが有効です。 A:新しいEC2インスタンスのAuto Scalingグループを設定し、処理が完了するまで購入処理を再試行するようにします。アプリケーションを更新して、Amazon RDS Proxyを介してDBクラスターに接続するようにします。 Auto Scalingグループを設定することで、ピーク時のトラフィック増加に対応して新しいEC2インスタンスを自動的に起動できます。また、一時的な障害発生時にも購入処理を再試行することで、すべての購入が確実に処理されるようになります。さらに、アプリケーションをAmazon RDS Proxy経由でDBクラスターに接続するように更新すれば、データベース接続の管理・プーリング・スケーラビリティが向上し、高負荷時でも効率的にトラフィックを処理できます。 C:アプリケーションを更新して、購入リクエストをAmazon SQSキューに送信するようにします。SQSキューからメッセージを読み取る新しいEC2インスタンスのAuto Scalingグループを設定します。 購入リクエストをSQSキューに送信するようにアプリケーションを変更することで、フロントエンド処理と購入処理を非同期かつ疎結合に分離でき、タイムアウトのリスクを低減できます。また、SQSからメッセージを読み取るEC2インスタンスのAuto Scalingグループを設定すれば、購入リクエストをスケーラブルかつ効率的に処理できます。 B:Amazon ElastiCacheクラスターをAurora PostgreSQL DBクラスターの前方に配置する案は、頻繁にアクセスされるデータのキャッシュによるパフォーマンス向上には有効ですが、ピーク時のアプリケーションタイムアウトという課題を直接解決しません。また、追加のコストとアーキテクチャの複雑さを招き、スケーラビリティ要件に対する最もコスト効率の良い解決策とは言えません。 D:AWS Lambda関数を用いて購入処理の再試行を行う案は、サーバーレス処理には適していますが、購入処理のような長時間実行されるタスクには不向きであり、過剰な複雑性とオーバーヘッドを引き起こす可能性があります。そのため、最も適切な選択肢ではありません。 E:使用量プラン付きのAmazon API Gateway REST APIを設定する案は、APIの管理やスケーリングには有効ですが、ピーク時のアプリケーションタイムアウトという課題を直接解決せず、スケーラビリティ要件に対して最もコスト効率の良い解決策とは言えません。 以上より、ECサイトアプリケーションのスケーリングとタイムアウト問題への対応には、Auto Scalingグループと再試行ロジック、およびAmazon RDS Proxyを活用したA、ならびにAmazon SQSを用いた非同期処理とSQSを監視するAuto Scalingグループを活用したCが推奨される選択肢です。