2
1

ECS作成後にサービスのネットワーク構成を変更したい!

Posted at

はじめに

ECS作成後にサービスのネットワーク構成を変更しようとしても、コンソール上から変更できないことに最近気がつきました。(2024/09/28現在)

調べていくうちに、AWS CLI であるコマンドを実行するとサービスのネットワーク構成を変更できることを知ったのでその方法を記事にします。


この記事はAWS CLI コマンドリファレンスを基に作成しています。

サービスのネットワーク構成を変更する方法

手順1. CloudShellを起動する

コンソールの画面右上の、赤枠の部分からCloudShellを起動できます。

手順2. コマンド実行

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

上記コマンドに以下の項目を入れて実行します

項目 デフォルト値 補足
ECS クラスター名 - -
ECS サービス名 - -
サブネットID 指定なし カンマ区切りで複数選択可
セキュリティグループID VPCのデフォルトのセキュリティグループ カンマ区切りで複数選択可
パブリックIPの自動割り当て 割り当てない DISABLED:割り当てない, ENABLE:割り当てる のどちらかを選択する。

以下注意事項

  • 指定したサブネットとセキュリティグループは全て同一VPC内のものでなければならない
  • サブネットは16個までしか指定できない
  • セキュリティグループは5個までしか指定できない

以下が実際に値を入れたコマンドです。

$ aws ecs update-service \
  --cluster dummy-cluster \
  --service dummy-service \
  --network-configuration "awsvpcConfiguration={subnets=[subnet-1, subnet-2],securityGroups=[security-group-1],assignPublicIp=ENABLE}"

注意点

先ほど紹介したコマンドを利用して、サービスのサブネットだけを変更したいという場合に以下のようなコマンドを流すと、サブネット以外にはデフォルト値が入ってしまいます。

$ aws ecs update-service \
  --cluster dummy-cluster \
  --service dummy-service \
  --network-configuration "awsvpcConfiguration={subnets=[subnet-1, subnet-2]}"

この場合だと以下のような構成になってしまいます。

  • サブネット:subnet-1, subnet-2
  • セキュリティグループ:VPCのデフォルトのセキュリティグループ
  • パブリックIPの自動割り当て:割り当てない

これを避けるためには各項目に適切な値を入れてコマンドを実行する必要があります。


以上を踏まえて注意しなければならないことは2つです。

  • 既存の設定を塗り替えてしまう点に注意してコマンドを実行する
  • 想定外の設定になっていないかを確認するために、コマンド実行後にサービスのネットワーク構成を再確認する
2
1
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
2
1