ECS サービスのロードバランサー接続を確認

リクエストの分散が必要な ECS サービスにロードバランサーを接続します。

説明

外部からのリクエストを複数のタスクに分散する ECS サービスには、適切なトラフィックの入口が必要です。ロードバランサーを使わずタスクのアドレスを直接指定すると、タスクの置き換えや障害への対応が難しくなることがあります。

想定される影響

リクエストが特定のタスクに集中したり、終了したタスクに送られたりして、サービスの可用性が低下するおそれがあります。

対処方法

必要に応じてサービスの LoadBalancers に対象グループ、コンテナー名、ポートを指定し、リスナーとヘルスチェックを設定してください。リクエストを受け付けないワーカー用サービスでは、ロードバランサーが不要な場合もあります。

例

この抜粋では sample-app のポート 80 を対象グループに接続します。タスク定義のコンテナー名とポートに合わせてください。

変更前

yaml
Resources:
  ECSService:
    Type: AWS::ECS::Service
    Properties:
      Cluster: !Ref ECSCluster
      TaskDefinition: !Ref ECSTaskDefinition
      DesiredCount: 2

変更後

yaml
Resources:
  ECSService:
    Type: AWS::ECS::Service
    Properties:
      Cluster: !Ref ECSCluster
      TaskDefinition: !Ref ECSTaskDefinition
      DesiredCount: 2
      LoadBalancers:
        - TargetGroupArn: !Ref TargetGroup
          ContainerName: sample-app
          ContainerPort: 80

参考資料