Q86 — AWS DOP-C02 第2章
第 86/100 問 | ← 第2章
あるDevOpsエンジニアが、AWS Lambda関数を使用するサーバーレスアプリケーション向けの継続的デプロイパイプラインを構築しています。この企業は、失敗したデプロイが顧客に与える影響を最小限に抑えたいと考えています。また、モニタリングも必要です。 これらの要件を満たすデプロイ戦略の構成はどれですか?
- A. AWS Serverless Application Model(AWS SAM)テンプレートを使用してサーバーレスアプリケーションを定義します。AWS CodeDeployを使用し、Canary10Percent15MinutesデプロイメントプリファレンスタイプでLambda関数をデプロイします。Amazon CloudWatchアラームを使用して関数の健全性を監視します。 ✓
- B. AWS CloudFormationを使用して新しいスタック更新をリリースし、すべてのリソースにAmazon CloudWatchアラームを含めます。開発者向けにAWS CodePipelineの承認アクションを設定し、AWS CloudFormationの変更セットを検証および承認させます。
- C. AWS CloudFormationを使用して各スタック更新時に新バージョンをリリースし、すべてのリソースにAmazon CloudWatchアラームを含めます。スタック更新中に、AWS::Lambda::AliasリソースのRoutingConfigプロパティを使用してトラフィックルーティングを更新します。
- D. AWS CodeBuildを使用して、テスト用のサンプルイベントペイロードをLambda関数に追加します。新バージョンの関数をリリースし、Amazon CloudWatchアラームを含めます。本番用エイリアスを新バージョンを指すように更新します。アラームがアラート状態になった場合にロールバックを実行するように構成します。
正解: A. AWS Serverless Application Model(AWS SAM)テンプレートを使用してサーバーレスアプリケーションを定義します。AWS CodeDeployを使用し、Canary10Percent15MinutesデプロイメントプリファレンスタイプでLambda関数をデプロイします。Amazon CloudWatchアラームを使用して関数の健全性を監視します。
解説
AWS Serverless Application Model(SAM)は、Lambda関数などのリソースをテンプレートで定義できるため、デプロイプロセスを簡素化します。AWS CodeDeployのカナリー展開タイプ(例:10%のトラフィックを15分間)は、段階的にトラフィックを移行することで、障害の影響を最小限に抑えます。Amazon CloudWatchアラームは、関数の健全性をリアルタイムで監視し、問題を早期に検出します。選択肢Bでは、変更セットの手動承認によりデプロイが遅延し、段階的展開戦略が欠けています。選択肢Cでは、明示的な段階的トラフィック切り替えがなく、リスク制御が不十分です。選択肢Dでは、自動化された段階的展開がなく、アラートに基づくロールバックに依存しており、予防的対応ではありません。AWSドキュメントでは、CloudWatchと組み合わせたCodeDeployのカナリーまたはリニア展開戦略が、安全かつ信頼性の高いLambdaデプロイを実現するために推奨されています。