EC2インスタンス(Ubuntu Linux)のホスト名を再起動後も保持する方法

2020.05.12

困っていた内容

EC2 インスタンス(Ubuntu Linux)のホスト名が再起動後に初期化される。

背景

以下のコマンドで一時的にホスト名が変更できます。今回はホスト名を devserver と設定しました。

ubuntu@ip-**-**-**-**:~$ hostname devserver

一旦インスタンスからログアウトし、再度ログインするとホスト名は devserver 変更されています。

ubuntu@devserver:~$ hostname
devserver

しかし、再起動すると、、、

ubuntu@devserver:~$ sudo reboot

このように元のホスト名に戻ります。

ubuntu@ip-**-**-**-**:~$ hostname
ip-**-**-**-**

どう対応すればいいの?

今回は Ubuntu 18.04.4 LTS で試してみました。

インスタンスにログインした状態で、現在のホスト名を確認します。

ubuntu@ip-**-**-**-**:~$ hostname
ip-**-**-**-**

/etc/hosts ファイルを開きます。/etc/hosts は、ホスト名とIPアドレスを対応させるためのファイルです。

$ sudo vim /etc/hosts

/etc/hosts ファイルに保持したいホスト名を追加します。

修正前

127.0.0.1 localhost


# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

修正後

127.0.0.1 localhost devserver


# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

以下のコマンドで、ホスト名を設定します。

$ sudo hostnamectl set-hostname devserver

これで設定は完了です。 うまく設定されているか確かめるため、インスタンスを再起動します。

$ sudo reboot

これで再起動後もホスト名が保持されるようになりました。

ubuntu@devserver:~$ hostname
devserver

ホスト名が初期化されてしまったらこの方法を試してみてください。

参照情報

Ubuntu Linux を実行しているプライベート Amazon EC2 インスタンスに静的ホスト名を割り当てる方法を教えてください。