

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AL2 인스턴스의 호스트 이름 변경
<a name="set-hostname"></a>

프라이빗 VPC에서 인스턴스를 시작하는 경우 Amazon EC2에서 게스트 OS 호스트 이름을 할당합니다. Amazon EC2에서 할당하는 호스트 이름의 유형은 서브넷 설정에 따라 다릅니다. EC2 호스트 이름에 대한 자세한 내용은 [Amazon EC2 사용 설명서의 Amazon EC2 인스턴스 호스트 이름 유형을](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) 참조하세요. *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에 적용됩니다. 기타 배포에 대한 자세한 내용은 해당 설명서를 참조하세요.

## 시스템 호스트 이름 변경
<a name="set-hostname-system"></a>

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

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

```
sudo vi /etc/cloud/cloud.cfg
```

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

```
preserve_hostname: true
```

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

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

1. 
   + AL2의 경우: **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 콘솔을 사용하여 재부팅할 수 있습니다(**인스턴스** 페이지에서 인스턴스를 선택하고 **인스턴스 상태**, **인스턴스 재부팅**을 차례로 선택).

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

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

**퍼블릭 DNS 이름 없이 시스템 호스트 이름을 변경하려면 다음을 수행합니다.**

1. 
   + AL2의 경우: **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
   ```

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

   ```
   [ec2-user ~]$ sudo reboot
   ```

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

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

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

사용자 데이터를 지정하여 인스턴스를 구성하는 등 더 프로그래밍 방식의 솔루션을 구현할 수도 있습니다. 인스턴스가 Auto Scaling 그룹의 일부인 경우 수명 주기 후크를 사용하여 사용자 데이터를 정의할 수 있습니다. 자세한 내용은 [시작 시 Linux 인스턴스에서 명령 실행](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) 및 *AWS CloudFormation * 사용 설명서의 [인스턴스 시작을 위한 수명 주기 후크](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#aws-resource-autoscaling-lifecyclehook--examples--Lifecycle_hook_for_instance_launch)를 참조하세요.

## 호스트 이름에 영향을 주지 않고 shell 프롬프트 변경
<a name="set-hostname-shell"></a>

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

**shell 프롬프트를 호스트 별칭으로 변경하려면 다음을 수행합니다.**

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

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

1. 즐겨 찾는 텍스트 편집기(예: `/etc/bashrc` 또는 `/etc/bash.bashrc`)에서 **vim**(Red Hat) 또는 **nano**(Debian/Ubuntu) 파일을 엽니다. **sudo** 및 `/etc/bashrc`는 `/etc/bash.bashrc`가 소유하므로 `root`와 함께 편집기 명령을 사용해야 합니다.

1. 파일을 편집하여 호스트 이름 대신 별칭을 표시하도록 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
   ```

1. (선택 사항) shell 창의 제목을 새 별칭으로 설정하려면 다음 단계를 완료합니다.

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

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

   1. 다음 명령으로 파일을 실행 가능하도록 만듭니다.

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

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

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

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

1. 로그아웃하고 다시 로그인하여 새 별칭 값을 적용합니다.

## 다른 Linux 배포판에서 호스트 이름 변경
<a name="set-hostname-other-linux"></a>

이 페이지의 절차는 Amazon Linux에서 사용하기 위한 것입니다. 다른 Linux 배포판에 대한 자세한 내용은 해당 설명서와 다음 항목을 참조하세요.
+ [RHEL 7 또는 Centos 7을 실행하는 프라이빗 Amazon EC2 인스턴스로 정적 호스트 이름을 할당하려면 어떻게 해야 합니까?](https://aws.amazon.com/premiumsupport/knowledge-center/linux-static-hostname-rhel7-centos7/)