Last Modified:

インスタンス起動時にホスト名を設定するAWS

(AWSの中でもCloudFormationネタ)

インスタンス起動時にホスト名を設定したい。 巷では「起動後にゴニョゴニョ手作業で設定してAMIを作っておく」みたいなのを良く見かけるけど、 なるべくAMI管理はしたくないので真っさらなAmazon LinuxのAMIから作りたい。

解決

cloud-initを使えば起動時に設定できる。

  Bastion:
    Type: AWS::EC2::Instance
    Properties:
      UserData: !Base64 |
        #cloud-config
        preserve_hostname: false
        hostname: bastion.internal
        # manage_etc_hosts: true

知見

余談

JSONじゃなくてYAMLで書くべき。 関数の省略記法が使えるし、何よりコメントが自由に書ける。 何でみんなJSONで書くの?