【SAA-C03】WEB問題集:弾力性に優れたアーキテクチャの設計編

SAA-C03#1(Resilient)
企業がAWSで単一のAmazon EC2インスタンスを使用してウェブアプリケーションをホストしており、ユーザーがアップロードしたドキュメントをAmazon EBSボリュームに保存しています。スケーラビリティと可用性の向上のため、企業はアーキテクチャを複製し、別のアベイラビリティーゾーンに2つ目のEC2インスタンスとEBSボリュームを作成して、両方をApplication Load Balancerの背後に配置しました。この変更後、ユーザーからウェブサイトを更新するたびに、ドキュメントの一部しか表示されず、すべてのドキュメントが同時に表示されることはないという報告がありました。ユーザーがすべてのドキュメントを一度に見られるようにするためにソリューションアーキテクトは何を提案すべきですか?
ディスカッション 0

正解:C

Amazon EFS(Elastic File System)は、複数のEC2インスタンスから共有アクセスできるフルマネージドのネットワークファイルシステムです。この問題の根本原因と解決策:

  • 問題の原因:各EC2インスタンスが独自のEBSボリュームに別々のドキュメントを保存しているため、ALBでどちらに振り分けられるかで表示内容が変わる
  • EFSの強み
    - 複数のAZ、複数のEC2インスタンスから同時にマウント可能
    - NFSv4プロトコルで共有ファイルシステム
    - 自動的にマルチAZ冗長化
    - 容量は自動拡張

他の選択肢について:

A. 手動コピーは同期されず、常に不整合が生じます。

B. ALBはレイヤー7ルーティングでもドキュメントの場所を判断できません。

D. 両方のサーバーへの同時送信は非効率で、どちらのレスポンスを返すかの判断も困難です。

SAA-C03#2(Resilient)
企業に、受信メッセージを取り込むアプリケーションがあります。多数の他のアプリケーションとマイクロサービスがこれらのメッセージを素早く消費します。メッセージ数は大きく変動し、時には1秒あたり100000件まで急増することがあります。企業はソリューションを疎結合にし、スケーラビリティを向上させたいと考えています。この要件を満たすソリューションはどれですか?
ディスカッション 0

正解:D

Amazon SNS + SQSのファンアウトパターンは、疎結合・高スケーラビリティ・メッセージの複数コンシューマーへの配信に最適な設計パターンです。この問題の最適解である理由:

  • ファンアウトパターン:1つのSNSトピックから複数のSQSキューに配信(各コンシューマー用)
  • 疎結合:パブリッシャーとコンシューマーが直接通信しない
  • スケーラビリティ:SNS/SQSは1秒あたり数百万メッセージを処理可能
  • 各コンシューマーが独立したペースで処理可能
  • マネージドサービス:スケーリング・可用性を自動管理

他の選択肢について:

A. Kinesis Data Analyticsはストリーム分析用で、疎結合メッセージングの主目的ではありません。

B. EC2のCPUベースAuto Scalingは急増するメッセージ対応が遅く、疎結合でもありません。

C. 単一シャードのKinesisではスループット(1,000レコード/秒/シャード)が不足します。

SAA-C03#3(Resilient)
企業が分散アプリケーションをAWSに移行しています。アプリケーションは変動するワークロードを処理します。レガシープラットフォームは、複数のコンピュートノード間でジョブを調整するプライマリサーバーで構成されています。企業はレジリエンスとスケーラビリティを最大化するソリューションでアプリケーションを近代化したいと考えています。この要件を満たすために、ソリューションアーキテクトはアーキテクチャをどのように設計すべきですか?
ディスカッション 0

正解:B

