

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

# CodeDeploy でデプロイグループを作成する
<a name="deployment-groups-create"></a>

CodeDeploy コンソール、 AWS CLI、CodeDeploy APIs、または CloudFormation テンプレートを使用してデプロイグループを作成できます。 CloudFormation テンプレートを使用してデプロイグループを作成する方法については、「」を参照してください[CloudFormation CodeDeploy リファレンスの テンプレート](reference-cloudformation-templates.md)。

CodeDeploy コンソールを使用してアプリケーションを作成する場合は、最初のデプロイグループを同時に設定します。を使用してアプリケーション AWS CLI を作成する場合は、別のステップで最初のデプロイグループを作成します。

デプロイグループ作成の一環として、サービスロールを指定する必要があります。詳細については、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」を参照してください。

**Topics**
+ [インプレースデプロイ用のデプロイグループを作成する (コンソール)](deployment-groups-create-in-place.md)
+ [EC2/オンプレミス Blue/Green デプロイ用のデプロイグループを作成する (コンソール)](deployment-groups-create-blue-green.md)
+ [Amazon ECS デプロイ用のデプロイグループを作成する (コンソール)](deployment-groups-create-ecs.md)
+ [CodeDeploy Amazon EC2 デプロイ用の Elastic Load Balancing でロードバランサーをセットアップする](deployment-groups-create-load-balancer.md)
+ [CodeDeploy Amazon ECS デプロイ用のロードバランサー、ターゲットグループ、リスナーをセットアップする](deployment-groups-create-load-balancer-for-ecs.md)
+ [デプロイグループの作成 (CLI)](deployment-groups-create-cli.md)

# インプレースデプロイ用のデプロイグループを作成する (コンソール)
<a name="deployment-groups-create-in-place"></a>

CodeDeploy コンソールを使用して、インプレースデプロイ用のデプロイグループを作成する方法。

**警告**  
次の場合は、これらの手順を実行しないでください。  
アプリケーションの最初の CodeDeploy デプロイで使用するインスタンスを準備していない。インスタンスをセットアップするには、[CodeDeploy のためにインスタンスを用いた操作](instances.md) の指示に従い、その後にこのトピックの手順に従います。
カスタムデプロイ設定を使用してデプロイグループを作成したいが、まだデプロイ設定を作成していない。[CodeDeploy を使用してデプロイ設定を作成する](deployment-configurations-create.md) の指示に従った後に、このトピックの手順に従います。
少なくとも、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」に記載されている信頼とアクセス権限を持つ、CodeDeploy を信頼するサービスロールがない。サービスロールを作成して設定するには、[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md) の指示に従い、その後にこのトピックの手順に従います。
インプレースデプロイのために Elastic Load Balancing で、Classic Load Balancer、Application Load Balancer、または Network Load Balancer を選択したいが、まだ作成していない場合。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で CodeDeploy コンソールを開きます。
**注記**  
「[CodeDeploy の開始方法](getting-started-codedeploy.md)」で設定したのと同じユーザーでサインインします。

1. ナビゲーションペインで [**デプロイ**] を展開し、[**アプリケーション**] を選択します。

1. [**Applications**] ページで、デプロイグループを作成するアプリケーションの名前を選択します。

1. アプリケーションのページで、[**デプロイグループ**] タブの [**デプロイグループの作成**] を選択します。

1. [**デプロイグループ名**] に、デプロイグループを表す名前を入力します。
**注記**  
他のデプロイグループで使用されている設定 (デプロイグループ名、タグ、Amazon EC2 Auto Scaling グループ名、または両方、およびデプロイ設定を含む) を使用する場合は、このページでこれらの設定を指定します。この新しいデプロイグループと既存のデプロイグループは名前が同じでも、それぞれが別のアプリケーションに関連付けられるため、CodeDeploy では別のデプロイグループとして扱われます。

1. [**サービスロール**] で、ターゲットインスタンスへのアクセス権を CodeDeploy に付与するサービスロールを選択します。

1. [**デプロイタイプ**] で、[**インプレース**] を選択します。

