8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

【AWS】ECS on Fargateにおけるセキュリティグループの更新方法

Posted at

最近、ECS on Fargateのセキュリティグループを更新に思いの外手こずりました。今回は私が調査した更新手順について共有したいと思います。

ECSにおけるセキュリティグループの設定方法

ECSでは、セキュリティグループをタスク定義レベルではなく、ネットワークインターフェース(ENI)またはECSサービスレベルで設定する必要があります。ECS on EC2ではEC2インスタンスやAuto Scalingグループの設定でセキュリティグループを指定しますが、ECS on Fargateでは、ECSサービスのnetworkConfigurationパラメータで指定します。

ECSサービスのネットワーク設定のアップデート

ECSサービスのネットワーク設定を更新するには、AWS CLIを使用します。具体的には、以下のコマンドを実行することで新しいセキュリティグループIDを指定します。

$ aws ecs update-service --cluster your-cluster-name --service your-service-name --network-configuration "awsvpcConfiguration={subnets=[subnet-1,subnet-2],securityGroups=[sg-1,sg-2],assignPublicIp=ENABLED}"

このコマンドでは、ECSクラスタ名、サービス名、サブネットID、セキュリティグループIDをそれぞれ適切に置き換える必要があります。また、assignPublicIp の値を ENABLED または DISABLED に設定することで、公開IPアドレスの割り当てを制御できます。

ECSサービスのタスク更新

次に、タスクまたはサービスを更新し、新しいセキュリティグループ設定で新しいタスクを起動します。これは、タスクが起動する際にネットワーク設定が決定され、タスクが終了するまでその設定は変更できないためです。

サービスの設定を更新すると、新しいタスクが起動し、既存のタスクが停止します。その際、以下のコマンドを使用します。

$ aws ecs update-service --cluster your-cluster-name --service your-service-name --force-new-deployment

このコマンドを実行すると、サービスは新しいタスクを起動し、既存のタスクを停止します。このとき、新しいタスクが起動される際に、先ほど更新したネットワーク設定が適用されます。

ダウンタイムを発生させずに新しいタスクを更新するためには、minimumHealthyPercentを100%に設定します。これにより、ECSは新しいタスクが正常に起動し、ヘルスチェックを通過するまで既存のタスクを停止しません。

※ 既存セキュリティグループの確認方法

最後に、既存のセキュリティグループを確認する方法について説明します。AWS CLIを使用してECSサービスの詳細を取得することで、既存のネットワーク設定を確認できます。以下のコマンドを使用します。

$ aws ecs describe-services --cluster your-cluster-name --services your-service-name

ここでも、ECSクラスタ名とサービス名をそれぞれ適切に置き換える必要があります。

8
4
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
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?