Linux 인스턴스의 호스트 이름 변경
인스턴스를 시작하면 인스턴스에 호스트 이름(내부 프라이빗 IPv4 주소)이 지정됩니다. 일반적인 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 이름을 등록하지 않은 경우에도 호스트 이름을 변경할
수 있지만 절차가 약간 다릅니다.
시스템 호스트 이름을 퍼블릭 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
-
-
인스턴스를 재부팅하여 새 호스트 이름을 적용합니다.
[ec2-user ~]$
sudo reboot
또는 Amazon EC2 콘솔을 사용하여 재부팅할 수 있습니다(인스턴스 페이지에서 작업, 인스턴스 상태, 재부팅 선택).
-
인스턴스에 로그인하고 호스트 이름이 업데이트되었는지 확인합니다. 프롬프트에 새 호스트 이름이 첫 번째 "."까지 표시되어야 하고, 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
-
-
선호하는 텍스트 편집기로
/etc/hosts
파일을 열고127.0.0.1
로 시작되는 항목을 아래 예제와 일치하도록 변경합니다. 원하는 호스트 이름을 대신 입력하면 됩니다.127.0.0.1
webserver
.localdomainwebserver
localhost4 localhost4.localdomain4 -
인스턴스를 재부팅하여 새 호스트 이름을 적용합니다.
[ec2-user ~]$
sudo reboot
또는 Amazon EC2 콘솔을 사용하여 재부팅할 수 있습니다(인스턴스 페이지에서 작업, 인스턴스 상태, 재부팅 선택).
-
인스턴스에 로그인하고 호스트 이름이 업데이트되었는지 확인합니다. 프롬프트에 새 호스트 이름이 첫 번째 "."까지 표시되어야 하고, hostname 명령이 정규화된 도메인 이름을 표시해야 합니다.
[ec2-user@webserver ~]$
hostname
webserver.localdomain
호스트 이름에 영향을 주지 않고 shell 프롬프트 변경
인스턴스의 호스트 이름을 수정하지 않으면서 webserver
에서 제공한 프라이빗 이름(예: AWS)보다 더 유용한 시스템 이름(예: ip-12-34-56-78
)을 표시하려는 경우 shell 프롬프트 구성 파일을 편집하여 호스트 이름 대신 시스템 별칭을 표시할 수 있습니다.
shell 프롬프트를 호스트 별칭으로 변경하려면 다음을 수행합니다.
-
/etc/profile.d
에NICKNAME
이라는 환경 변수를 shell 프롬프트로 사용할 값으로 설정하는 파일을 생성합니다. 예를 들어 시스템 별칭을webserver
라고 설정하려면 다음 명령을 실행합니다.[ec2-user ~]$
sudo sh -c 'echo "export NICKNAME=
webserver
" > /etc/profile.d/prompt.sh' -
즐겨 찾는 텍스트 편집기(예: vim 또는 nano)에서
/etc/bashrc
(Red Hat) 또는/etc/bash.bashrc
(Debian/Ubuntu) 파일을 엽니다./etc/bashrc
및/etc/bash.bashrc
는root
가 소유하므로 sudo와 함께 편집기 명령을 사용해야 합니다. -
파일을 편집하여 호스트 이름 대신 별칭을 표시하도록 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 -
(선택 사항) shell 창의 제목을 새 별칭으로 설정하려면 다음 단계를 완료합니다.
-
/etc/sysconfig/bash-prompt-xterm
이라는 이름의 파일을 만듭니다.[ec2-user ~]$
sudo touch /etc/sysconfig/bash-prompt-xterm
-
다음 명령으로 파일을 실행 가능하도록 만듭니다.
[ec2-user ~]$
sudo chmod +x /etc/sysconfig/bash-prompt-xterm
-
선호하는 텍스트 편집기(예: vim 또는 nano)에서
/etc/sysconfig/bash-prompt-xterm
파일을 엽니다./etc/sysconfig/bash-prompt-xterm
는root
가 소유하므로 sudo와 함께 에디터 명령을 사용해야 합니다. -
파일에 다음 줄을 추가합니다.
echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"
-
-
로그아웃하고 다시 로그인하여 새 별칭 값을 적용합니다.
다른 Linux 배포판에서 호스트 이름 변경
이 페이지의 절차는 Amazon Linux에서 사용하기 위한 것입니다. 다른 Linux 배포판에 대한 자세한 내용은 해당 설명서와 다음 항목을 참조하십시오.