1. **[環境設定]** で、次の操作を行います。

   1. アプリケーションを Amazon EC2 Auto Scaling グループにデプロイする場合は、**[Amazon EC2 Auto Scaling グループ]** を選択し、アプリケーションリビジョンをデプロイする先の Amazon EC2 Auto Scaling グループの名前を選択します。Amazon EC2 Auto Scaling グループの一部として新しい Amazon EC2 インスタンスが起動されると、CodeDeploy ではリビジョンを新しいインスタンスに自動的にデプロイできます。デプロイグループには最大 10 個の Amazon EC2 Auto Scaling グループを追加できます。詳細については、「[CodeDeploy と Amazon EC2 Auto Scaling の統合](integrations-aws-auto-scaling.md)」を参照してください。

   1. 

      **[Amazon EC2 Auto Scaling グループ]** を選択した場合、オプションで **[Auto Scaling グループに終了フックを追加]** を選択すると、デプロイグループを作成または更新するときに CodeDeploy が Auto Scaling グループに終了フックをインストールします。このフックをインストールすると、CodeDeploy は終了デプロイを実行します。詳細については、「[Auto Scaling スケールインイベント中の終了デプロイの有効化](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-behaviors-hook-enable)」を参照してください。

   1. インスタンスにタグを付ける場合は、**[Amazon EC2 インスタンス]** または **[オンプレミスインスタンス]** を選択します。**[キー]** フィールドと **[値]** フィールドに、インスタンスにタグを付けるために使用するキーと値のペアの値を入力します。単一タググループで最大 10 個のキーと値のペアをタグ付けできます。

      1. [**値**] フィールドでワイルドカードを使用して、似ている Amazon EC2 インスタンス、コストセンター、グループ名などの特定のパターンでタグ付けされているすべてのインスタンスを識別できます。例えば、**キー** フィールドに **名前** を選択し、**値** フィールドに **GRP-\$1a** を入力すると、CodeDeploy は **GRP-1a**、**GRP-2a**、および **GRP-XYZ-a** などそのパターンに当てはまるすべてのインスタンスを特定します。

      1. [**値**] フィールドでは、大文字と小文字が区別されます。

      1. リストからキーと値のペアを削除するには、削除のアイコンを選択します。

      CodeDeploy で、指定されたキーバリューの各ペアまたは Amazon EC2 Auto Scaling グループ名に一致するインスタンスが検出されると、一致したインスタンスの数が表示されます。インスタンスに関する詳細情報を表示するには、数をクリックします。

      インスタンスへのデプロイの条件をさらに絞り込むには、[**Add tag group**] を選択してタググループを作成します。それぞれ最大 10 個のキーと値のペアを持つタググループを 3 つまで作成できます。デプロイグループで複数のタググループを使用する場合は、すべてのタググループによって識別されたインスタンスのみがデプロイグループに含まれます。つまり、インスタンスがデプロイグループに含まれるには、各グループの少なくとも 1 つのタグが一致する必要があります。

      タググループを使用してデプロイグループを絞り込む方法ついては、「[CodeDeploy 中のデプロイグループのためのインスタンスのタグ付け](instances-tagging.md)」を参照してください。

1. [**Systems Manager を使用したエージェント設定**] で、デプロイグループのインスタンスに CodeDeploy エージェントをインストールおよび更新する方法を指定します。CodeDeploy エージェントの詳細については、「[CodeDeploy エージェントの使用](https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/codedeploy-agent.html)」を参照してください。Systems Manager の詳細については、「[Systems Manager とは](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)」を参照してください。

   1. **Never**: Systems Manager を使用する CodeDeploy インストールの設定をスキップします。デプロイで使用するには、インスタンスにエージェントがインストールされている必要があります。したがって、CodeDeploy エージェントを別の方法でインストールする場合のみ、このオプションを選択します。

   1. [**1 回のみ**]: Systems Manager は、デプロイグループ内のすべてのインスタンスに CodeDeploy エージェントを 1 回インストールします。

   1. [**現在およびスケジュール更新**]: Systems Manager は、設定したスケジュールに従って CodeDeploy エージェントをインストールするステートマネージャーとの関連付けを作成します。ステートマネージャーおよび関連付けの詳細については、「[ステートマネージャーについて](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-state-about.html)」を参照してください。

1. [**デプロイ設定**] で、インスタンスをデプロイするレート (一度に 1 つずつ、一度にすべて、など) を制御するデプロイ設定を選択します。デプロイ設定の詳細については、[CodeDeploy でデプロイ設定を使用する](deployment-configurations.md) を参照してください。

1. (オプション) [**ロードバランサー**] で [**ロードバランシングを有効にする**] を選択し、一覧から、CodeDeploy デプロイ中のインスタンスへのトラフィックを管理する Classic Load Balancer、Application Load Balancer のターゲットグループ、Network Load Balancer のターゲットグループを選択します。最大 10 個の Classic Load Balancer と 10 個のターゲットグループとで、合計 20 個のアイテムを選択できます。デプロイする Amazon EC2 インスタンスが、選択したロードバランサー (Classic Load Balancer) またはターゲットグループ (Application Load Balancer および Network Load Balancer) に登録されていることを確認します。

   デプロイ中、元のインスタンスは選択したロードバランサーとターゲットグループから登録解除され、デプロイ中にトラフィックがこれらのインスタンスにルーティングされないようにします。デプロイが完了すると、各インスタンスは選択した*すべての* Classic Load Balancer とターゲットグループに再登録されます。

   CodeDeploy デプロイ用のロードバランサーの詳細については、「[CodeDeploy と Elastic Load Balancing の統合](integrations-aws-elastic-load-balancing.md)」を参照してください。