SQSキュー + キューサイズベースのAuto Scalingは、疎結合・レジリエント・スケーラブルな分散処理の標準パターンです。この設計の優位性:

  • 疎結合:プライマリサーバー(パブリッシャー)とコンピュートノード(コンシューマー)がSQS経由で通信、直接依存なし
  • レジリエンス:ノード障害時もメッセージがSQSに残り、他ノードが処理
  • キューサイズベースのスケーリング
    - バックログ増加時に自動的にコンピュートノード追加
    - 負荷減少時に自動的にスケールイン
    - ワークロード変動に正確に追従
  • 可視性タイムアウトで重複処理を防止

他の選択肢について:

A. スケジュールスケーリングは変動ワークロードに対応できません。

C. CloudTrailは監査ログ用で、ジョブキューではありません。プライマリサーバーもSPOFです。

D. EventBridgeはイベントルーティング用で、ジョブキューとしての用途には最適ではありません。

SAA-C03#4(Resilient)
企業がAWSでeコマースウェブアプリケーションを構築しています。アプリケーションはAmazon API Gateway REST APIに新規注文情報を送信して処理します。企業は注文が受信順に処理されることを保証したいと考えています。この要件を満たすソリューションはどれですか?
ディスカッション 0

正解:B

Amazon SQS FIFO(First-In-First-Out)キューは、メッセージの順序保証と重複排除を提供する専用のキューです。この問題の最適解である理由:

  • 厳密な順序保証:FIFOキューでは受信順序でメッセージが処理される
  • Exactly-Once処理:重複メッセージを自動的に排除
  • スループット:最大3,000メッセージ/秒(バッチ処理時)
  • API Gateway連携:API Gatewayから直接FIFOキューにメッセージ送信可能
  • Lambdaトリガー:FIFOキューからLambdaを順序通りに起動

他の選択肢について:

A. SNSトピックは順序保証しません(SNS FIFOトピックもありますが、通常のSNSは順不同)。

C. オーソライザーはアクセス制御用で、順序管理のツールではありません。

D. SQS標準キューはベストエフォート順序で、厳密な順序保証はありません。

SAA-C03#5(Resilient)
アプリケーション開発チームが、大きな画像を小さく圧縮された画像に変換するマイクロサービスを設計しています。ユーザーがウェブインターフェースを通じて画像をアップロードすると、マイクロサービスは画像をAmazon S3バケットに保存し、AWS Lambda関数で処理と圧縮を行い、圧縮された形式の画像を別のS3バケットに保存する必要があります。ソリューションアーキテクトは、耐久性があり、ステートレスなコンポーネントを使用して画像を自動的に処理するソリューションを設計する必要があります。この要件を満たすアクションの組み合わせはどれですか?(2つ選択)

(2つ選択)

ディスカッション 0

正解:A, B

S3 → SQS → Lambdaパターンは、耐久性があり、ステートレスな画像処理の標準的なサーバーレスアーキテクチャです。

A. S3イベント通知でSQSキューに送信:S3オブジェクトの作成を検出してSQSキューにメッセージを送信。メッセージは耐久性があり、最大14日間保持可能。

B. Lambda関数をSQSトリガーで起動:Lambdaがキューをポーリングし、メッセージを処理後に自動的に削除。再試行メカニズムも内蔵。

この設計の利点:

  • ステートレス:Lambdaはステートを持たず、各呼び出しは独立
  • 耐久性:SQSでメッセージが保持されるため、Lambdaが失敗しても再処理可能
  • 自動スケール:Lambdaが同時実行数を自動調整
  • デッドレターキュー(DLQ)対応で失敗メッセージを処理可能

他の選択肢について:

C. Lambdaメモリ内のテキストファイルはステートフルで問題です。

D. EC2は管理が必要でステートレスではありません。

E. メール通知は画像処理の自動化に直接的ではありません。

