[리눅스 실무 기초 #2] 서버 관리의 기본: 호스트네임(Hostname) 변경 및 관리 방법

서론: 이름이 없는 서버는 장애의 씨앗이 됩니다

클라우드 인스턴스를 처음 생성하면 보통 ip-172-26-xx-xx 같은 임의의 내부 IP가 호스트네임으로 지정됩니다. 소수의 서버를 운영할 때는 문제가 없지만, 관리하는 서버가 늘어날수록 터미널 프롬프트만 보고는 이 서버가 운영(Production) 서버인지 테스트(Test) 서버인지 즉각적으로 파악하기 어렵습니다.

호스트네임을 명확히 설정하는 것은 단순히 보기 좋게 만드는 작업이 아닙니다. 운영 환경 오인으로 인한 커맨드 입력 실수를 방지하고, 네트워크상에서 각 서버의 역할을 명확히 정의하는 인프라 관리의 필수적인 첫 단계입니다. 오늘은 리눅스 서버의 이름을 정의하는 호스트네임 변경법을 정리합니다.

절대 hostname에 모자이크 하기 귀찮아서가 아닙니다. 🙂


현재 호스트네임 정보 확인

변경 작업을 시작하기 전, 현재 시스템의 호스트네임 정보를 상세히 확인합니다.

Bash

hostnamectl

이 명령어는 단순한 이름뿐만 아니라 커널 버전, 아키텍처, 가상화 정보까지 함께 보여주어 현재 환경을 파악하기에 가장 좋습니다.

hostnamectl screen

호스트네임 변경 (hostnamectl set-hostname)

리눅스 표준인 hostnamectl을 사용하면 별도의 파일 수정 없이도 정적(Static), 일시적(Transient), 관용적(Pretty) 호스트네임을 한 번에 관리할 수 있습니다.

Bash

# 원하는 이름으로 변경 (예: prod-web-server)
sudo hostnamectl set-hostname prod-web-server
  • 규칙: 호스트네임은 대소문자를 구분하지 않으며, 공백 대신 하이픈(-)이나 언더바(_)를 사용하여 가독성을 높이는 것이 관례입니다.
  • 저는 “hwanfralog” 로 변경했습니다.
hostnamectl set-hostname screen

네트워크 통신 안정성을 위한 /etc/hosts 수정

호스트네임만 변경하면 시스템 내부에서 자기 자신을 찾지 못해 sudo 호출 시 딜레이가 발생하거나 네트워크 관련 에러가 발생할 수 있습니다. 로컬 호스트 파일에도 새 이름을 등록해주는 것이 엔지니어의 디테일입니다.

Bash

sudo vi /etc/hosts

파일 최상단의 127.0.0.1 localhost 옆이나 아랫줄에 변경한 이름을 추가합니다.

127.0.0.1 localhost

/etc/hosts screen

변경 사항 확인 및 적용

터미널을 재접속하거나 아래 명령어를 실행하여 프롬프트가 변경되었는지 확인합니다.

Bash

exec bash

이제 프롬프트에 bitnami@hwanfralog와 같이 정의한 이름이 나타나며, 어떤 서버에서 작업 중인지 명확히 알 수 있게 됩니다.

exec bash screen

💡 엔지니어의 노트: 클라우드 환경에서의 영구 적용 (cloud-init)

AWS나 GCP 같은 클라우드 환경에서는 cloud-init 서비스가 재부팅 시 호스트네임을 초기화하는 경우가 있습니다. 이를 방지하려면 아래 설정 확인이 필요합니다.

  1. sudo vi /etc/cloud/cloud.cfg
  2. preserve_hostname: true 로 설정 변경 (기본값은 false인 경우가 많음)
perserve_hostname screen

마무리하며

잘 정의된 호스트네임은 엔지니어의 실수를 줄여주는 가장 기본적인 안전장치입니다. 서버를 구축한 뒤 가장 먼저 자신만의 네이밍 컨벤션(Naming Convention)에 맞춰 이름을 부여해 보시기 바랍니다.

“이 글의 영문 버전은 [이곳]에서 확인하실 수 있습니다.”

댓글 남기기