Q98 — AWS SAA-C03 第16章
第 98/100 問 | ← 第16章
Q1298. ある企業がAWS上でサーバーレスアプリケーションを実行しています。このアプリケーションは、複数のAWS Lambda関数、Amazon API GatewayのREST API、およびその他のリソースで構成されています。アプリケーションのトラフィックは1日を通して変動し、ピークは営業時間帯に発生します。企業は、アプリケーションのコストを最適化しつつ、高いパフォーマンスを維持したいと考えています。 これらの要件を満たす解決策はどれですか?
- A. AWS Compute Optimizerの推奨事項を使用してメモリ設定を最適化し、AWS Cost Explorerを使用してコストの監視と最適化を行います。
- B. AWS Lambda関数に対してAWS Auto Scalingを使用します。アプリケーションをAWS Fargate上にデプロイし、AWS Budgetsを使用してコストを監視します。
- C. Lambda関数に対してプロビジョニング済み同時実行数(provisioned concurrency)を使用します。AWS Compute Optimizerの推奨事項を活用してメモリ設定を最適化し、AWS Cost Explorerでコストを監視します。 ✓
- D. AWS X-Rayを使用してパフォーマンスのボトルネックを特定し、エラーを返すリクエストをトラブルシューティングします。アプリケーションをAWS Fargate上にデプロイし、AWS Cost Explorerでコストを監視します。
正解: C. Lambda関数に対してプロビジョニング済み同時実行数(provisioned concurrency)を使用します。AWS Compute Optimizerの推奨事項を活用してメモリ設定を最適化し、AWS Cost Explorerでコストを監視します。
解説
トラフィックが変動する(ピークが営業時間帯に集中する)AWSサーバーレスアプリケーションにおいて、コスト最適化と高パフォーマンスの両立を目指す場合、最も適した解決策は選択肢Cです:Lambda関数にプロビジョニング済み同時実行数を適用し、AWS Compute Optimizerでメモリ設定を最適化し、AWS Cost Explorerでコストを監視するというアプローチです。その理由は以下の通りです。 ■ 選択肢Cが最適な理由 ・Lambda向けプロビジョニング済み同時実行数 ・コールドスタートの排除:営業時間帯(例:午前9時~午後5時)にLambdaインスタンスを事前に初期化することで、急激なトラフィック増加時でも100ms未満のレイテンシを保証します。 ・予測可能なピークにはコスト効率的:Fargateのような常時稼働型サービスとは異なり、あらかじめ温めておくインスタンス分のみ課金されるため、過剰なプロビジョニングを回避できます。 例:セール期間中の小売アプリでプロビジョニング済み同時実行数を導入したところ、P99レイテンシが90%削減され、コスト増加なしにパフォーマンスが向上しました。 ・AWS Compute Optimizerによるメモリ最適化 ・Lambdaメモリの適正サイズ決定:過去の実行データを分析し、最適なメモリ量(例:128MBではなく1,792MB)を推奨。メモリ量はCPU割り当てと直線的に連動するため、パフォーマンスとコストのバランスを最適化できます。 例:メモリを3倍に増やすことで実行時間が5倍短縮され、結果として総コストが低下(100msあたり$0.00001667 → $0.00000417)。 ・自動化された推奨:手動での試行錯誤によるチューニングを不要にします。 ・AWS Cost Explorerによる監視 ・関数単位でのLambda費用追跡:不適切に最適化されたAPIハンドラが予算の40%を占めているなど、コストの主因を特定できます。 ・予算アラート設定:vCPU時間あたり$0.04048(EC2ベース)とLambdaの従量課金モデルを比較しながら、閾値超過時に通知可能です。 ■ 選択肢Dの問題点 ・AWS X-Rayは、ボトルネックが発生した後に原因を特定する「反応的」ツールであり、コールドスタートの予防には寄与しません。 ・Fargateはサーバーレスアプリケーションには過剰であり、コンテナ管理や運用オーバーヘッドが増大します。 ■ 実装ステップの概要 ・プロビジョニング済み同時実行数の設定:AWS LambdaコンソールまたはCLIで、営業時間帯の高トラフィックAPIに500インスタンスなどの同時実行数を設定。CloudWatch Eventsでスケジュール制御(例:午前8時に有効化、午後8時に無効化)。 ・Compute Optimizer推奨の適用:Compute OptimizerコンソールからLambda推奨を確認し、コスト負荷の高い関数のメモリ設定を調整。AWS Lambda Power Tuningツールなどを用いた負荷テストで検証。 ・Cost Explorerによる監視:Lambdaサービスおよび関数名で絞り込んだコスト・アンド・ユース・レポートを作成。1日のピーク支出額の80%を閾値とした予算アラートを設定。 ■ 期待される成果 ・パフォーマンス:ピーク時におけるP99レイテンシが200ms以下(プロビジョニング済み同時実行数未使用時は2秒以上)。 ・コスト:メモリ最適化と不要な実行の削減(スロットリングによる失敗)により、Lambda費用が20~50%削減。 ・スケーラビリティ:手動介入なしで10倍のトラフィック増加にも耐えられる。 このアプローチは、可変ワークロードを持つサーバーレスアーキテクチャにおけるコストとパフォーマンスの両立という根本的な課題に直接対応します。