メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

Linux インスタンスのホスト名の変更

インスタンスを起動すると、プライベートの内部 IPv4 アドレスの形式のホスト名が割り当てられます。典型的な Amazon EC2 プライベート DNS 名は、ip-12-34-56-78.us-west-2.compute.internal のような形式になります。この名前は内部ドメイン、サービス (この例では、compute)、リージョン、そしてプライベート IPv4 アドレスで構成されます。インスタンスにログインしたとき、このホスト名の一部がシェルプロンプトで表示されます (ip-12-34-56-78 など)。Amazon EC2 インスタンスを停止し、再起動するたびに (Elastic IP アドレスを使用していない限り)、パブリック IPv4 アドレスが変わり、パブリック DNS 名、システムホスト名、シェルプロンプトも変わります。EC2-Classic で起動されたインスタンスも、停止して再起動すると、新しいプライベート IPv4 アドレス、プライベート DNS ホスト名、システムホスト名を受信します。VPC で起動されたインスタンスでは、これらは変更されません。

重要

これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューションの詳細については、各ドキュメントを参照してください。

システムホスト名の変更

インスタンスの IP アドレスにパブリック DNS 名を登録している場合 (webserver.mydomain.com など)、インスタンスがそのドメインに含まれているものとして識別されるように、システムホスト名を設定できます。また、システムホスト名を変更すると、シェルプロンプトも変更され、AWS が提供するホスト名の代わりに、新しいシステムホスト名の最初の部分 (ip-12-34-56-78 など) が表示されます。パブリック DNS 名を登録していない場合でもホスト名は変更できますが、プロセスが少し違います。

システムホスト名をパブリック DNS 名に変更するには

パブリック DNS 名を登録している場合、この手順を行います。

  1. インスタンスで、お好みのテキストエディターを使用して /etc/sysconfig/network 設定ファイルを開き、HOSTNAME エントリを変更して、完全修飾ドメイン名 (webserver.mydomain.com など) を反映させます。

    Copy
    HOSTNAME=webserver.mydomain.com

  2. インスタンスを再起動し、新しいホスト名を取得します。

    Copy
    [ec2-user ~]$ sudo reboot

    または、Amazon EC2 コンソールを使用して再起動できます ([Instances] ページで、[Actions]、[Instance State]、[Reboot] を選択します)。

  3. インスタンスにログインして、ホスト名が更新されていることを確認します。メッセージには、新しいホスト名が表示されるはずです (最初の「.」まで)。hostname コマンドで完全修飾ドメイン名が表示されます。

    Copy
    [ec2-user@webserver ~]$ hostname webserver.mydomain.com

パブリック DNS 名なしでシステムホスト名を変更するには

  1. お好みのテキストエディターで /etc/sysconfig/network 設定ファイルを開き、HOSTNAME エントリを変更して、希望するシステムホスト名を反映させます (webserver など)。

    Copy
    HOSTNAME=webserver.localdomain

  2. お好みのテキストエディタで /etc/hosts ファイルを開き、下の例と一致する 127.0.0.1 で始まるエントリを変更します。ホスト名は自分のホスト名に置換します。

    Copy
    127.0.0.1 webserver.localdomain webserver localhost4 localhost4.localdomain4

  3. インスタンスを再起動し、新しいホスト名を取得します。

    Copy
    [ec2-user ~]$ sudo reboot

    または、Amazon EC2 コンソールを使用して再起動できます ([Instances] ページで、[Actions]、[Instance State]、[Reboot] を選択します)。

  4. インスタンスにログインして、ホスト名が更新されていることを確認します。メッセージには、新しいホスト名が表示されるはずです (最初の「.」まで)。hostname コマンドで完全修飾ドメイン名が表示されます。

    Copy
    [ec2-user@webserver ~]$ hostname webserver.localdomain

ホスト名に影響を与えずにシェルプロンプトを変更する

インスタンスのホスト名を変更せずに、AWS が提供するプライベート名 (webserver など) よりも便利なシステム名 (ip-12-34-56-78 など) を表示させる場合、ホスト名の代わりにシステムニックネームを表示するようにシェルプロンプト設定ファイルを編集できます。

シェルプロンプトをホストニックネームに変更するには

  1. /etc/profile.d で、NICKNAME と呼ばれる環境変数を設定するファイルを作成して、シェルプロンプトに表示する値を設定します。たとえば、システムニックネームを webserver に設定するには、次のコマンドを実行します。

    Copy
    [ec2-user ~]$ sudo sh -c 'echo "export NICKNAME=webserver" > /etc/profile.d/prompt.sh'

  2. お好みのテキストエディタ (vimnano など) で /etc/bashrc ファイルを開きます。エディターコマンドで sudo を使用する必要があります。/etc/bashrcroot が所有するためです。

  3. ファイルを編集し、ホスト名の代わりにニックネームを表示するようにシェルプロンプト変数 (PS1) を変更します。/etc/bashrc でシェルプロンプトを設定する次の行を見つけます (以下には、コンテキストを示すため前後の行も表示されています。[ "$PS1" で始まる行を探してください)。

    Copy
    # Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " # You might want to have e.g. tty in prompt (e.g. more virtual machines) # and console windows
    その行の \h (hostname を表す記号) を NICKNAME 変数の値に変更します。
    Copy
    # Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@$NICKNAME \W]\\$ " # You might want to have e.g. tty in prompt (e.g. more virtual machines) # and console windows

  4. (オプション) シェルウィンドウのタイトルを新しいニックネームに設定するには、次の手順を完了します。

    1. /etc/sysconfig/bash-prompt-xterm という名前のファイルを作成します。

      Copy
      [ec2-user ~]$ sudo touch /etc/sysconfig/bash-prompt-xterm

    2. 次のコマンドを使用して、ファイルを実行可能にします。

      Copy
      [ec2-user ~]$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm

    3. お好みのテキストエディタ (vimnano など) で /etc/sysconfig/bash-prompt-xterm ファイルを開きます。エディターコマンドで sudo を使用する必要があります。/etc/sysconfig/bash-prompt-xtermroot が所有するためです。

    4. 次の行をファイルに追加します。

      Copy
      echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"

  5. ログアウトしてから再度ログインし、新しいニックネーム値を取得します。

他の Linux ディストリビューションのホスト名の変更

上記の手順は Amazon Linux のみで使用するためのものです。他の Linux ディストリビューションの詳細については、各ドキュメントおよび次の記事を参照してください。