SAA-C03#6(Resilient)
企業にAWSにデプロイされた3層ウェブアプリケーションがあります。ウェブサーバーはVPC内のパブリックサブネットにデプロイされています。アプリケーションサーバーとデータベースサーバーは同じVPC内のプライベートサブネットにデプロイされています。企業はAWS Marketplaceからサードパーティの仮想ファイアウォールアプライアンスを検査VPCにデプロイしました。アプライアンスはIPパケットを受け入れることができるIPインターフェースで構成されています。ソリューションアーキテクトは、トラフィックがウェブサーバーに到達する前にアプリケーションへのすべてのトラフィックを検査するためにウェブアプリケーションをアプライアンスと統合する必要があります。最小の運用オーバーヘッドでこの要件を満たすソリューションはどれですか?
ディスカッション 0

正解:D

Gateway Load Balancer(GWLB)は、サードパーティの仮想ファイアウォール・IDS/IPS・ディープパケット検査アプライアンスをデプロイ・スケール・管理するために設計されたロードバランサーです。主な特徴:

  • L3ルーティング + L4ロードバランシング:IPパケットレベルでの処理
  • GENEVE プロトコル(ポート6081)でアプライアンスにトラフィックを転送
  • Gateway Load Balancerエンドポイント(GWLBE):VPC間で透過的にトラフィックを誘導
  • サードパーティファイアウォールアプライアンスに最適:AWS Marketplace製品との標準統合
  • 最小の運用オーバーヘッド:ルート変更のみでトラフィック誘導

他の選択肢について:

A. NLBは汎用のL4ロードバランサーで、パケット検査用に設計されていません。

B. ALBはL7 HTTPロードバランサーで、IPパケット検査ができません。

C. Transit Gatewayはマルチ VPC接続用で、パケット検査の直接的なツールではありません。

SAA-C03#7(Resilient)
企業がアプリケーションを設計しています。アプリケーションはAWS Lambda関数を使用してAmazon API Gatewayから情報を受け取り、Amazon Aurora PostgreSQLデータベースに情報を保存します。概念実証の段階で、企業はデータベースにロードする必要がある大量のデータを処理するためにLambdaのクォータを大幅に増やさなければなりませんでした。ソリューションアーキテクトはスケーラビリティを向上させ、構成の労力を最小化する新しい設計を推奨する必要があります。この要件を満たすソリューションはどれですか?
ディスカッション 0

正解:D

Lambda + SQSキューによる疎結合設計は、スケーラビリティの向上と構成の簡素化の両方を実現します:

  • 責務の分離
    - Lambda A:API Gatewayから情報を受信し、SQSに書き込み(高速処理)
    - Lambda B:SQSからメッセージを読み取り、DBに書き込み(制御されたペース)
  • バッファリング:SQSがトラフィックスパイクを吸収、DBへの負荷を平滑化
  • スケーラビリティ
    - Lambda Aは高頻度起動可能
    - Lambda Bは並行実行数を制御してDB接続枯渇を防止
  • エラー処理:メッセージが失敗してもSQSで再試行可能、DLQで失敗メッセージ管理

他の選択肢について:

A. EC2 + Tomcatへの移行はサーバーレスの利点を失い、構成の労力が増大します。

B. DynamoDB + DAXは大幅なDBエンジン変更で、アプリケーションコードも書き換えが必要です。

C. SNSはパブリッシュ/サブスクライブで、バッファリング機能がなく、失敗時の再試行が困難です。

SAA-C03#8(Resilient)
企業がUDP接続を使用するVoice over Internet Protocol(VoIP)サービスを提供しています。サービスはAuto Scalingグループで実行されるAmazon EC2インスタンスで構成されています。企業は複数のAWSリージョンにデプロイしています。企業はユーザーを最も低いレイテンシーのリージョンにルーティングする必要があります。企業はリージョン間の自動フェイルオーバーも必要としています。この要件を満たすソリューションはどれですか?
ディスカッション 0

正解:A

