Fargateなwebアプリの環境のサンドボックスを作るためのスケルトン構成です
- ECS(Fargate)サービスおよびALBに必要なリソース一式を構築するためのterraformファイル
- コンテナデプロイのためのecspresso設定
- サンプル用のミニマルなDockerイメージ
が含まれます。ECSまわりでちょっと実験をしたいけど、既存環境を使うのはちょっと...というときに新規お砂場をサクッと作ります。
infraディレクトリでterraform applyする。
下記terraform variableが必要。環境変数で入れる※
TF_VAR_name
環境の名前。これをユニークにすると、同一AWSアカウント内に複数環境つくれるTF_VAR_use_alb
1にするとALB(とALBリスナー)が生成される。地味に費用が発生するので、デフォルトではOFF
※TF_VAR_nameはecspressoでも参照するため、環境変数で渡すようにしている
appディレクトリでdocker buildし、terraformで生成されたECRリポジトリにpushしておく
ecspressoディレクトリでecspresso deployしたりする
- terraform管理でないリソースを消す
- ECSサービス(
ecspresso delete
で消せる。これを消さないとECS Clusterが消せない) - ECRリポジトリに登録された全イメージ(手動で消す。これを消さないとリポジトリが消せない)
- ECSタスク定義(消さなくても問題はない)
- ECSサービス(
terraform destroy
でterraform配下のリソースを消す
次の週末にまた遊ぶ場合など、全ては消さずに料金だけ抑えたいとき
TF_VAR_use_alb
を指定せずにapplyする(ALBが消える)ecspresso scale --tasks=0
でコンテナを止める