SLES를 실행하는 프라이빗 EC2 인스턴스에 정적 호스트 이름을 할당하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 2월 20일

프라이빗 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 호스트 이름을 변경했습니다. 하지만 인스턴스를 재부팅하거나 중지했다가 다시 시작하면 새 호스트 이름이 이전에 할당된 호스트 이름으로 되돌아갑니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

EC2 인스턴스 호스트 이름은 시작 시 인스턴스에 동적으로 할당된 IP 주소에서 파생됩니다. hostname 명령을 사용하여 EC2 Linux의 프라이빗 인스턴스 호스트 이름을 변경하는 경우 인스턴스를 재부팅하거나 중지했다가 다시 시작하면 호스트 이름이 유지되지 않습니다. 인스턴스가 중지되었다가 시작되거나 재부팅되는 동안 새 호스트 이름을 유지하려면 EC2 Linux 인스턴스의 해당 구성 파일에 새 호스트 이름을 추가합니다.

​해결 방법

1.    SSH를 사용하여 EC2 Linux 인스턴스에 연결합니다. 자세한 내용은 SSH를 사용하여 Linux 인스턴스에 연결을 참조하십시오.

2.    루트 사용자로 전환합니다.

sudo su

3.    YaST 인터페이스를 사용하거나 SLES Linux 인스턴스를 새 호스트 이름으로 수동으로 업데이트합니다.

YaST 인터페이스 업데이트

1.    yast 명령을 실행하여 YaST 인터페이스를 시작합니다.

yast

2.    [Network Settings]로 이동합니다.

SLES 11:

Tab 및 화살표 키를 사용하여 [Network Devices], [Network Settings]로 이동한 다음 Enter 키를 누릅니다.

SLES 12 및 SLES 15:

Tab 및 화살표 키를 사용하여 [System], [Network Settings]로 이동한 다음 Enter 키를 누릅니다.

3.    [Network Settings]에서 화살표 키를 사용하여 [Hostname/DNS]로 이동하고 Tab 키 및 Shift+Tab 조합을 사용하여 사용 가능한 옵션을 차례로 살펴봅니다.

4.    호스트 이름과 도메인 이름을 설정합니다.

SLES 11 및 SLES 12:

호스트 이름과 도메인 이름을 선택하고 원하는 값으로 설정합니다.

SLES 15:

호스트 이름을 선택하고 원하는 값으로 설정합니다.

5.    [Change Hostname via DHCP] 값을 [no]로 설정하거나 값을 지웁니다.

SLES 11:

[Change Hostname via DHCP]로 이동한 다음 스페이스바를 눌러 이 옵션의 선택을 취소합니다.

SLES 12 및 SLES 15:

[Set Hostname via DHCP] 옵션이 [no]로 설정되어 있는지 확인합니다.

6.    Tab 키를 사용하여 [OK]로 이동한 다음 Enter 키를 눌러 변경 사항을 수락합니다.

7.    Tab 키를 사용하여 [Quit]로 이동한 다음 Enter 키를 눌러 YaST를 종료합니다.

8.    vim 편집기를 사용하여 SLES Linux 인스턴스의 /etc/cloud/cloud.cfg 파일을 업데이트합니다.

vim /etc/cloud/cloud.cfg

9.    preserve_hostname 문자열을 찾고 기본 설정을 [true]로 변경하여 다시 시작 또는 재부팅 사이에 호스트 이름이 유지되도록 합니다.

preserve_hostname: true

10.    Shift + :(콜론)을 누르고 vim 편집기에서 새 명령 입력 상자를 열어 vim 편집기를 저장 및 종료합니다. wq를 입력한 다음 Enter 키를 눌러 변경 사항을 저장하고 vim을 종료합니다.

11.    인스턴스를 재부팅합니다.

sudo reboot

12.    EC2 인스턴스에 연결한 다음, 파라미터 없이 Linux hostname 명령을 실행하여 호스트 이름 변경 사항이 유지되었는지 확인합니다.  

hostname

이 명령은 새 호스트 이름을 반환합니다.

수동 업데이트

1.    hostnamectl 명령을 사용하여 새 호스트 이름을 설정합니다. new-hostname을 호스트 이름으로 바꿉니다.

SLES 11:

hostname new-hostname

SLES 12 및 SLES 15:

hostnamectl set-hostname new-hostname

2.    vim 편집기를 사용하여 /etc/hosts 파일을 새 호스트 이름으로 업데이트합니다.  

vim /etc/hosts

3.    localhost 문자열을 찾고 새 호스트 이름을 추가해 new-hostname을 호스트 이름으로 다시 바꿉니다.

127.0.0.1 localhost new-hostname

4.    Shift +:(콜론)을 누르고 vim 편집기에서 새 명령 입력 상자를 열어 vim 편집기를 저장 및 종료하고 wq를 입력한 다음 Enter 키를 눌러 변경 사항을 저장하고 vim을 종료합니다.

SLES 11(이 OS 버전에 대한 추가 단계만 해당)

vim 편집기를 사용하여 /etc/HOSTNAME 파일을 새 호스트 이름으로 업데이트합니다.

vim /etc/HOSTNAME

현재 호스트 이름 문자열을 찾아 새 호스트 이름으로 바꿉니다.

Shift +:(콜론)을 눌러 vim 편집기에서 새 명령 입력 상자를 열고 wq를 입력한 다음 Enter 키를 눌러 변경 사항을 저장하고 vim을 종료합니다.

5.    vim 편집기를 사용하여 SLES Linux 인스턴스의 /etc/cloud/cloud.cfg 파일을 업데이트합니다.  

vim /etc/cloud/cloud.cfg

6.    preserve_hostname 문자열을 찾고 기본 설정을 [true]로 변경하여 다시 시작 또는 재부팅 사이에 호스트 이름이 유지되도록 합니다.

preserve_hostname: true

7.    Shift + :(콜론)을 누르고 vim 편집기에서 새 명령 입력 상자를 열어 vim 편집기를 저장 및 종료합니다. wq를 입력한 다음 Enter 키를 눌러 변경 사항을 저장하고 vim을 종료합니다.

8.    인스턴스를 재부팅합니다.

sudo reboot

9.    EC2 인스턴스에 연결한 다음, 파라미터 없이 Linux hostname 명령을 실행하여 호스트 이름 변경 사항이 유지되었는지 확인합니다.  

hostname

이 명령은 새 호스트 이름을 반환합니다.