Amazon Linux 인스턴스에서 호스트 이름 변경 - Amazon Elastic Compute Cloud

Amazon Linux 인스턴스에서 호스트 이름 변경

프라이빗 VPC에서 인스턴스를 시작하는 경우 Amazon EC2에서 게스트 OS 호스트 이름을 할당합니다. Amazon EC2에서 할당하는 호스트 이름의 유형은 서브넷 설정에 따라 다릅니다. EC2 호스트 이름에 대한 자세한 내용은 Amazon EC2 인스턴스 호스트 이름 유형 섹션을 참조하세요.

IPv4 주소를 갖는 IP 기반 이름 지정을 사용하여 구성되는 일반적인 Amazon EC2 프라이빗 DNS 이름은 ip-12-34-56-78.us-west-2.compute.internal과 같이 보이며, 여기서 이름은 내부 도메인, 서비스(이 경우 compute), 리전 및 프라이빗 IPv4 주소 형태로 구성됩니다. 인스턴스에 로그인하면 shell 프롬프트에 이 호스트 이름의 일부(예: ip-12-34-56-78)가 표시됩니다. 탄력적 IP 주소를 사용하지 않는 경우 Amazon EC2 인스턴스를 중지하고 다시 시작할 때마다 퍼블릭 IPv4 주소, 퍼블릭 DNS 이름, 시스템 호스트 이름 및 shell 프롬프트가 바뀝니다.

중요

이 정보는 Amazon Linux에 적용됩니다. 기타 배포에 대한 자세한 내용은 해당 설명서를 참조하세요.

시스템 호스트 이름 변경

인스턴스의 IP 주소에 퍼블릭 DNS 이름을 등록한 경우(예: webserver.mydomain.com) 인스턴스가 자신이 해당 도메인에 속함을 인식하도록 시스템 호스트 이름을 설정할 수 있습니다. 또한 이렇게 하면 AWS에서 지정한 ip-12-34-56-78과 같은 호스트 이름 대신 이 이름의 첫 부분이 shell 프롬프트에 표시됩니다. 퍼블릭 DNS 이름을 등록하지 않은 경우에도 호스트 이름을 변경할 수 있지만 절차가 약간 다릅니다.

호스트 이름 업데이트를 유지하려면 preserve_hostname cloud-init 설정이 true로 설정되어 있는지 확인해야 합니다. 다음 명령을 실행하여 이 설정을 편집하거나 추가할 수 있습니다.

sudo vi /etc/cloud/cloud.cfg

preserve_hostname 설정이 나열되어 있지 않으면 파일 끝에 다음 텍스트 줄을 추가합니다.

preserve_hostname: true
시스템 호스트 이름을 퍼블릭 DNS 이름으로 변경하려면 다음을 수행합니다.

이미 퍼블릭 DNS 이름을 등록한 경우 이 절차를 따릅니다.

    • Amazon Linux 2: hostnamectl 명령으로 호스트 이름을 설정하여 정규화된 도메인 이름을 반영합니다(예: webserver.mydomain.com).

      [ec2-user ~]$ sudo hostnamectl set-hostname webserver.mydomain.com
    • Amazon Linux AMI: 인스턴스에서 선호하는 텍스트 편집기로 /etc/sysconfig/network 구성 파일을 열고 HOSTNAME 항목을 변경하여 정규화된 도메인 이름을 반영합니다(예: webserver.mydomain.com).

      HOSTNAME=webserver.mydomain.com
  1. 인스턴스를 재부팅하여 새 호스트 이름을 적용합니다.

    [ec2-user ~]$ sudo reboot

    또는 Amazon EC2 콘솔을 사용하여 재부팅할 수 있습니다(인스턴스 페이지에서 인스턴스를 선택하고 인스턴스 상태, 인스턴스 재부팅을 차례로 선택).

  2. 인스턴스에 로그인하고 호스트 이름이 업데이트되었는지 확인합니다. 프롬프트에 새 호스트 이름이 첫 번째 "."까지 표시되어야 하고, hostname 명령이 정규화된 도메인 이름을 표시해야 합니다.

    [ec2-user@webserver ~]$ hostname webserver.mydomain.com
