web-dev-qa-db-ja.com

Terraform-user_dataまたはプロビジョナーを使用してbootstrapリソースにする必要がありますか?

どちらでも使えるようですuser_dataテンプレートファイルまたは "remote-exec" provisionerを使用してブートストラップするインラインコマンドを使用します。では、どちらがより慣用的であると考えられていますか?

10
Chris

user_dataを使用する必要があります。 ser data フィールドはAWSにネイティブであるため慣用的ですが、remote-execプロビジョナーはTerraformに固有であり、AWSAPIを呼び出す多くの方法の1つにすぎません。

また、ユーザーデータはAWSコンソールで表示でき、多くの場合、AWSでAuto Scaling Groupsを使用する際の重要な部分であり、各EC2インスタンスが起動時に同じ設定コードを実行するようにします。 Terraformのremote-execプロビジョナーではそれを行うことはできません。

17
Josh Padnick

Joshには同意しますが、インスタンスに実行時の変更がない場合は、packerを使用してAMIを構築し、それを起動構成で使用できます。そうすれば、ユーザーデータが実行されるのを待つ必要はありません。

Packerは、Hashicorpファミリーのツールの一部です。

https://www.packer.io/docs/builders/Amazon-ebs.html

4
strongjz