Terraformを使用した大規模インフラ
Last updated
Last updated
ソース:
この例は、大規模インフラストラクチャ向けのTerraform構成を整理するコード例で、以下の内容を使用しています。
2つのAWSアカウント
2つのリージョン
2つの独立した環境(プロダクションとステージング、共有は一切なし)。各環境は異なるAWSアカウント内にあり、2つのリージョン間でリソースを展開する
各環境は、から取得した既製のインフラモジュール(alb
)の異なるバージョンを使用
各環境は、ローカルディレクトリから取得される内部モジュールmodules/network
の同じバージョンを使用
インフラが論理的に分離されているプロジェクトに最適(AWSアカウントが分かれている場合)
AWSアカウント間で共有されるリソースを変更する必要がない場合に適している(一つの環境=一つのAWSアカウント=一つの状態ファイル)
環境間での変更のオーケストレーションが不要な場合に適している
環境ごとにインフラリソースが異なり、一般化できない場合に適している(例:ある環境またはリージョンに存在しないリソースがある場合)
プロジェクトが成長するにつれ、これらの環境を互いに最新の状態に保つことが難しくなります。繰り返し行われるタスクには、既製または内部のインフラモジュールの使用を検討してください。