Network Load Balancer(NLB)+ AWS Global Acceleratorの組み合わせが、UDP + 最低レイテンシー + 自動フェイルオーバーの要件に最適です:

  • NLB
    - UDPプロトコルサポート(ALBはTCP/HTTP/HTTPSのみ、UDP非対応)
    - VoIPのような低レイテンシーアプリに最適
    - 超低レイテンシー(ミリ秒未満)
  • AWS Global Accelerator
    - 自動レイテンシーベースルーティング:最も近いリージョンへ誘導
    - 自動フェイルオーバー:ヘルスチェック失敗時に数秒でルート切替
    - Anycast IP:静的IPアドレスを提供(DNS変更不要)
    - AWSバックボーンネットワーク経由で最適化ルート

他の選択肢について:

B. ALBはUDPをサポートしません(VoIPの要件違反)。

C. Route 53レイテンシールーティングはフェイルオーバーがTTLに依存して遅く、CloudFrontはUDPをサポートしません。

D. ALBのUDP非対応 + 加重ルーティングはレイテンシーベースではありません。

SAA-C03#9(Resilient)
企業にクリティカルなデータを含むAmazon S3バケットがあります。企業は偶発的な削除からデータを保護する必要があります。この要件を満たすためにソリューションアーキテクトが実行すべきステップの組み合わせはどれですか?(2つ選択)

(2つ選択)

ディスカッション 0

正解:A, B

S3 バージョニング + MFA Deleteの組み合わせが、偶発的削除からのデータ保護に最適です:

A. S3バージョニング

  • 削除しても以前のバージョンが保持される
  • 削除マーカーを復元することでファイルを復旧可能
  • 上書きからもデータを保護

B. MFA Delete

  • オブジェクトの完全削除やバージョニング状態の変更にMFA認証が必要
  • ルートユーザーのみが有効化可能
  • 追加のセキュリティレイヤーで偶発的・悪意ある削除を防止

両方を組み合わせることで、多層防御が実現します。

他の選択肢について:

C. バケットポリシーはアクセス制御で、削除防止には有効だが、正当な権限を持つユーザーの誤削除を防げない。

D. デフォルト暗号化はデータ保護だが、削除防止とは無関係。

E. ライフサイクルポリシーは逆に自動削除を行うため、偶発的削除防止には不適切。

SAA-C03#10(Resilient)
企業にデータ取り込みワークフローがあり、以下で構成されています:・新しいデータ配信の通知用のAmazon Simple Notification Service(Amazon SNS)トピック・データを処理してメタデータを記録するAWS Lambda関数。企業はネットワーク接続の問題により取り込みワークフローが時々失敗することを観察しています。そのような失敗が発生すると、企業が手動でジョブを再実行しない限り、Lambda関数は対応するデータを取り込みません。Lambda関数が将来的にすべてのデータを取り込むようにするためにソリューションアーキテクトが取るべきアクションの組み合わせはどれですか?(2つ選択)

(2つ選択)

ディスカッション 0

正解:B, E

SNS → SQS → Lambdaパターンは、失敗時の自動再試行とメッセージの耐久性を提供する堅牢なアーキテクチャです:

B. SQSキューをSNSトピックにサブスクライブ

  • SNSメッセージをSQSキューに永続化
  • Lambdaが失敗してもメッセージは最大14日間保持
  • ネットワーク問題時もメッセージロスなし

E. LambdaがSQSから読み取るよう変更

  • Lambdaがキューから自動的にポーリング
  • 失敗時は自動再試行(設定可能)
  • 最終的に失敗したメッセージはデッドレターキュー(DLQ)に送信
  • Visibility Timeoutで重複処理防止

他の選択肢について:

A. Lambdaは自動的にマルチAZで実行されます(ユーザー設定不要)。また、AZ障害ではなくネットワーク問題が原因です。

C. CPU/メモリ増加はパフォーマンス改善で、失敗時の再取り込みとは無関係。

D. Lambdaには「プロビジョンドスループット」という概念はなく、プロビジョンド同時実行数(Provisioned Concurrency)は起動遅延削減用です。