**警告**  
このデプロイグループで Auto Scaling グループと Elastic Load Balancing ロードバランサーの両方を設定し、[Auto Scaling グループにロードバランサーをアタッチする場合は](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)、このデプロイグループから CodeDeploy *デプロイを作成する前にこのアタッチメントを完了することをお勧めします*。デプロイを作成した後にアタッチメントを完了しようとすると、すべてのインスタンスがロードバランサーから予期せず登録解除される可能性があります。

1. (オプション) **[アドバンスト]** を展開し、デプロイに含めるオプション (Amazon SNS 通知トリガー、Amazon CloudWatch アラーム、Auto Scaling オプション、自動ロールバックなど) を設定します。

   詳細については、「[デプロイグループの詳細オプションの設定](deployment-groups-configure-advanced-options.md)」を参照してください。

1. **デプロイグループの作成** を選択します。

# EC2/オンプレミス Blue/Green デプロイ用のデプロイグループを作成する (コンソール)
<a name="deployment-groups-create-blue-green"></a>

CodeDeploy コンソールを使用して、Blue/Green デプロイ用のデプロイグループを作成する方法。

**警告**  
次の場合は、これらの手順を実行しないでください。  
Blue/Green デプロイプロセス中に置き換えたい CodeDeploy エージェントがインストールされたインスタンスはありません。インスタンスをセットアップするには、[CodeDeploy のためにインスタンスを用いた操作](instances.md) の指示に従い、その後にこのトピックの手順に従います。
カスタムデプロイ設定を使用するアプリケーションを作成する必要があり、まだデプロイ設定を作成していません。[CodeDeploy を使用してデプロイ設定を作成する](deployment-configurations-create.md) の指示に従った後に、このトピックの手順に従います。
少なくとも、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」に記載されている信頼とアクセス権限を持つ、CodeDeploy を信頼するサービスロールがない。サービスロールを作成して設定するには、[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md) の指示に従い、その後にこのトピックの手順に従います。
置き換え先環境でインスタンスを登録するために、Elastic Load Balancing で Classic Load Balancer または Application Load Balancer を作成していません。詳細については、「[CodeDeploy Amazon EC2 デプロイ用の Elastic Load Balancing でロードバランサーをセットアップする](deployment-groups-create-load-balancer.md)」を参照してください。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で CodeDeploy コンソールを開きます。
**注記**  
「[CodeDeploy の開始方法](getting-started-codedeploy.md)」で設定したのと同じユーザーでサインインします。

1. ナビゲーションペインで [**デプロイ**] を展開し、[**アプリケーション**] を選択します。

1. [**Applications**] ページで、デプロイグループを作成するアプリケーションの名前を選択します。

1. アプリケーションのページで、[**デプロイグループ**] タブの [**デプロイグループの作成**] を選択します。

1. [**デプロイグループ名**] に、デプロイグループを表す名前を入力します。
**注記**  
他のデプロイグループで使用されているのと同じ設定 (デプロイグループ名、タグ、Amazon EC2 Auto Scaling グループ名、デプロイ設定など) を使用する場合は、このページでこれらの設定を選択します。この新しいデプロイグループと既存のデプロイグループは名前が同じでも、これらは別のアプリケーションに関連付けられるため、CodeDeploy では別のデプロイグループとして扱われます。

1. [**サービスロール**] で、ターゲットインスタンスへのアクセス権を CodeDeploy に付与するサービスロールを選択します。

1. [**デプロイタイプ**] で [**Blue/Green**] を選択します。

1. **[環境設定]** で、次の操作を行います。
   + 置き換え先環境にインスタンスを提供するために使用する方法を選択します。次のオプションがあります。
     + **Amazon EC2 Auto Scaling グループを自動的にコピーする**: CodeDeploy は、ユーザーが指定したグループをコピーして Amazon EC2 Auto Scaling グループを作成します。
     + [**Manually provision instances**]: デプロイを作成するまで置き換え先環境のインスタンスを特定しません。デプロイを開始する前に、インスタンスを作成する必要があります。代わりに、ここで置換するインスタンスを指定します。
   + **[Amazon EC2 Auto Scaling グループを自動的にコピー]** を選択した場合、オプションで **[Auto Scaling グループに終了フックを追加]** を選択すると、デプロイグループを作成または更新するときに CodeDeploy が Auto Scaling グループに終了フックをインストールします。このフックをインストールすると、CodeDeploy は終了デプロイを実行します。詳細については、「[Auto Scaling スケールインイベント中の終了デプロイの有効化](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-behaviors-hook-enable)」を参照してください。

