Q94 — AWS DVA-C02 第1章
第 94/100 問 | ← 第1章
ある企業が、Amazon API Gateway APIのバックエンドとして複数のAWS Lambda関数を用いるサーバーレスアプリケーションを開発しています。開発者は、Lambda関数のコードを自動化してデプロイしたいと考えています。開発者は、AWS CodeDeployを用いて更新されたLambda関数をデプロイします。デプロイは、最終ユーザーが遭遇する可能性のある潜在的なエラーを最小限に抑える必要があります。アプリケーションが本番環境で稼働している際には、指定されたメンテナンスウィンドウ以外でダウンタイムが発生してはなりません。これらの要件を最短のデプロイ時間で満たすデプロイ構成はどれですか?
- A. Lambda関数に対してAWS CodeDeployのインプレースデプロイ構成を使用し、デプロイ直後に全トラフィックを移行します。
- B. AWS CodeDeployのリニアデプロイ構成を使用し、1分ごとに10%のトラフィックを移行します。
- C. AWS CodeDeployのワンショットデプロイ構成を使用し、全トラフィックを即座に新バージョンに移行します。
- D. AWS CodeDeployの事前定義カナリアデプロイ構成を使用し、即座に10%のトラフィックを移行し、5分後に残りのトラフィックを移行します。 ✓
正解: D. AWS CodeDeployの事前定義カナリアデプロイ構成を使用し、即座に10%のトラフィックを移行し、5分後に残りのトラフィックを移行します。
解説
事前定義カナリアデプロイ構成は、新バージョンのデプロイ時にトラフィックを段階的に導入することで、本番環境における中断リスクを低減します。 まず、新バージョンに即座に10%のトラフィックを移行するため、影響を受けるユーザーは少数に留まり、問題発生時の影響範囲を小さくできます。 その後、5分経過後に残りの90%のトラフィックを新バージョンに段階的に移行します。これにより、より多くのユーザーが新バージョンにアクセスする前に、その安定性およびパフォーマンスを検証できます。 この手法により、更新デプロイ中の最終ユーザーが遭遇する潜在的なエラーおよびダウンタイムを大幅に削減できます。 他の選択肢と比較すると: 選択肢A(インプレースデプロイ構成)は、デプロイ中にすべてのユーザーに影響を与える可能性があり、本番環境におけるリスクを高めます。 選択肢B(リニアデプロイ構成)および選択肢C(ワンショットデプロイ構成)も、トラフィックの段階的導入という利点がなく、本番中断のリスクを高めます。 したがって、選択肢Dが、デプロイ時間を最短にしつつ潜在的なエラーを最大限に削減するデプロイ構成です。