#ユーザーデータ
ユーザーデータのcloud-initディレクティブで、fqdnキーを利用します。
ホスト名を変えるだけなら、これだけです。
#cloud-config
fqdn: example.co.jp
※ホスト名を設定するキーにはhostnameキーも存在します。
しかし、hostnameキーは、fqdnキーが利用される場合は無視されます。
AWSデフォルトのホスト名はfqdnキーで定義されているため、上書きするためにはfqdnキーを利用する必要があります。
ユーザーデータを入力する方法1:GUI
[インスタンスの作成]>[手順3:インスタンスの詳細設定]の[ユーザーデータ]に張り付けて
インスタンスを作成するだけです。
ユーザーデータを入力する方法2:AWS CLI
--user-dataオプションで、生のテキストファイルを渡します。yamlとしてますが、拡張子は何でもOKです。
aws ec2 run-instances --region $Region \
--image-id $AmiId --count 1 \
--instance-type $InstanceType --key-name $KeyName \
--subnet-id $SubnetId --private-ip-address $PrivateIpAddress \
--associate-public-ip-address \
--security-group-ids $SecurityGroupIds \
--tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$NameTag}]" \
--credit-specification CpuCredits=standard \
--user-data file://userdata.yml
※変数の値は適宜設定してください。Powershellで実行する場合は、改行文字を「\」から「`」に変更してください。
補足:作成したAMIから起動すると、ホスト名が初期化される問題
既定の動作として、cloud-initでホスト名、ロケール、デフォルトユーザーが初期化されます。
シンプルにこれを防ぐのであれば、ユーザーデータでpreserve_hostnameキーをtrueに設定しておきます。
#cloud-config
fqdn: example.co.jp
runcmd:
- echo "preserve_hostname: true" >> /etc/cloud/cloud.cfg
※preserve_hostnameキーがtrueに設定されていると、hostnameキー・fqdnキーは機能しません。
以上です。