CodeDeploy でデプロイ設定を使用する - AWS CodeDeploy

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CodeDeploy でデプロイ設定を使用する

デプロイ設定とは、デプロイ中に CodeDeploy が使用する一連のルール、成功条件、および失敗条件です。これらのルールと条件は、デプロイ先が EC2/オンプレミスコンピューティングプラットフォーム、AWS Lambda コンピューティングプラットフォーム、または Amazon ECS コンピューティングプラットフォームのどちらにデプロイするかによって異なります。

EC2/オンプレミスコンピューティングプラットフォームのデプロイ設定

EC2/オンプレミスコンピューティングプラットフォームのデプロイでは、デプロイ設定により、最小限の正常なホストの値の使用を通じて、デプロイ中の任意の時点で利用できる必要があるインスタンスの数または割合 (%) を指定します。

AWS によって提供される 3 つの定義済みのデプロイ設定の一つを使用するか、またはカスタムデプロイ設定を作成できます。カスタムデプロイ設定の作成の詳細については、「」を参照してください。Create a Deployment Configuration。デプロイ設定に指定しない場合、CodeDeploy は CodeDeployDefault.OneAtATime デプロイ設定を使用します。

デプロイ中に CodeDeploy がインスタンスのヘルス状態をモニタリングおよび評価する方法の詳細については、「」を参照してください。Instance Health。AWS アカウントに既に登録されたデプロイ設定の一覧を表示するには、「」を参照してください。View Deployment Configuration Details

EC2/オンプレミスコンピューティングプラットフォームの事前定義されたデプロイ設定

次の表は、定義済みのデプロイ設定を一覧表示します。

デプロイ設定 説明
CodeDeployDefault.AllAtOnce

インプレースデプロイ:

一度に可能な限り多くのインスタンスへアプリケーションリビジョンをデプロイするよう試みます。アプリケーションリビジョンが 1 つ以上のインスタンスにデプロイされる場合、デプロイ全体のステータスは Succeeded として表示されます。アプリケーションリビジョンがいずれのインスタンスにもデプロイされない場合、デプロイ全体のステータスは Failed として表示されます。9 つのインスタンスの例を使い、CodeDeployDefault.AllAtOnce は、一度に 9 つのインスタンスすべてにデプロイするよう試みます。インスタンスへのデプロイが 1 つでも成功すると、デプロイ全体は成功します。9 つすべてのインスタンスへのデプロイが失敗した場合に限り失敗します。

Blue/Green デプロイ

  • 代替環境への導入:インプレースデプロイの CodeDeployDefault.AllAtOnce と同じデプロイルールに従います。

  • トラフィックルーティング: 置き換え先環境のすべてのインスタンスに一度にトラフィックをルーティングします。トラフィックが少なくとも 1 つのインスタンスに正常に再ルーティングされた場合が成功です。すべてのインスタンスへの再ルーティングが失敗した時点で失敗です。

CodeDeployDefault.HalfAtATime

インプレースデプロイ:

一度に最大半分のインスタンスにデプロイします (端数は切り捨てられます)。デプロイ全体は、アプリケーションリビジョンが少なくとも半分のインスタンスにデプロイされた場合は成功です (端数は切り捨てられます)。それ以外の場合、デプロイは失敗です。9 つのインスタンスの例では、4 つまでのインスタンスに同時にデプロイされます。デプロイ全体は 5 つ以上のインスタンスへのデプロイが成功した場合は成功です。それ以外の場合、デプロイは失敗です。

Blue/Green デプロイ

  • 代替環境への導入:インプレースデプロイの CodeDeployDefault.HalfAtATime と同じデプロイルールに従います。

  • トラフィックルーティング: 置き換え先環境で一度に最大半分のインスタンスにトラフィックをルーティングします。少なくとも半分のインスタンスへの再ルーティングが成功した場合が成功です。それ以外の場合、 は失敗します。

CodeDeployDefault.OneAtATime

インプレースデプロイ:

一度に 1 つのインスタンスにのみアプリケーションリビジョンをデプロイします。

