LoginSignup
6
0

More than 3 years have passed since last update.

ECSのserviceに複数のTargetGroupを設定する

Posted at

tl;dr;

DocumentにはAWS Management Consoleからできると書いてあるが,どこを探しても導線がないのでaws-cliを使いましょう(知っている人はこっそりコメントを下さい)

やりたいこと

  • 複数のTargetGroupをECSのサービスに登録したい.
  • WebConsoleでできれば試してみたい.
  • 公式 には2019年7月からサポートと書いてあるため実現できそう.

ユースケース

  • 複数のTaskで運用しているサービスのロードバランサを各Taskごとに用意したい.
  • 複数のロードバランサを1つのサービスに登録したい.

Web Consoleを眺める

ECSのサービスを作成する画面で,LoadBalanacerの設定画面があります.
image.png

ここでALBやNLBを選択すると,どのTargetGroupを選択する項が表れます.
tg-image.png

同様の手順でTargetGroupを追加しようとしますができません.
どうやらWebConsoleでは,1つのTargetGroupのみしか設定できないようです.

awsのドキュメントを見てみる

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html には Web Consoleからできそうな感じで書いてありますが,できなさそうです.

このドキュメントを見るとcliの話が書いてあるので,試してみます.

aws-cliを用いる方法

先程のドキュメントのページをみるとどうやらこの形式で登録すれば良さそうです

"loadBalancers":[
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456",
      "containerName":"webserver",
      "containerPort":80
   },
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321",
      "containerName":"database",
      "containerPort":3306
   }
]

自分が登録したいtargetGroupArnを調べて以下のようなaws-cliを用いたコマンドを実行します.細かなパラメータはこちらをみて各人設定してください.

aws ecs create-service \
  --cluster my-cluster \
  --service-name my-service-name \
  --task-definition my-task \
  --load-balancers '[{"targetGroupArn": "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"webserver",  "containerPort": 80 },{ "targetGroupArn": "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName": "database", "containerPort":3306 }]' \
  --desired-count 1 \
  --launch-type EC2

これを実行すると,web consoleではできませんでしたが無事に複数のTargetGroupを登録できました!

image.png

まとめ

  • web consoleでは未実装だけど実はできることがあったりするので,ドキュメントを読みましょう.

注意

  • 既に作成されたECSのサービスにはTargetGroupは設定できません.
    • サービスを作るときにしかできない操作です.

参考

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0