過去問ドリル

SAA-C03:AWS Certified Solutions Architect - Associate 回復性のあるアーキテクチャの設計 問22

回復性のあるアーキテクチャの設計/スケーラブルで疎結合なアーキテクチャの設計

ステートフルな Web アプリを Auto Scaling で水平スケールさせたところ、インスタンスがスケールインするとユーザーのセッション情報が失われる問題が起きています。どのインスタンスがリクエストを受けても一貫して処理できるようにしたい。最も適切な設計はどれですか。

当サイトのオリジナル問題(SAA-C03:AWS Certified Solutions Architect - Associateの出題範囲「回復性のあるアーキテクチャの設計」に対応。実際の試験問題ではありません)

正解:D

解説

セッション状態をインスタンス外の DynamoDB や ElastiCache(Redis など)に保持してアプリをステートレスにすると、どのインスタンスがリクエストを受けても同じセッション情報を参照でき、スケールインでインスタンスが削除されてもセッションが失われません。ローカル保存+スティッキーセッションはインスタンス削除時に失われ、単一インスタンス化や LB 削除は可用性・スケーラビリティを損ないます。

下線の用語は 用語集 で意味を確認できます。

選択肢ごとの解説

  • A誤り。単一の大きなインスタンスは単一障害点となり、スケーラビリティと可用性の要件に反します。
  • B誤り。ロードバランサーの削除は負荷分散と可用性を損ない、問題の解決になりません。
  • C誤り。ローカルディスク保存はスケールインでインスタンスが削除されるとセッションが失われ、根本解決になりません。
  • D正しい。セッションを外部ストアに持たせてステートレス化すれば、どのインスタンスでも一貫して処理でき、スケールインにも強くなります。
SAA-C03:AWS Certified Solutions Architect - Associateの問題を演習モードで解く