Q1 — 単一選択ECサイトでは、書き込み用DBと1台の読み取り用レプリカを使用している。上位100商品の参照は同じ内容が繰り返され30秒の古さを許容できる。注文・顧客の運用照会は5秒以内の鮮度が必要で、時間帯ごとのBI集計は30分の遅延を許容できる。現在はこれらの読み取りをすべて同じレプリカへ送り、BI実行中にレプリカラグが20秒まで増えて運用照会の鮮度要件を外れている。書き込み負荷をライターへ戻さずに要件を満たす構成として最も適切なものはどれか。
A. 反復される商品参照はキャッシュへ移し、運用照会はレプリカへ残し、重いBI処理は分析基盤へ分離する
B. BI処理をライターへ戻し、レプリカは商品参照と運用照会だけに使用する
C. 商品参照・運用照会・BI処理をすべて同じキャッシュへ移し、レプリカを廃止する
D. アプリケーションサーバーだけを増やし、読み取り経路とレプリカ上のBI処理は変更しない
答えと解説
答え:A
同じ読み取りでも、再利用性・鮮度・処理の重さが異なります。反復される商品参照をキャッシュへ逃がしてレプリカ負荷を減らし、5秒以内の鮮度が必要な運用照会にはレプリカを使い、レプリカラグを大きくする重いBI処理は分析基盤へ分離します。読み取り経路同士が同じレプリカで競合しているため、単なるサービスの並列配置ではなく、鮮度要件を守るための負荷分離が必要です。
Q2 — 単一選択注文サービスには、決済結果をその場で返す同期処理と、領収書生成・画像変換など後から実行できる非同期処理がある。セール時には両方が増加し、ステートレスなアプリケーション層は水平スケールできる。一方、共有するAmazon RDSは安全に維持できる同時接続数に上限があり、非同期ワーカーを無制限に増やすと同期決済のレイテンシーが悪化する。最も適切なアーキテクチャはどれか。
A. 同期・非同期処理を同じワーカー群へ統合し、RDS上限を超えても全ワーカーを最大まで増やす
B. 同期処理は水平スケールし、非同期処理はキュー化して、RDSの安全な上限内でワーカー並列度を制御する
C. 同期決済もすべてキューへ入れ、決済確定前に成功レスポンスを返してRDS接続数を減らす
D. 非同期処理だけを常時最大台数で稼働させ、同期処理のコンピューティング能力は固定する
答えと解説
答え:B
同期経路は応答要件を守るため直接処理し、非同期経路はバッファで流入を平準化できます。ただし、両経路が同じRDSを利用するため、非同期ワーカーを増やす際は後段の安全な同時実行上限を制約として扱います。コンピューティング、バッファ、データベースを別々に最大化するのではなく、共有する下流制約まで含めて設計します。
Q3 — 単一選択あるサービスでは、数TBのファイル本体、IDによる低レイテンシーなメタデータ参照、月数回の履歴分析という3種類のアクセスパターンを1つのデータストアへ集約している。それぞれの性能要件を同時に満たしにくくなっている。最も適切な設計方針はどれか。
A. 3種類のデータを同じデータストアへ集約したまま、容量だけを増やして対応する
B. コンピューティング能力だけを増やし、保存方式とアクセス経路は変更しない
C. ファイル・メタデータ・履歴分析を、それぞれのアクセスパターンに合う構成へ分離する
D. すべてのデータをキャッシュへ移し、永続的なデータストアを使用しない
答えと解説
答え:C
目的特化型アーキテクチャでは、同じアプリケーションだからという理由だけで異なるアクセスパターンを1つの構成へ集約しません。ファイル保存・低レイテンシーなメタデータ参照・履歴分析をそれぞれの特性に合う役割へ分離します。
Q4 — 単一選択APIのp95レイテンシーが900ミリ秒で、最初の測定ではデータベース区間が約600ミリ秒を占めていた。キャッシュと読み取り経路の見直し後、同じ負荷でデータベース区間は80ミリ秒まで低下したが、p95は650ミリ秒にとどまり、今度はアプリケーション区間が約500ミリ秒、CPU使用率が95%になった。次の設計判断として最も適切なものはどれか。
A. 最初のボトルネックがDBだったため、引き続きDBだけを拡張し、現在の測定結果は無視する
B. キャッシュを無期限化してDBアクセスを完全になくせば、アプリケーションCPUの飽和も自動的に解消すると判断する
C. ボトルネックがアプリケーション側へ移動したと判断し、コンピューティング能力や処理経路を見直した後、同じ性能目標で再測定する
D. p95が改善したため、目標値を満たしていなくても追加の測定を終了する
答えと解説
答え:C
性能改善では、1つの制約を解消すると別の層が新しい制約になることがあります。現在の実測ではDBではなくアプリケーションCPUとアプリケーション区間が支配的です。最新の測定結果に基づいて変更対象を切り替え、変更後も同じ性能目標で再測定します。