この記事は terraform Advent Calendar 2019, エムスリー Advent Calendar 2019 の 3 日目の記事です。
こんにちは、ここ数年で terraform で書いた aws_vpc
+ google_compute_network
の数がようやっと 30 個ぐらいになろうかというエンジニア/CTOの矢崎 id:saiya です。
弊社でまとまった規模の AWS 環境を扱う際に、1 つの terraform プロジェクトで複数の AWS アカウントに対してまとめて plan & apply できるようにしていたのですが、その方法が意外と調べにくい様子でしたので、まとめてみました。
なお、やり方が分かってしまえば実施するのは結構簡単です。
これによって出来ること
- 1 回の terraform apply で複数の AWS アカウントを一度に操作できるようになります
- 1 つの terraform の中で複数の AWS アカウントのリソースを相互に参照できるので、アカウント間で相互依存する記述を非常に素直・シンプルに記述できます
- 例えば VPC Peering の これ と これ のペアを 1 ファイルにまとめて書いたりできます。Transit Gateway でも同様。
なお、今回紹介する手法ではアカウントが同一 AWS Organization に属する必要もありません *2。
続きを読む