

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

# 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
   ```