複数のインスタンスを含むデプロイグループの場合。

  • デプロイ全体はアプリケーションリビジョンがすべてのインスタンスへデプロイされた場合、成功します。このルールの例外は、最後のインスタンスへのデプロイが失敗した場合に、デプロイ全体が成功することです。これは CodeDeploy が一度に 1 つのインスタンスのみ CodeDeployDefault.OneAtATime 設定でオフラインにするためです。

  • デプロイ全体はアプリケーションリビジョンが最後のインスタンス以外へのデプロイに失敗すると、ただちに失敗します。

  • 9 つのインスタンスを使用する例では、1 つのインスタンスに同時にデプロイされます。最初の 8 つのインスタンスへのデプロイが成功すると、デプロイ全体は成功します。最初の 8 つのインスタンスのいずれかへのデプロイが失敗すると、デプロイ全体は失敗します。

1 つのインスタンスのみを含むデプロイグループでは、1 つのインスタンスへのデプロイが成功した場合にのみ、デプロイは全体は成功します。

Blue/Green デプロイ

  • 代替環境への導入:インプレースデプロイの CodeDeployDefault.OneAtATime と同じデプロイルールに従います。

  • トラフィックルーティング: 置き換え先環境で一度に 1 つのインスタンスにトラフィックをルーティングします。トラフィックがすべての置き換え先インスタンスに正常に再ルーティングされた場合が成功です。最初に再ルーティングが失敗した時点で失敗です。このルールの例外は、最後のインスタンスが登録に失敗しても、デプロイ全体が成功することです。

Amazon ECS コンピューティングプラットフォームのデプロイ設定

Amazon ECS コンピューティングプラットフォームにデプロイする場合、デプロイ設定により、更新された Amazon ECS タスクセットにトラフィックを移行する方法が指定されます。

デプロイ中にトラフィックを移行するには 3 つの方法があります。

  • Canary: トラフィックは 2 回の増分で移行されます。事前定義された Canary オプションから選択できます。これらのオプションでは、更新された Amazon ECS タスクセットに、2 回目の増分で移行される前に最初の増分および間隔 (分単位) で移行される、トラフィックの割合 (%) が指定されています。

  • 線形: トラフィックは毎回同じ間隔 (分) の等しい増分で移行されます。増分ごとに移行するトラフィックの割合 (%) と、増分間の間隔 (分) を指定する、事前定義済み線形オプションから選択できます。

  • オール・アット・ワンス: すべてのトラフィックは元の Amazon ECS タスクセットから、更新された Amazon ECS タスクセットに同時に移行されます。

独自の Canary または線形のデプロイ設定を作成することもできます。詳細については、「Create a Deployment Configuration」を参照してください。

Amazon ECS コンピューティングプラットフォームの事前定義されたデプロイ設定

次の表に、Amazon ECS デプロイで利用できる事前定義された設定を一覧表示します。

デプロイ設定 説明

CodeDeployDefault.ECSLinear10PercentEvery1Minutes

すべてのトラフィックが移行されるまで、毎分トラフィックの 10 パーセントを移行します。

CodeDeployDefault.ECSLinear10PercentEvery3Minutes

すべてのトラフィックが移行されるまで、3 分ごとにトラフィックの 10 パーセントを移行します。

CodeDeployDefault.ECSCanary10Percent5Minutes

最初の増分でトラフィックの 10 パーセントを移行します。残りの 90 パーセントは 5 分後にデプロイされます。

CodeDeployDefault.ECSCanary10Percent15Minutes

最初の増分でトラフィックの 10 パーセントを移行します。残りの 90 パーセントは 15 分後にデプロイされます。

CodeDeployDefault.ECSAllAtOnce

すべてのトラフィックは、更新された Amazon ECS コンテナに一度に移行します。

AWS CloudFormation ブルー/グリーンデプロイ(Amazon ECS)のデプロイ設定

AWS CloudFormation ブルー/グリーンデプロイを通じて Amazon ECS コンピューティングプラットフォームにデプロイする場合、デプロイ設定により、更新された Amazon ECS コンテナへのトラフィックのシフト方法が指定されます。

