AWS / SAP-C02

SAP-C02-088 · 理解確認

BufferingによるPerformance安定化

9問 · 1問ずつ確認

1 / 9理解確認
Q1 — 単一選択

画像アップロードサービスでは通常500件/秒の要求を処理しているが、イベント開始直後だけ5,000件/秒まで増加する。

画像変換処理は非同期でよく、ワーカーは継続的に1,000件/秒を処理できる。ピークのためだけに常時最大数のワーカーを起動したくない。

最も適切な設計はどれか。

A. キューを置かず、リクエスト数を基準にAmazon EC2 Auto Scalingでワーカーを一時的に大幅増加させ、流入した処理をその場で処理する
B. Amazon ElastiCacheのリスト構造へ処理要求を一時保存し、アプリケーション側で処理待ち・再取得・削除を管理する
C. Amazon SQSを送信側と処理側の間に配置し、急増した要求をキューへ蓄積して処理側が対応可能な速度で取り出す
D. Amazon SQSを配置するが、スパイクに備えてワーカーも常時5,000件/秒を処理できる最大構成で維持する
答えと解説

答え:C

Aはピーク時だけワーカーを増やせるため常時最大構成より効率的ですが、到着した処理量をその場で吸収できるだけの急速なスケールと下流処理能力が必要です。Bも一時保存は可能ですが、処理待ちメッセージの受け渡しを目的としたマネージドキューではなく、アプリケーション側でキュー動作を実装する必要があります。DはSQSでバッファリングできますが、

ピークのためだけに
常時最大数のワーカーを起動したくない

という条件を満たしません。決定条件は、

一時的なトラフィックスパイク
+
非同期処理可能
+
ピーク時の処理能力を常時維持したくない

です。