AWS ECS に環境変数を追加したときのコンテナ更新手順
概要
AWS の ECS に環境変数を追加した際、Terraform で apply したあとに AWS コンソールから別途操作をする必要があるため、その手順を記載しています。
流れ
ECS に環境変数を追加するための手順の全体像は以下のとおりです。
1. Terraform のコードに環境変数を追記
追加したい環境変数(ここでは ENV_TO_ADDとする)に関する設定を追記する。以下の内容を更新する:
ecs.tfで管理されている「タスク定義リソース (aws_ecs_task_definition)」内の、「コンテナ定義 (container_definitions)」のsecretsに、ENV_TO_ADDを追記するssm.tf内のaws_ssm_parameter.backend_envsリソース内に、ENV_TO_ADDを追記するset-env-vals-to-ssm.sh内のenv_keys配列の中にENV_TO_ADDを追記する./config/.env内にENV_TO_ADDを記載する
2. terraform apply を実行
terraform apply し、変更を適用する
- toruca-infraにPRマージしたタイミングでapplyが走ります
- このタイミングで、パラメータストアで追加した環境変数を確認できます。(値はまだ入らない)
3. set-env-vals-to-ssm.sh を実行
環境変数を反映する:
bash
# WARN: シェルスクリプトの引数に、追加したい環境変数を渡すことを忘れないこと!!
$ dotenv -e ./config/.env -- ./scripts/set-env-vals-to-ssm.sh ENV_TO_ADD- 注意:
set-env-vals-to-ssm.shの内部でaws_profileにおいて AWS CLI のプロファイルを指定しており、適切な値を指定する必要があります - dotenvが実行できない場合のインストール一例
npm install -g dotenv-cli
4. 新しいデプロイを強制実行
AWS コンソールからECSの管理画面にアクセスし、サービスの「新しいデプロイの強制」を実行する