퍼블릭 DNS 이름 없이 시스템 호스트 이름을 변경하려면 다음을 수행합니다.
    • Amazon Linux 2: hostnamectl 명령으로 호스트 이름을 설정하여 원하는 시스템 호스트 이름을 반영합니다(예: webserver).

      [ec2-user ~]$ sudo hostnamectl set-hostname webserver.localdomain
    • Amazon Linux AMI: 인스턴스에서 선호하는 텍스트 편집기로 /etc/sysconfig/network 구성 파일을 열고 HOSTNAME 항목을 변경하여 원하는 호스트 이름을 반영합니다(예: webserver).

      HOSTNAME=webserver.localdomain
  1. 선호하는 텍스트 편집기로 /etc/hosts 파일을 열고 127.0.0.1로 시작되는 항목을 아래 예제와 일치하도록 변경합니다. 원하는 호스트 이름을 대신 입력하면 됩니다.

    127.0.0.1 webserver.localdomain webserver localhost4 localhost4.localdomain4
  2. 인스턴스를 재부팅하여 새 호스트 이름을 적용합니다.

    [ec2-user ~]$ sudo reboot

    또는 Amazon EC2 콘솔을 사용하여 재부팅할 수 있습니다(인스턴스 페이지에서 인스턴스를 선택하고 인스턴스 상태, 인스턴스 재부팅을 차례로 선택).

  3. 인스턴스에 로그인하고 호스트 이름이 업데이트되었는지 확인합니다. 프롬프트에 새 호스트 이름이 첫 번째 "."까지 표시되어야 하고, hostname 명령이 정규화된 도메인 이름을 표시해야 합니다.

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

사용자 데이터를 지정하여 인스턴스를 구성하는 등 더 프로그래밍 방식의 솔루션을 구현할 수도 있습니다. 인스턴스가 Auto Scaling 그룹의 일부인 경우 수명 주기 후크를 사용하여 사용자 데이터를 정의할 수 있습니다. 자세한 내용은 시작 시 Linux 인스턴스에서 명령 실행AWS CloudFormation 사용 설명서의 인스턴스 시작을 위한 수명 주기 후크를 참조하세요.

호스트 이름에 영향을 주지 않고 shell 프롬프트 변경

인스턴스의 호스트 이름을 수정하지 않으면서 webserver에서 제공한 프라이빗 이름(예: AWS)보다 더 유용한 시스템 이름(예: ip-12-34-56-78)을 표시하려는 경우 shell 프롬프트 구성 파일을 편집하여 호스트 이름 대신 시스템 별칭을 표시할 수 있습니다.

shell 프롬프트를 호스트 별칭으로 변경하려면 다음을 수행합니다.
  1. /etc/profile.dNICKNAME이라는 환경 변수를 shell 프롬프트로 사용할 값으로 설정하는 파일을 생성합니다. 예를 들어 시스템 별칭을 webserver라고 설정하려면 다음 명령을 실행합니다.

    [ec2-user ~]$ sudo sh -c 'echo "export NICKNAME=webserver" > /etc/profile.d/prompt.sh'
  2. 즐겨 찾는 텍스트 편집기(예: /etc/bashrc 또는 /etc/bash.bashrc)에서 vim(Red Hat) 또는 nano(Debian/Ubuntu) 파일을 엽니다. sudo/etc/bashrc/etc/bash.bashrc가 소유하므로 root와 함께 편집기 명령을 사용해야 합니다.

  3. 파일을 편집하여 호스트 이름 대신 별칭을 표시하도록 shell 프롬프트 변수(PS1)를 변경합니다. /etc/bashrc 또는 /etc/bash.bashrc에서 shell 프롬프트를 설정하는 다음 줄을 찾습니다. 아래에서는 참조를 위해 위아래 몇 줄을 함께 표시했으며, [ "$PS1"로 시작되는 줄을 찾으면 됩니다.

    # 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 변수로 변경하세요.

    # 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. (선택 사항) shell 창의 제목을 새 별칭으로 설정하려면 다음 단계를 완료합니다.

    1. /etc/sysconfig/bash-prompt-xterm이라는 이름의 파일을 만듭니다.

      [ec2-user ~]$ sudo touch /etc/sysconfig/bash-prompt-xterm
    2. 다음 명령으로 파일을 실행 가능하도록 만듭니다.

      [ec2-user ~]$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm
    3. 선호하는 텍스트 편집기(예: /etc/sysconfig/bash-prompt-xterm 또는 vim)에서 nano 파일을 엽니다. sudo/etc/sysconfig/bash-prompt-xterm가 소유하므로 root와 함께 에디터 명령을 사용해야 합니다.

    4. 파일에 다음 줄을 추가합니다.

      echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"
  5. 로그아웃하고 다시 로그인하여 새 별칭 값을 적용합니다.

다른 Linux 배포판에서 호스트 이름 변경

이 페이지의 절차는 Amazon Linux에서 사용하기 위한 것입니다. 다른 Linux 배포판에 대한 자세한 내용은 해당 설명서와 다음 항목을 참조하세요.