どちらでも使えるようですuser_data
テンプレートファイルまたは "remote-exec" provisioner
を使用してブートストラップするインラインコマンドを使用します。では、どちらがより慣用的であると考えられていますか?
user_data
を使用する必要があります。 ser data フィールドはAWSにネイティブであるため慣用的ですが、remote-execプロビジョナーはTerraformに固有であり、AWSAPIを呼び出す多くの方法の1つにすぎません。
また、ユーザーデータはAWSコンソールで表示でき、多くの場合、AWSでAuto Scaling Groupsを使用する際の重要な部分であり、各EC2インスタンスが起動時に同じ設定コードを実行するようにします。 Terraformのremote-execプロビジョナーではそれを行うことはできません。
Joshには同意しますが、インスタンスに実行時の変更がない場合は、packerを使用してAMIを構築し、それを起動構成で使用できます。そうすれば、ユーザーデータが実行されるのを待つ必要はありません。
Packerは、Hashicorpファミリーのツールの一部です。