スキップしてコンテンツを表示

EC2 Linux インスタンスに静的ホスト名を割り当てる方法を教えてください。

所要時間2分
0

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのホスト名を変更しましたが、そのインスタンスをリブートしたり、停止後に再起動したりすると、ホスト名が元のホスト名に戻ってしまいます。

解決策

重要: インスタンスを更新する前に、インスタンスの Amazon Elastic ブロックストア (Amazon EBS) を基盤とする Amazon マシンイメージ (AMI) を作成します。

既存のインスタンスのホスト名を確認する

次の手順を実行します。

  1. SSH を使用して Linux インスタンスに接続します。

  2. root ユーザーに切り替えるには、次のコマンドを実行します。

    sudo su -
  3. インスタンスのホスト名を確認するには、次のコマンドを実行します。

    hostnamectl

静的ホスト名を設定する

実行するオペレーティングシステム (OS) に静的ホスト名を設定します。

AL2 または AL2023

Amazon Linux 2 (AL2) または Amazon Linux 2023 (AL2023) では、次の手順を実行します。

  1. /etc/cloud/cloud.cfg を開くには、次のコマンドを実行します。

    vim /etc/cloud/cloud.cfg
  2. preserve_hostname 属性をレビューします。値が false の場合は、true に更新します。
    例:

    preserve_hostname: true

    注: ファイルに preserve_hostname 属性がない場合はその属性をファイルに追加し、値を true に設定します。

  3. 静的ホスト名を設定するには、次のコマンドを実行します。

    hostnamectl set-hostname persistent-hostname

    注: persistent-hostname を実際のホスト名に置き換えます。

Ubuntu

Ubuntu では、次の手順を実行してください。

  1. 静的ホスト名を設定するには、次の手順を実行します。

    hostnamectl set-hostname --static persistent-hostname

    注: persistent-hostname を実際のホスト名に置き換えます。

  2. /etc/hosts を開くには、次のコマンドを実行します。

    vim /etc/hosts
  3. ファイルに次の行を入力します。

    localhost persistent-hostname

    注: persistent-hostname を実際のホスト名に置き換えます。

  4. EC2 インスタンスが IPv6 を使用している場合は、さらに次の設定データを入力します。

    ::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
  5. /etc/cloud/cloud.cfg を開くには、次のコマンドを実行します。

    vim /etc/cloud/cloud.cfg
  6. preserve_hostname 属性をレビューします。値が false の場合は、true に更新します。
    例:

    preserve_hostname: true

RHEL または CentOS 7、8、9

Red Hat Enterprise Linux (RHEL) または CentOS 7、8、9 では、次の手順を実行します。

  1. 静的ホスト名を設定するには、次のコマンドを実行します。

    hostnamectl set-hostname --static persistent-hostname

    注: persistent-hostname を実際のホスト名に置き換えます。

  2. RHEL 7.3 以前では、次のコマンドを実行して /etc/cloud/cloud.cfg を開きます。

    vi /etc/cloud/cloud.cfg
  3. preserve_hostname 属性をレビューします。値が false の場合は、true に更新します。
    例:

    preserve_hostname: true

SUSE Linux

SUSE Linux Enterprise Server (SLES) では、次の手順を実行します。

  1. ホスト名を設定するには、SLES のバージョンに応じて次のコマンドを実行します。
    SLES 11

    hostname persistent-hostname

    SLES 12、15:

    hostnamectl set-hostname persistent-hostname

    注: persistent-hostname を実際のホスト名に置き換えます。

  2. 次のコマンドを実行し、/etc/HOSTNAME ファイルを実際のホスト名で更新します。

    echo "persistent-hostname" > /etc/HOSTNAME

    注: HOSTNAME を実際のホスト名に置き換えます。

  3. /etc/hosts を開くには、次のコマンドを実行します。

    vim /etc/hosts
  4. 使用している SLES のバージョンに応じて、ファイルに次の行を入力し、実際のホスト名に置き換えます。
    SLES 11

    127.0.0.1 localhost persistent-hostname

    SLES 12、15:

    127.0.0.1 localhost persistent-hostname

    注: persistent-hostname を実際のホスト名に置き換えます。

  5. /etc/cloud/cloud.cfg ファイルを開くには、次のコマンドを実行します。

    vim /etc/cloud/cloud.cfg
  6. ファイルに次の行を入力します。

    preserve_hostname: true

変更を実装する

次の手順を実行します。

  1. インスタンスを再起動するには、次のコマンドを実行します。

    reboot
  2. 新しいホスト名を検証するには、次のコマンドを実行します。

    hostnamectl

問題のトラブルシューティング

再起動後にホスト名が予期せず変更された場合は、次の手順を実行してください。

  • /var/log/cloud-init.log/var/log/syslog でシステムログを参照し、ホストネームの変更に関連するエントリがないか確認します。
  • インストールするシステム更新により、/etc/hosts、ホスト名ファイル、またはホスト名ユーティリティが影響を受ける場合は、上記の解決手順をもう一度実行してください。
  • /etc/cloud/cloud.cfg ファイルの preserve_hostname 設定が true であることを確認します。

関連情報

AL2 インスタンスのホスト名を変更する

AWS公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