無限ノック › SOA 練習問題一覧 › 問題
SOA信頼性とビジネス継続性

ある企業のWebアプリケーションは、ユーザーセッションデータの格納にAmazon ElastiCache for Redis(クラスターモード無効、シングルノード、シングルAZ構成)を使用しています。過去に特定のAZで障害が発生した際、Redisノードが停止してセッションデータを取得できなくなり、アプリケーション全体が利用不能になるインシデントが発生しました。運用チームは以下の要件を満たすアーキテクチャへの移行を検討しています。 - プライマリノードまたはAZ障害時に自動フェイルオーバーが行われること - フェイルオーバー中のセッションデータ損失を最小化すること - 運用負荷を最小限に抑えること 最も適切な設定はどれですか?

A
レプリケーショングループを作成し、Multi-AZを有効化・自動フェイルオーバーを有効化した上で、少なくとも1つのリードレプリカを別のAZに配置する
✓ 正解
ElastiCache for Redisのレプリケーショングループ + Multi-AZ有効 + 自動フェイルオーバー有効の組み合わせにより、プライマリノードまたはAZの障害時に数秒〜1分以内でリードレプリカが自動的にプライマリへ昇格します。データはプライマリからレプリカへ非同期でレプリケートされるためセッション損失を最小化でき、DNS切り替えも自動で行われるため追加の運用作業が不要。要件をすべて最小の運用負荷で満たす唯一の構成。
B
クラスターモード(シャーディング)を有効化してデータを複数のシャードに分散し、シャードごとにレプリカを設定することで単一障害点を排除する
クラスターモード(シャーディング)はデータを複数ノードに水平分散するスケールアウトのための機能であり、AZ障害対策が主目的ではありません。また、クラスターモードへの移行にはアプリケーション側でRedisクラスタープロトコル対応クライアントへの変更が必要で、運用負荷が大幅に増します。
C
ElastiCache Global Datastoreを設定して、別リージョンにセカンダリクラスターを作成し、AZ障害時にセカンダリリージョンへ切り替える
Global Datastoreはクロスリージョンレプリケーション(リージョン全体のDR)のための機能であり、同一リージョン内のAZ障害対策には過剰です。コストも高く、フェイルオーバー時にはアプリケーション側でエンドポイントの切り替えが必要になるケースがあります。
D
Amazon EventBridgeとAWS Lambdaを組み合わせ、プライマリノードの障害を検知したら自動的に新しいElastiCacheクラスターを起動するスクリプトを実装する
ElastiCacheには自動フェイルオーバー機能が内蔵されており、EventBridge + Lambdaで新規クラスターを起動する方式ではクラスターの起動に数分かかりRTOが大幅に延びます。また新規クラスターにはセッションデータが存在しないため、要件であるデータ損失の最小化も達成できません。

解説

ElastiCache for Redisのレプリケーショングループ + Multi-AZ有効 + 自動フェイルオーバー有効の組み合わせにより、プライマリノードまたはAZの障害時に数秒〜1分以内でリードレプリカが自動的にプライマリへ昇格します。データはプライマリからレプリカへ非同期でレプリケートされるためセッション損失を最小化でき、DNS切り替えも自動で行われるため追加の運用作業が不要。要件をすべて最小の運用負荷で満たす唯一の構成。 選択肢Bのクラスターモード(シャーディング)はデータを複数ノードに水平分散するスケールアウトのための機能であり、AZ障害対策が主目的ではありません。また、クラスターモードへの移行にはアプリケーション側でRedisクラスタープロトコル対応クライアントへの変更が必要で、運用負荷が大幅に増します。 選択肢CのGlobal Datastoreはクロスリージョンレプリケーション(リージョン全体のDR)のための機能であり、同一リージョン内のAZ障害対策には過剰です。コストも高く、フェイルオーバー時にはアプリケーション側でエンドポイントの切り替えが必要になるケースがあります。 選択肢DのElastiCacheには自動フェイルオーバー機能が内蔵されており、EventBridge + Lambdaで新規クラスターを起動する方式ではクラスターの起動に数分かかりRTOが大幅に延びます。また新規クラスターにはセッションデータが存在しないため、要件であるデータ損失の最小化も達成できません。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SOA の問題一覧に戻る