🦁
TerraformでAWS BatchのJob QueueとCompute Environmentをいい感じに管理する
課題
TerraformでAWS BatchのJob QueueとCompute Environment(CE)を管理している。CEに変更を加えようとすると再作成となることがあるのだが、再作成となるCEとJob Queueが紐付いていると再作成できずapplyがエラーとなってしまう。
解決策
以下のテクニックを用いることでapply時のエラーを回避できる。
- create_before_destroy
- compute_environment_name_prefix
まず、CEのライフサイクルポリシーとして create_before_destroy = true
を設定する。これによりapply時にまず新しいCEを作成してJob Queueに紐付けた後、古いCEを削除という挙動にできる。次にCEのリソース名定義にcompute_environment_name_prefixを使う。create_before_destroy = true
を設定した場合、CEのリソース名定義に compute_environment_nameを使うと同じ名前のリソースが作られようとしてエラーとなる。compute_environment_name_prefixを使うことでユニークな名前を維持できる。
Discussion