【DVA-C02】WEB問題集:トラブルシューティングと最適化編

WEB問題集

DVA-C02#1(troubleshooting)

Lambda 関数のコールドスタートが断続的に発生し、p99 レイテンシが SLO を超過しています。Java 11 ランタイム、メモリ 1024 MB、初期化に DI コンテナの構築が含まれます。最も効果のある対策はどれですか。

ディスカッション 0

正解:D

正解の根拠

Provisioned Concurrency は事前に初期化済みの実行環境を保持し、コールドスタートを排除します。Application Auto Scaling と組み合わせれば需要変化にも追従でき、コストも最小化できます。

コールドスタート対策の比較

対策効果コスト
Provisioned Concurrency排除常時課金
SnapStart (Java)大幅短縮追加なし
メモリ増限定的呼出単価増

不正解の理由

  • B: 同時実行予約はスロットリング対策で、コールドスタートそのものは消えません。
  • C: Layers はサイズ最適化に役立ちますが、Init 時間にはほぼ寄与しません。
  • A: メモリ増は CPU を上げますが、DI 構築の根本短縮にはつながりにくいです。

参考:Provisioned Concurrency

DVA-C02#2(troubleshooting)

API Gateway REST API で 5XX エラーが断続的に発生しています。CloudWatch メトリクスで IntegrationLatency が高く、Lambda 関数では Errors も Throttles も 0 です。原因として最も疑わしいのはどれですか。

ディスカッション 0

正解:B

正解の根拠

5XX かつ IntegrationLatency が高いのに Lambda 側のエラー/スロットルが 0 という症状は、Lambda 自体は完了しているが API Gateway の 29 秒統合タイムアウトに引っかかっているケースを強く示唆します。Init Duration の長期化やバックエンド処理の長時間化が典型的原因です。

API Gateway 5XX 主要原因

原因判別指標
統合タイムアウトIntegrationLatency 高
Lambda エラーLambda Errors
スロットルLambda Throttles

不正解の理由

  • D: Reserved Concurrency 0 ならスロットルが計上されるはずです。
  • A: CORS 失敗はブラウザ側エラーで API Gateway 5XX にはなりません。
  • C: API キー失効は 403 を返し、5XX とは異なります。

参考:API Gateway Limits

DVA-C02#3(troubleshooting)

X-Ray を Lambda に有効化したが、ServiceMap に下流の DynamoDB が表示されません。コードは boto3 で DynamoDB を呼び出しており、関数のトレースは正常に出力されています。最も可能性の高い原因はどれですか。

ディスカッション 0

正解:D

正解の根拠

Lambda の X-Ray Active Tracing は実行環境のトレースを取得しますが、下流 AWS API 呼出のサブセグメントを取るには SDK のパッチが必要です。boto3 を patch_all または patch(['botocore']) で計装することで、ServiceMap に DynamoDB が現れます。

X-Ray 計装ポイント

対象方法
Lambda 自体Active Tracing 有効化
AWS SDK 呼出SDK パッチ
外部 HTTPrequests/httpx パッチ

コード例

from aws_xray_sdk.core import patch_all
patch_all()
ddb = boto3.client("dynamodb")

不正解の理由

  • B: API Gateway の有効化はその上流のトレースで、下流計装には不要です。
  • A: Lambda は X-Ray Daemon を内蔵しており、手動起動不要です。
  • C: DynamoDB 側に X-Ray の有効化設定はありません。

参考:X-Ray Python SDK

DVA-C02#4(troubleshooting)

CloudWatch Logs Insights で Lambda 関数の重大エラーを発生時刻順に集計したいです。リクエスト ID と error メッセージをフィールド化して上位 20 件を返すクエリはどれですか。

ディスカッション 0

正解:D

正解の根拠

CloudWatch Logs Insights のクエリ言語は filter, parse, fields, sort, limit を組み合わせます。filter で ERROR を絞り込み、parse で構造化し、sort と limit で上位を取得するのが基本パターンです。

主要演算子

演算子機能
filter条件絞り込み
parse正規表現抽出
stats集計

不正解の理由

  • A: stats は集計用で、個別レコードの上位取得とは異なります。
  • B: display や top は Insights の構文ではありません。
  • C: 構文が SQL 風で Insights 言語ではありません。

参考:Logs Insights Syntax

DVA-C02#5(troubleshooting)

DynamoDB テーブルで突発的に書き込みスロットリングが発生し、ProvisionedThroughputExceeded メトリクスが上昇しています。短期的に解消する手段と、長期的に再発を防ぐ手段の組み合わせはどれですか。(2 つ選択)

(2つ選択)

ディスカッション 0

正解:D, E

正解の根拠

緊急対応としてはオンデマンドへの切替で需要追従し、根本対策として PK 設計を見直して書き込みのホットスポットを解消します。これは AWS が公式に推奨する短期/長期施策の組み合わせです。

スロットリング対策

期間対策
短期オンデマンド切替/容量増
長期PK 再設計

不正解の理由

  • B: ターゲット使用率を上げると余裕が減りスロットリング再発リスクが高まります。
  • C: Streams + Firehose は連携用で、書き込み性能改善ではありません。
  • A: DAX は読み込みキャッシュ専用で書き込みには効果がありません。

参考:DynamoDB PK Design