2017-09-20 6 views
2

私は、AWS内で仮想データセンターを構築するのに利用するすべての必要なリソース用のテラフォームスタックを作成しました。 VPC、サブネット、セキュリティグループなどTerraform Stack

すべてが美しく動作します。私は、ネットワーク技術者との絶え間ない議論をしており、ネットワーキングなどのために完全に別個の状態を望んでいます。その結果、複数の状態ファイルを管理しなければならず、10〜15台のテラフォーム計画/ 。それだけではなく、複数のコマンドを実行する必要があるだけでなく、ec2インスタンスの作成時からモジュール出力変数を参照することもできないため、変数ファイル内に「マジック」変数が現れます。私はec2インスタンス、elsなどを作成するスクリプトを "データセンター"設定と同じディレクトリに置いて、1つの状態ファイル(Dynamoのロックでs3で暗号化されている)を管理し、gitリポジトリに1対1私たちのインフラとの関係。また、単一のテラフォーム計画/適用によって単一のコマンドでデータセンター全体が構築されるという追加の利点もあります。

質問本当に、データセンターリソース(vpc、サブネット、セキュリティグループ)を管理し、リソースを単一の状態ファイルで管理するのは良い考えですか?私が遭遇する可能性のある問題はありますか?この方法で誰かがAWS環境をterraformで管理していますか?あなたは魔法の変数を使用する必要はありませんので、他の状態ファイルからTerraform providerみましょうあなたのアクセス出力変数で開始する

よろしく、 デビッド

答えて

2

。残りはあなたのスタイルの問題です。データセンター全体のインフラストラクチャを頻繁に持ち上げていますか?もしそうなら、あなたは1つのプロジェクトでそれを行うことを検討するかもしれません。一方、いくつかのものを変更するだけであれば、他のプロジェクトからの出力に頼ってモジュラ化することができます。それらを別々に保つことは、プレーニングを速くし、非常に高価なterraform destroyの間違いを避けます。