でのデプロイ設定の操作 CodeDeploy - AWS CodeDeploy

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

でのデプロイ設定の操作 CodeDeploy

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

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

EC2/オンプレミスコンピューティングプラットフォームにデプロイする場合、デプロイ設定では、「正常なホストの最小数」とオプションの「ゾーンあたりの正常なホストの最小数」の値を使用することで、デプロイ中のどの時点でも使用可能でなければならないインスタンスの数または割合 (%) を指定します。

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

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

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

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

注記

zonal configuration 機能 (アベイラビリティーゾーンあたりの正常なホストの数を指定できる機能) をサポートする定義済みのデプロイ設定はありません。この機能を使用する場合は、独自のデプロイ設定を作成する必要があります。

デプロイ設定 説明
CodeDeployDefault.AllAtOnce

インプレースデプロイ:

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

ブルー/グリーンデプロイ

  • 置換環境へのデプロイ: インプレースデプロイ CodeDeployDefaultAllAtOnce の場合、 と同じデプロイルールに従います。

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

CodeDeployDefault.HalfAtATime

インプレースデプロイ:

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

注記

複数の Auto Scaling グループのインスタンスにデプロイする場合、 は、インスタンスが にある Auto Scaling グループに関係なく、一度に最大半分のインスタンスにデプロイ CodeDeploy します。例えば、Auto Scaling グループが ASG1ASG2 の 2 つあり、それぞれに 10 個のインスタンスがあるとします。このシナリオでは、 だけで 10 個のインスタンスにデプロイASG1し、少なくとも半分のインスタンスにデプロイされているため、これを成功と見なす CodeDeploy ことができます。

ブルー/グリーンデプロイ

  • 置換環境へのデプロイ: インプレースデプロイの場合、 CodeDeployDefault.HalfAtATime と同じデプロイルールに従います。

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

CodeDeployDefault.OneAtATime

インプレースデプロイ:

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

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

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

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

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

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

ブルー/グリーンデプロイ

  • 置換環境へのデプロイ: インプレースデプロイでは、 CodeDeployDefault.OneAtATime と同じデプロイルールに従います。

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

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

Amazon ECS コンピューティングプラットフォームにデプロイする場合、デプロイ設定より、更新された Amazon ECS タスクセットにトラフィックを移行する方法を指定します。Canary 、線形 、またはall-at-onceデプロイ設定を使用してトラフィックをシフトできます。 詳細については、「デプロイ設定」を参照してください。

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

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

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

注記

Network Load Balancer を使用する場合、CodeDeployDefault.ECSAllAtOnce 優先デプロイ設定のみがサポートされます。

デプロイ設定 説明

CodeDeployDefault.ECSLinear10PercentEvery1Minutes

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

CodeDeployDefault.ECSLinear10PercentEvery3Minutes

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

CodeDeployDefault.ECSCanary10Percent5Minutes

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

CodeDeployDefault.ECSCanary10Percent15Minutes

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

CodeDeployDefault.ECSAllAtOnce

すべてのトラフィックを同時に更新済み Amazon ECS コンテナに移行します。

AWS CloudFormation blue/green デプロイのためのデプロイ設定 (Amazon ECS)

Blue AWS CloudFormation /Green デプロイを通じて Amazon ECS コンピューティングプラットフォームにデプロイする場合、デプロイ設定は、更新された Amazon ECS コンテナにトラフィックを移行する方法を指定します。Canary 、線形 、またはall-at-onceデプロイ設定を使用してトラフィックをシフトできます。 詳細については、「デプロイ設定」を参照してください。

AWS CloudFormation ブルー/グリーンデプロイでは、独自のカスタム Canary または線形デプロイ設定を作成することはできません。 AWS CloudFormation を使用して Amazon ECS ブルー/グリーンデプロイを管理する step-by-step 手順については、 AWS CloudFormation ユーザーガイド「 CodeDeploy を使用して ECS ブルー/グリーンデプロイを自動化する AWS CloudFormation」を参照してください。

注記

を使用した Amazon ECS ブルー/グリーンデプロイの管理 AWS CloudFormation は、欧州 (ミラノ)、アフリカ (ケープタウン)、アジアパシフィック (大阪) の各リージョンでは利用できません。

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

AWS Lambda コンピューティングプラットフォームにデプロイする場合、デプロイ設定では、アプリケーションの新しい Lambda 関数バージョンにトラフィックを移行する方法を指定します。Canary 、線形 、またはall-at-onceデプロイ設定を使用してトラフィックをシフトできます。 詳細については、「デプロイ設定」を参照してください。

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

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

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

デプロイ設定 説明

CodeDeployDefault0.LambdaCanary10Percent5Minutes

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

CodeDeployDefault0.LambdaCanary10Percent10Minutes

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

CodeDeployDefault0.LambdaCanary10Percent15Minutes

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

CodeDeployDefault0.LambdaCanary10Percent30Minutes

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

CodeDeployDefault0.LambdaLinear10PercentEvery1Minute

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

CodeDeployDefault0.LambdaLinear10PercentEvery2Minutes

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

CodeDeployDefault0.LambdaLinear10PercentEvery3Minutes

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

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

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

トピック