高可用性・耐障害性の設計応用問題
Amazon CloudFrontを使用したWebサービスで、オリジンサーバー(ALB+EC2)が一時的に全台ダウンした場合、CloudFrontのキャッシュの動作として正しいものはどれですか?
A.CloudFrontはキャッシュのTTLが有効期限内であればキャッシュ済みのコンテンツをユーザーに返し続けるため、オリジン障害中もキャッシュHITしたリクエストはサービスを継続できる← 正解
✓ 正解です。CloudFrontはTTL内のキャッシュをオリジン障害中も提供できます。さらにオリジンフェイルオーバー設定でバックアップオリジンへの切り替えも可能です。
B.オリジンが全台ダウンすると、CloudFrontはキャッシュに有効なコンテンツがあっても全リクエストに対して503エラーを即座に返す
✗ CloudFrontはオリジン障害中もキャッシュ有効期限内のコンテンツをユーザーに返します。キャッシュがある場合は503を返しません。
C.CloudFrontはオリジン障害を検知すると自動的に別リージョンのS3バケットにフェイルオーバーし、キャッシュは使用されない
✗ CloudFrontのオリジンフェイルオーバーは設定が必要であり、自動的に別リージョンのS3に切り替わる機能はデフォルトでは存在しません。
D.CloudFrontのキャッシュはオリジン障害と同時に自動的にクリアされるため、障害後はすべてのリクエストがオリジンへ転送されてエラーとなる
✗ CloudFrontのキャッシュはオリジン障害によって自動クリアされません。TTLが切れるまでキャッシュは保持され、ユーザーへの提供に使用されます。