ECS サービス作成後にネットワーク設定を変更する方法を教えてください

2024.05.31

困っていた内容

ローリングアップデートを設定した ECS サービスで、Fargate タスクを実行しています。
ECS サービスのネットワーク設定を変更したいのですが、マネジメントコンソールで変更方法が確認できません。
変更方法を教えてください。

どう対応すればいいの?

AWS CLI のupdate-serviceを実行してください。

コマンド例

$ aws ecs update-service \
  --cluster 【ECS クラスター名】 \
  --service 【ECS サービス名】 \
  --network-configuratio "awsvpcConfiguration={subnets=[【サブネット ID】],securityGroups=[【セキュリティグループ ID】],assignPublicIp=【DISABLED/ENABLED】}"

# 指定例
$ aws ecs update-service \
  --cluster hato-cluster \
  --service hato-service \
  --network-configuratio "awsvpcConfiguration={subnets=[subnet-0ffb4ae4952d4fce7,subnet-032692e9def4f1d0f],securityGroups=[sg-0b5272d16be99ee59],assignPublicIp=ENABLED}"

2024年5月時点で、AWS マネジメントコンソールからは ECS サービスのネットワーク設定は変更できません。
一方で、AWS CLI や API、SDK 等からは作成後にネットワーク設定を変更でき、AWS CLI の場合はupdate-serviceで変更可能です。

そのため、サブネットやセキュリティグループ、パブリック IP の自動割当等のネットワーク設定を変更したい場合は、マネジメントコンソールではなく AWS CLI 等からの変更をお試しください。

なお、AWS ではマネジメントコンソールから AWS CLI などのコマンドが実行できるブラウザーベースのシェル環境が用意されています。適宜ご利用ください。

参考資料

次のいずれかのパラメータを使用するサービスを更新するには、AWS Command Line Interface を使用する必要があります。

  • Blue/Green デプロイ
  • サービス検出 – サービス検出では、設定内容のみを表示できます。
  • カスタムメトリクスによるトラッキングポリシー
  • サービスを更新 – awsvpc のネットワーク設定とヘルスチェックの猶予期間は更新できません。