AWS CloudFormation による Amazon ECS ブルー/グリーンデプロイ中に、トラフィックがシフトするには、次の 3 つの方法があります。

  • Canary: トラフィックは 2 回の増分で移行されます。事前定義された Canary オプションを選択できます。これらのオプションでは、更新された Amazon ECS タスクセットに、2 回目の増分で移行される前に最初の増分および間隔 (分単位) で移行される、トラフィックの割合 (%) が指定されています。

  • 線形: トラフィックは毎回同じ間隔 (分) の等しい増分で移行されます。増分ごとにシフトするトラフィックの割合と、増分間の間隔 (分) を指定できます。

  • オール・アット・ワンス: すべてのトラフィックは元の Amazon ECS タスクセットから、更新された Amazon ECS タスクセットに同時に移行されます。

このデプロイ設定では、独自の Canary または線形のデプロイ設定を作成することはできません。AWS CloudFormation を使用して Amazon ECS ブルー/グリーンのデプロイメントを管理する手順については、AWS CloudFormation を使用した CodeDeploy による ECS ブルー/グリーンデプロイの自動化()AWS CloudFormation ユーザーガイド

注記

AWS CloudFormation による Amazon ECS ブルー/グリーンデプロイの管理は、MXP、CPT、KIX、または BJS/ZHY リージョンでは使用できません。

AWS Lambda コンピューティングプラットフォームのデプロイ設定

AWS Lambda コンピューティングプラットフォームにデプロイする場合、デプロイ設定により、アプリケーションの新しい Lambda 関数のバージョンにトラフィックが移行される方法が指定されます。

デプロイ中にトラフィックを移行できる 3 つの方法があります。

  • Canary: トラフィックは 2 回の増分で移行されます。残りのトラフィックが 2 回目の増分で移行される前に、最初の増分および間隔で更新された Lambda 関数のバージョンに移行されるトラフィックの割合 (%) を分単位で指定する、事前定義された Canary オプションから選択できます。

  • 線形: トラフィックは毎回同じ間隔 (分) の等しい増分で移行されます。増分ごとに移行するトラフィックの割合 (%) と、増分間の間隔 (分) を指定する、事前定義済み線形オプションから選択できます。

  • オール・アット・ワンス: すべてのトラフィックは元の Lambda 関数から、更新された Lambda 関数のバージョンに一度に移行されます。

独自の Canary または線形のデプロイ設定を作成することもできます。詳細については、「Create a Deployment Configuration」を参照してください。

AWS Lambda コンピューティングプラットフォームの事前定義されたデプロイ設定

次の表に、AWS Lambda デプロイで利用できる事前定義された設定を一覧表示します。

デプロイ設定 説明

CodeDeployDefault.LambdaCanary10Percent5Minutes

最初の増分でトラフィックの 10 パーセントを移行します。残りの 90 パーセントは 5 分後にデプロイされます。

CodeDeployDefault.LambdaCanary10Percent10Minutes

最初の増分でトラフィックの 10 パーセントを移行します。残りの 90 パーセントは 10 分後にデプロイされます。

CodeDeployDefault.LambdaCanary10Percent15Minutes

最初の増分でトラフィックの 10 パーセントを移行します。残りの 90 パーセントは 15 分後にデプロイされます。

CodeDeployDefault.LambdaCanary10Percent30Minutes

最初の増分でトラフィックの 10 パーセントを移行します。残りの 90 パーセントは 30 分後にデプロイされます。

CodeDeployDefault.LambdaLinear10PercentEvery1Minute

すべてのトラフィックが移行されるまで、毎分トラフィックの 10 パーセントを移行します。

CodeDeployDefault.LambdaLinear10PercentEvery2Minutes

すべてのトラフィックが移行されるまで、2 分ごとにトラフィックの 10 パーセントを移行します。

CodeDeployDefault.LambdaLinear10PercentEvery3Minutes

すべてのトラフィックが移行されるまで、3 分ごとにトラフィックの 10 パーセントを移行します。

CodeDeployDefault.LambdaLinear10PercentEvery10Minutes すべてのトラフィックが移行されるまで、10 分ごとにトラフィックの 10 パーセントを移行します。
CodeDeployDefault.LambdaAllAtOnce

すべてのトラフィックは、更新された Lambda 関数に一度に移行します。

トピック