1. [**Systems Manager を使用したエージェント設定**] で、デプロイグループのインスタンスに CodeDeploy エージェントをインストールおよび更新する方法を指定します。CodeDeploy エージェントの詳細については、「[CodeDeploy エージェントの使用](https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/codedeploy-agent.html)」を参照してください。Systems Manager の詳細については、「[Systems Manager とは](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)」を参照してください。

   1. **Never**: Systems Manager を使用する CodeDeploy インストールの設定をスキップします。デプロイで使用するには、インスタンスにエージェントがインストールされている必要があります。したがって、CodeDeploy エージェントを別の方法でインストールする場合のみ、このオプションを選択します。

   1. [**1 回のみ**]: Systems Manager は、デプロイグループ内のすべてのインスタンスに CodeDeploy エージェントを 1 回インストールします。

   1. [**現在およびスケジュール更新**]: Systems Manager は、設定したスケジュールに従って CodeDeploy エージェントをインストールするステートマネージャーとの関連付けを作成します。ステートマネージャーおよび関連付けの詳細については、「[ステートマネージャーについて](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-state-about.html)」を参照してください。

1. ステップ 8 での選択内容に応じて、次のいずれかを実行します:
   + [**Amazon EC2 Auto Scaling グループを自動コピーする**] を選択している場合: [**Amazon EC2 Auto Scaling グループ**] で、置き換え先環境のインスタンス用に作成される Amazon EC2 Auto Scaling グループのテンプレートとして使用したい Amazon EC2 Auto Scaling グループの名前を選択または入力します。選択した Amazon EC2 Auto Scaling グループ内の現在正常なインスタンスの数が、置き換え先環境で作成されます。
   + [**インスタンスを手動でプロビジョニングする**] を選択している場合: [**Amazon EC2 Auto Scaling グループ**] と [**Amazon EC2 Auto Scaling インスタンス**] のいずれかまたは両方を選択して、このデプロイグループに追加するインスタンスを指定します。元の環境のインスタンス (つまり、置換対象のインスタンスまたは現在のアプリケーションリビジョンを実行しているインスタンス) を識別するための Amazon EC2 Auto Scaling タグ値または Amazon EC2 Auto Scaling グループ名を入力します。

1. [**ロードバランサー**] で [**ロードバランシングを有効にする**] を選択し、一覧から、代わりの Amazon EC2 インスタンスを登録する Classic Load Balancer、Application Load Balancer のターゲットグループ、Network Load Balancer のターゲットグループを選択します。各代替インスタンスは、選択した*すべての* Classic Load Balancer とターゲットグループに登録されます。最大 10 個の Classic Load Balancer と 10 個のターゲットグループとで、合計 20 個のアイテムを選択できます。

   トラフィックは、選択した [**トラフィック再ルーティング**] と [**デプロイ設定**] に従って、元のインスタンスから代替インスタンスに再ルーティングされます。

   CodeDeploy デプロイ用のロードバランサーの詳細については、「[CodeDeploy と Elastic Load Balancing の統合](integrations-aws-elastic-load-balancing.md)」を参照してください。
**警告**  
このデプロイグループで Auto Scaling グループと Elastic Load Balancing ロードバランサーの両方を設定していて、[ロードバランサーを Auto Scaling グループにアタッチする場合は](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)、このデプロイグループから CodeDeploy デプロイを作成する*前に*このアタッチメントを完了することをお勧めします。デプロイを作成した後にアタッチメントを完了しようとすると、すべてのインスタンスがロードバランサーから予期せず登録解除される可能性があります。

1. [**Deployment settings**] で、置き換え先環境へトラフィックを再ルーティングするためのデフォルトのオプション、デプロイに使用するデプロイ設定、デプロイ後に元の環境のインスタンスを処理する方法を確認します。

   設定を変更する場合は、次のステップに進みます。それ以外の場合は、ステップ 14 に進みます。

1. Blue/Green デプロイのデプロイ設定を変更するには、以下のいずれかの設定を選択します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/deployment-groups-create-blue-green.html)

1. (オプション) **[アドバンスト]** で、デプロイに含めるオプション (Amazon SNS 通知トリガー、Amazon CloudWatch アラーム、Auto Scaling オプション、自動ロールバックなど) を設定します。

   デプロイグループの詳細なオプションを指定する方法の詳細については、「[デプロイグループの詳細オプションの設定](deployment-groups-configure-advanced-options.md)」を参照してください。

1. **デプロイグループの作成** を選択します。

# Amazon ECS デプロイ用のデプロイグループを作成する (コンソール)
<a name="deployment-groups-create-ecs"></a>

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で CodeDeploy コンソールを開きます。
**注記**  
「[CodeDeploy の開始方法](getting-started-codedeploy.md)」で設定したのと同じユーザーでサインインします。

1. ナビゲーションペインで [**デプロイ**] を展開し、[**アプリケーション**] を選択します。

1.  [**Applications table (アプリケーションテーブル)**] から、編集するデプロイグループに関連付けられているアプリケーションの名前を選択します。

1.  アプリケーションのページの [**デプロイグループ**] で、編集するデプロイグループの名前を選択します。

