2017-05-16 8 views
0

awesのさまざまなコンポーネントに対して異なるインスタンスを作成したいのですが、コンポーネントの特定のインスタンスを破棄したい場合、異なるコンポーネントのすべてのインスタンスを同時に破棄することになります。すべて共通のtfstateファイルを1つのフォルダに共有しています。別のフォルダに別のコンポーネントインスタンスを作成して別々のtfstateファイルを実行する必要があります。別のコンポーネント用に別々のフォルダを作成し、そこにterraformを実行する必要がありますか?terraform tf複数のインスタンスの状態ファイル

他にもこれ以外の作業はありますか?

は私が推測させ、問題の存在はあまりないので、詳細について、あなたは

+0

具体的な内容を教えてください。 'components'と' instances'ではどういう意味ですか?どのようなAWSリソースを作成しますか? –

答えて

0

[OK]をありがとうございました。

terraform destroyを実行すると、一部のインスタンスが破損することが予想されます。

しかし、すべてのリソースを破壊することは望ましくありません。

異なる状態を持つ異なるフォルダにリソースを分けることが考えられました。

しかし、これは不要ですです。特定の 'インスタンス'/'リソース'を破壊したい場合は、設定(.tfファイル)から削除し、terraform applyを実行してください。これはいくつかの 'インスタンス'を破壊しますが、他のものはすべて保持します。

resource "aws_instance" "api" { 
    ami   = "${data.aws_ami.ubuntu.id}" 
    instance_type = "t2.micro" 
} 

resource "aws_instance" "web" { 
    ami   = "${data.aws_ami.ubuntu.id}" 
    instance_type = "t2.micro" 
} 

resource "aws_instance" "app" { 
    ami   = "${data.aws_ami.ubuntu.id}" 
    instance_type = "t2.micro" 
} 

3の場合:ウェブ、アプリ、API

は、あなたが以下の設定があるとしましょう。あなたはwebを破壊したい。

すべての状態を破壊するterraform destroyを実行する代わりに、必要なものをそのまま残して、terraform planを実行してください。

P.S.異なるフォルダの状態を分けることも意味があります。たとえば、さまざまな環境を異なる状態ファイルに分けることを非常に推奨します。さらに、VPCやS3バケットの設定を別の状態にするなど、より一般的なものを動かすことができます。これは、EC2インスタンスの変更を頻繁に変更するときに変更することはほとんどありません。

0

あなたの.tfファイルにはもう不要な部分をコメントアウトして、再度plan/applyを実行してください。あなたがコメントアウトしたビットだけが破壊されます。

関連する問題