kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Terraform で Amazon ECS の fargateTaskRetirementWaitPeriod を設定する

2024年5月17日にリリースされた Terraform AWS Provider v5.50.0 で Amazon ECS の「Fargate タスクリタイア待機時間 (fargateTaskRetirementWaitPeriod)」を設定できるようになった.

github.com

デフォルトでは「7日間」に設定されていて,選択肢としては 0日7日14日 を設定できる.基本的にはすぐにアップデートを反映しておくと良さそうだけど,Fargate タスクの停止に制約・課題がある場合は長めに設定しておくと良さそう.ちなみにブログ記事には 稀に重大なセキュリティアップデートがある場合は待機時間無しでリタイアさせる と書いてある📝

docs.aws.amazon.com

aws.amazon.com

さっそく試す

Amazon ECS の aws_ecs_account_setting_default リソースを使って設定する.以下の例では「Fargate タスクリタイア待機時間」0日 に設定している👌

resource "aws_ecs_account_setting_default" "main" {
  name  = "fargateTaskRetirementWaitPeriod"
  value = "0"
}

aws ecs list-account-setting コマンド

現時点ではマネジメントコンソールで fargateTaskRetirementWaitPeriod の設定を確認することができず,AWS CLI の aws ecs list-account-setting コマンドを使う必要がある👀

awscli.amazonaws.com

Before(terraform apply 実行前)

$ aws ecs list-account-settings --name fargateTaskRetirementWaitPeriod --effective-settings
{
    "settings": [
        {
            "name": "fargateTaskRetirementWaitPeriod",
            "value": "7",
            "principalArn": "arn:aws:iam::000000000000:root",
            "type": "user"
        }
    ]
}

After(terraform apply 実行後)

$ aws ecs list-account-settings --name fargateTaskRetirementWaitPeriod --effective-settings
{
    "settings": [
        {
            "name": "fargateTaskRetirementWaitPeriod",
            "value": "0",
            "principalArn": "arn:aws:iam::000000000000:root",
            "type": "user"
        }
    ]
}