1. アプリケーションのページで、[**デプロイグループ**] タブの [**デプロイグループの作成**] を選択します。Amazon ECS デプロイのデプロイグループを作成するために必要なものの詳細については、「[Amazon ECS デプロイを開始する前に](deployment-steps-ecs.md#deployment-steps-prerequisites-ecs)」を参照してください。

1. [**デプロイグループ名**] に、デプロイグループを表す名前を入力します。
**注記**  
他のデプロイグループで使用されているのと同じ設定 (デプロイグループ名、タグ、 グループ名、デプロイ設定など) を使用する場合は、このページでこれらの設定を選択します。この新しいグループと既存のグループは名前が同じでも、それぞれが別のアプリケーションに関連付けられるため、CodeDeploy では別のデプロイグループとして扱われます。

1. **サービスロール** で、CodeDeploy に Amazon ECS へのアクセスを許可するサービスロールを選択します。詳細については、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」を参照してください。

1.  **ロードバランサーの名前** から、Amazon ECS サービスにトラフィックを提供するロードバランサーの名前を選択します。

1.  [**本稼働リスナーポート**] から、Amazon ECS サービスへの本稼働トラフィックを提供するリスナーのポートとプロトコルを選択します。

1.  (オプション) **テストリスナーポート** から、デプロイ時に Amazon ECS サービス内の置き換えタスクセットにトラフィックを処理するテストリスナーのポートとプロトコルを選択します。`AfterAllowTestTraffic` フック中に実行する Lambda 関数を、AppSpec ファイル内に一つ以上指定できます。この関数は、検証テストを実行できます。検証テストが失敗すると、デプロイのロールバックが発生します。検証テストに成功すると、デプロイのライフサイクルの次のフック `BeforeAllowTraffic` がトリガーされます。テストリスナーポートが指定されていない場合、`AfterAllowTestTraffic` フック中は何も起こりません。詳細については、「[Amazon ECS のデプロイ向けの AppSpec の「hooks」セクション](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs)」を参照してください。

1. [**Target group 1 name**] および [**Target group 2 name**] から、デプロイ時にトラフィックをルーティングするターゲットグループを選択します。CodeDeploy は、1 つのターゲットグループを Amazon ECS サービスの元のタスクセットにバインドし、もう一方をその置き換えタスクセットにバインドします。詳細については、「[Application Load Balancer のターゲットグループ](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html)」を参照してください。

1.  [**トラフィックをすぐに再ルーティングする**] または [**トラフィックを再ルーティングするタイミングを指定する**] を選択し、更新された Amazon ECS サービスにトラフィックを再ルーティングするタイミングを決定します。

    [**トラフィックをすぐに再ルーティングする**] を選択すると、置き換えタスクセットがプロビジョニングされた後、デプロイによってトラフィックが自動的に再ルーティングされます。

    [**トラフィックを再ルーティングするタイミングを指定する**] を選択すると、置き換えタスクセットが正常にプロビジョニングされてから待機する日数、時間、分を選択します。この待機時間の間に、AppSpec ファイルで指定された Lambda 関数の検証テストが実行されます。トラフィックが再ルーティングされる前に待機時間が終了した場合、デプロイステータスは `Stopped` に変更されます。

1.  **元のリビジョンの終了** では、デプロイが成功してからAmazon ECS サービスの元のタスクセットが終了するまで待機する日数、時間、分数を選択します。

1. (オプション) **アドバンスト** で、Amazon SNS 通知トリガー、Amazon CloudWatch アラーム、自動ロールバックなど、デプロイに含めたいオプションを設定します。

   詳細については、「[デプロイグループの詳細オプションの設定](deployment-groups-configure-advanced-options.md)」を参照してください。

# CodeDeploy Amazon EC2 デプロイ用の Elastic Load Balancing でロードバランサーをセットアップする
<a name="deployment-groups-create-load-balancer"></a>

ブルー/グリーンデプロイまたはデプロイグループでオプションのロードバランサーを指定するインプレースデプロイを実行する前に、事前に Elastic Load Balancing で少なくとも 1 つの Classic Load Balancer、Application Load Balancer、Network Load Balancer を作成しておく必要があります。Blue/Green デプロイの場合は、そのロードバランサーを使用して置き換え先環境を構成するインスタンスを登録します。元の環境のインスタンスは、この同じロードバランサーにオプションで登録できます。インプレースデプロイでは、ロードバランサーを使用して CodeDeploy で処理中のインスタンスを登録解除し、作業が完了したら再登録します。

CodeDeploy は、複数のロードバランサーの背後にある Amazon EC2 インスタンスへのブルー/グリーンデプロイとインプレースデプロイをサポートします。例えば、200 個の Amazon EC2 インスタンスがあり、そのうちの 100 個が 2 つの Classic Load Balancer に登録され、さらに 100 個が 2 つの Application Load Balancer の 4 つのターゲットグループに登録されているとします。このシナリオでは、CodeDeploy を使用すると、2 つの Classic Load Balancer、2 つの Application Load Balancer、および 4 つのターゲットグループに分散している場合でも、200 個のインスタンスすべてにブルー/グリーンデプロイとインプレースデプロイを行うことができます。

CodeDeploy は、最大 10 個の Classic Load Balancer と 10 個のターゲットグループ、合計 20 個のアイテムをサポートします。

1 つ以上の Classic Load Balancer を設定するには、Classic Load Balancer のユーザーガイド**にある「[チュートリアル: Classic Load Balancer の作成](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-getting-started.html)」の手順に従ってください。次の点に注意してください。
+ **ステップ 2: ロードバランサーの定義**、[**Create LB Inside**] で、インスタンスを作成したときに選択したのと同じ VPC を選択します。
+ **ステップ 5: ロードバランサーへの EC2 インスタンスの登録**で、現在デプロイグループにあるインスタンス (インプレースデプロイ)、または元の環境に存在するように指定したインスタンス (Blue/Green デプロイ) を選択します。
+ **ステップ 7: Load Balancer の作成と検証**で、ロードバランサーの DNS アドレスをメモします。

  例えば、ロードバランサーの名前を `my-load-balancer` とした場合、DNS アドレスは `my-load-balancer-1234567890.us-east-2.elb.amazonaws.com` のような形式で表示されます。

1 つ以上の Application Load Balancer を設定するには、以下のトピックのいずれかの指示に従ってください。
+ [Application Load Balancer の作成](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)
+ [チュートリアル: を使用して Application Load Balancer を作成する AWS CLI](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/tutorial-application-load-balancer-cli.html)

1 つ以上の Network Load Balancer を設定するには、以下のトピックのいずれかの指示に従ってください。
+  [Network Load Balancer を作成する](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) 
+  [チュートリアル: を使用して Network Load Balancer を作成する AWS CLI](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancer-cli.html) 

# CodeDeploy Amazon ECS デプロイ用のロードバランサー、ターゲットグループ、リスナーをセットアップする
<a name="deployment-groups-create-load-balancer-for-ecs"></a>

 Amazon ECS コンピューティングプラットフォームを使用してデプロイを実行する前に、 Application Load Balancer または Network Load Balancer、2 つのターゲットグループ、および 1 つ または 2 つのリスナーを作成する必要があります。このトピックでは、Application Load Balancer を作成する方法を説明します。詳細については、「[Amazon ECS デプロイを開始する前に](deployment-steps-ecs.md#deployment-steps-prerequisites-ecs)」を参照してください。

 ターゲットグループの 1 つが、Amazon ECS アプリケーションの元のタスクセットにトラフィックを誘導します。もう 1 つのターゲットグループは、置き換えタスクセットにトラフィックを送信します。デプロイ中、CodeDeploy は置き換えタスクセットを作成し、元のタスクセットから新しいタスクセットにトラフィックを再ルーティングします。CodeDeploy は、各タスクセットに使用されるターゲットグループを決定します。

 ロードバランサーは、リスナーを使用してターゲットグループにトラフィックをルーティングします。本稼働リスナーが 1 つ必要です。検証テストの実行中、置き換えタスクセットにトラフィックをルーティングする、オプションのテストリスナーを指定できます。

 ロードバランサーでは、2 つのパブリックサブネットを別々のアベイラビリティーゾーンに持つ VPC を使用する必要があります。以下のステップでは、デフォルト VPC を確認し、Amazon EC2 Application Load Balancer を作成し、ロードバランサーに 2 つのターゲットグループを作成する方法を示します。詳細については、「[Network Load Balancer のターゲットグループ](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html)」を参照してください。

## デフォルト VPC、パブリックサブネット、およびセキュリティグループの確認
<a name="deployment-groups-create-load-balancer-for-ecs-verify-vpc"></a>

 このトピックでは、Amazon ECS のデプロイ中に使用できる Amazon EC2 Application Load Balancer、2 つのターゲットグループ、および 2 つのポートを作成する方法を示します。ポートの 1 つはオプションであり、デプロイ中に検証テスト用のテストポートにトラフィックをルーティングする場合にのみ必要です。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) で Amazon VPC コンソールを開きます。

1. 使用するデフォルト VPC を確認します。ナビゲーションペインで、**[Your VPCs（お使いの VPC）]** を選択します。[**デフォルト VPC**] 列に [**はい**] と表示されているVPCに注意してください。これがデフォルトの VPC になります。これには、使用するデフォルトのサブネットが含まれます。

1. [**サブネット**] を選択します。[**デフォルトサブネット**] 列で [**はい**] と表示されている 2 つのサブネットのサブネット ID をメモしておきます。これらの ID は、ロードバランサーを作成するときに使用します。

1. 各サブネットを選択し、[**Description (説明)**] タブを選択します。使用するサブネットが、異なるアベイラビリティーゾーンにあることを確認します。

1. サブネットを選択後、[**Route Table**] タブを選択します。使用する各サブネットがパブリックサブネットであることを確認するには、インターネットゲートウェイへのリンクのある行がルートテーブルに含まれていることを確認します。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で Amazon EC2 コンソールを開きます。

1. ナビゲーションペインで、[**Security Groups**] を選択します。

1. 使用するセキュリティグループが使用可能であることを確認し、そのグループ ID （[**sg-abcd1234**] など）を書き留めます。これは、ロードバランサーを作成するときに使用します。

## Amazon EC2 Application Load Balancer、2 つのターゲットグループ 、およびリスナーを作成します (コンソール)
<a name="deployment-groups-create-load-balancer-for-ecs-console"></a>

Amazon EC2 コンソールを使用して Amazon EC2 Application Load Balancer を作成するには:

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で Amazon EC2 コンソールを開きます。

1. ナビゲーションペインで、**[ロードバランサー]** を選択します。

1. [**Create Load Balancer**] を選択します。

1. [**Application Load Balancer**] を選択し、[**Create**] を選択します。

1. [**Name**] に、ロードバランサーの名前を入力します。

1. [**Scheme**] で、[**インターネット向け**] を選択します。

1. [**IP address type**] で、[**ipv4**] を選択します。

1. （オプション）ロードバランサーの 2 番目のリスナーポートを設定します。このポートに提供されるテストトラフィックを使用して、デプロイの検証テストを実行できます。

   1. [**Load Balancer Protocol (ロードバランサーのプロトコル)**] で、[**Add listener (リスナーの追加)**] を選択します。

   1. 2 番目のリスナーの [**Load Balancer Protocol**] で、[**HTTP**] を選択します。

   1. [**Load Balancer Port (ロードバランサーポート)**] に [**8080**] を入力します。

1. **アベイラビリティーゾーン** の **VPC**で、デフォルトの VPC を選択し、使用する 2 つのデフォルトサブネットを選択します。

1. [**Next: Configure Security Settings**] を選択します。

1. [**Next: Configure Security Groups**] を選択します。

1. [**Select an existing security group (既存のセキュリティグループを選択する)**] を選択し、デフォルトのセキュリティグループを選択して、その ID を書き留めます。

1. [**Next: Configure Routing**] を選択します。

1. [**Target group (ターゲットグループ)**] で、[**New target group (新しいターゲットグループ)**] を選択し、最初のターゲットグループを設定します。

   1. [**Name**] に、ターゲットグループの名前 (例: **target-group-1**) を入力します。

   1. [**Target type**] で、[**IP**] を選択します。

   1. [**Protocol**] で、[**HTTP**] を選択します。[**Port**] に「**80**」と入力します。

   1. [**Next: Register Targets**] を選択します。

1. [**Next: Review**]、[**Create**] の順に選択します。

**ロードバランサーの 2 番目のターゲットグループを作成するには**

1. ロードバランサーがプロビジョニングされたら、Amazon EC2 コンソールを開きます。ナビゲーションペインで、[**ターゲットグループ**] を選択します。

1. [**ターゲットグループの作成**] を選択します。

1. [**Name**] に、ターゲットグループの名前 (例: **target-group-2**) を入力します。

1. [**Target type**] で、[**IP**] を選択します。

1. [**Protocol**] で、[**HTTP**] を選択します。[**Port**] に「**80**」と入力します。

1. [**VPC**] で、デフォルトの VPC を選択します。

1. **[作成]** を選択します。
**注記**  
Amazon ECS デプロイを実行するには、ロードバランサー用に 2 つのターゲットグループを作成する必要があります。Amazon ECS サービスを作成するときに、いずれかのターゲットグループの ARN を使用します。詳細については、*Amazon ECS ユーザーガイド* の「[ステップ 4: Amazon ECS サービスを作成する](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html#create-blue-green-taskdef)」を参照してください。

## Amazon EC2 Application Load Balancer、2 つのターゲットグループ、およびリスナーを作成します (CLI)
<a name="deployment-groups-create-load-balancer-for-ecs-cli"></a>

 AWS CLIを使用して Application Load Balancer を作成するには

1. [create-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-load-balancer.html) コマンドを使用して、Application Load Balancer を作成します。異なるアベイラビリティーゾーンにある 2 つのサブネット、およびセキュリティグループを指定します。

   ```
   aws elbv2 create-load-balancer --name bluegreen-alb \
   --subnets subnet-abcd1234 subnet-abcd5678 --security-groups sg-abcd1234 --region us-east-1
   ```

   出力には、次の形式でロードバランサーの Amazon リソースネーム (ARN) が含まれます。

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642
   ```

1. 最初のターゲットグループを作成するには、[create-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-target-group.html) コマンドを使用します。CodeDeploy は、このターゲットグループのトラフィックを、サービスの元のタスクセットまたは置き換えタスクセットにルーティングします。

   ```
   aws elbv2 create-target-group --name bluegreentarget1 --protocol HTTP --port 80 \
   --target-type ip --vpc-id vpc-abcd1234 --region us-east-1
   ```

   出力には、以下の形式で最初のターゲットグループの ARN が含まれます。

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4
   ```

1. 2 つ目のターゲットグループを作成するには、[create-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-target-group.html) コマンドを使用します。CodeDeploy は、最初のターゲットグループによって処理されないタスクセットにターゲットグループのトラフィックをルーティングします。たとえば、最初のターゲットグループが元のタスクセットにトラフィックをルーティングする場合、このターゲットグループは置き換えタスクセットにトラフィックをルーティングします。

   ```
   aws elbv2 create-target-group --name bluegreentarget2 --protocol HTTP --port 80 \
   --target-type ip --vpc-id vpc-abcd1234 --region us-east-1
   ```

   出力には、以下の形式で 2 番目のターゲットグループの ARN が含まれます。

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4
   ```

1. [create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) コマンドを使用して、本稼働トラフィックをポート 80 に転送するデフォルトルールを持つリスナーを作成します。

   ```
   aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \
   --protocol HTTP --port 80 \
   --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4 --region us-east-1
   ```

   出力には、以下の形式でリスナーの ARN が含まれます。

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4
   ```

1. （オプション）[create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) コマンドを使用して、テストトラフィックをポート 8080 に転送するデフォルトルールを持つ 2 番目のリスナーを作成します。このポートで提供されるテストトラフィックを使用して、デプロイの検証テストを実行できます。

   ```
   aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \
   --protocol HTTP --port 8080 \
   --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4 --region us-east-1
   ```

   出力には、以下の形式でリスナーの ARN が含まれます。

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4
   ```

# デプロイグループの作成 (CLI)
<a name="deployment-groups-create-cli"></a>

を使用してデプロイグループ AWS CLI を作成するには、[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) コマンドを呼び出し、以下を指定します。
+ アプリケーション名。アプリケーション名のリストを表示するには、[[list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html)] コマンドを呼び出します。
+ デプロイグループの名前。指定したアプリケーションに対して、この名前でデプロイグループが作成されます。デプロイグループは、1 つのアプリケーションにのみ関連付けることができます。
+ デプロイグループに含めるインスタンスを識別するタグ、タググループ、または Amazon EC2 Auto Scaling グループ名に関する情報。
+ CodeDeploy が他の AWS サービスとやり取りするときに AWS アカウントに代わって動作できるようにするサービスロールの Amazon リソースネーム (ARN) 識別子。サービスロール ARN を取得するには、「[サービスロール ARN の取得 (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli)」を参照してください。サービスロールの詳細については、*IAM ユーザーガイド* の「[ロールに関する用語と概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html#roles-about-termsandconcepts)」を参照してください。
+ デプロイグループに関連付けるデプロイのタイプ（インプレースまたは Blue/Green）についての情報。
+ (オプション) 既存のデプロイ設定の名前。デプロイ設定のリストを表示するには、[CodeDeploy によるデプロイ設定の詳細の表示](deployment-configurations-view-details.md) を参照してください。指定されない場合、CodeDeploy は、デフォルトのデプロイ設定を使用します。
+ (オプション) Amazon Simple Notification Service トピックに登録しているユーザーにデプロイとインスタンスのイベントに関する通知をプッシュするトリガーを作成するコマンド。詳細については、「[Amazon SNS イベント通知を使用したデプロイのモニタリング](monitoring-sns-event-notifications.md)」を参照してください。
+ (オプション) アラームで指定したメトリクスが定義済みのしきい値を下回る/上回るとアクティブ化される、既存の CloudWatch アラームをデプロイグループに追加するコマンド。
+ (オプション) デプロイが失敗した時、または CloudWatch アラームが作動した時に、既知の正常なリビジョンのデプロイにロールバックするコマンド。
+ (オプション) Auto Scaling スケールインイベント中にライフサイクルイベントフックを生成するためのデプロイ用のコマンド。詳細については、「[Amazon EC2 Auto Scaling と CodeDeploy の連携](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-behaviors)」を参照してください。
+ インプレースデプロイの場合:
  + (オプション) デプロイプロセスでインスタンスへのトラフィックを管理する、Elastic Load Balancing の Classic Load Balancer、Application Load Balancer、または Network Load Balancer の名前。
+ Blue/Green デプロイの場合。
  + Blue/Green デプロイプロセスの設定。
    + 置き換え先環境の新しいインスタンスをプロビジョニングする方法。
    + トラフィックを置き換え先環境にすぐに再ルーティングするか、またはトラフィックを手動で再ルーティングするために指定された期間待機するか。
    + 元の環境内のインスタンスを終了するかどうか。
  + 置き換え先環境で登録されたインスタンスに使用する Elastic Load Balancing の Classic Load Balancer、Application Load Balancer または Network Load Balancer の名前。
**警告**  
デプロイグループで Auto Scaling グループと Elastic Load Balancing ロードバランサーの両方を設定していて、[ロードバランサーを Auto Scaling グループにアタッチする場合は](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)、このデプロイグループから CodeDeploy デプロイを作成する*前に*このアタッチメントを完了することをお勧めします。デプロイを作成した後にアタッチメントを完了しようとすると、すべてのインスタンスがロードバランサーから予期せず登録解除される可能性があります。