Terraformのroot_block_deviceで躓いたのでメモ。
やりたいこと
Terraformを利用して、10Gのルートデバイスと20Gのブロックデバイスを持ったt2.microのインスタンスを起動する
やったこと
クレデンシャルを記載したtfファイルを作成する
リソース作成の処理を記載したtfファイルを作成する
処理で利用する変数ファイルをまとめて定義するtfファイルを作成する
terraform実行時に渡す変数をまとめたtfファイルを作成する
terraformする。
失敗談
ebs_root_device_nameの値をAMIのルートデバイス名と異なる値にしたところ、root_block_deviceのパラメータが追加のブロックデバイスとして判断されてしまった。
たとえば、Amazon Linuxに対してebs_root_device_nameを指定しないと、デフォルト値である/dev/sda1が利用されてしまい、ルートデバイスはAMIのデフォルト、そのほかにブロックデバイスが追加で2個EBSが作成されてしまう。
失敗の事例
ebs_root_device_nameを指定せずにterraformしたログは以下の通り。terraform plan ではルートデバイス1個、ブロックデバイス1個となっているが、terraform applyしてみると、block_device.# = 2になっている。