최근 고객사의 시계열 데이터베이스 서버에 있는 데이터를 최적화하고 삭제되는 데이터의 일부를 CSV로 추출하여 S3 버킷에 백업하는 유지보수 작업을 수행하고 있습니다. 해당 시계열 데이터베이스는 상용 기술로 라이센스 확인을 위해 외부 통신을 수행하는데 이 과정에서 서버 호스트이름을 라이센스 발급 시 지정된 값으로 지정해야합니다.
고객사 인프라팀에서 복제된 서버를 제공해주었지만 호스트이름이 임의로 설정되어있기 때문에 호스트이름을 hostnamectl을 통해 변경해야 했습니다. 고객사 환경에 접근 통제를 위해 HIWARE(HI-TAM)이 적용되어 있어 작업 진행 시 서버 호스트이름 변경이 접근 통제에 영향을 미치지 않음을 확인받았습니다.
hostnamectl 을 통한 호스트이름 변경
sh
sudo hostnamectl set-hostname tsdb.local
[ec2-user@tsdb ~]$ hostname -f
tsdb.local
EC2 인스턴스가 이미 만들어진 경우이므로 서버 접속 후에 hostnamectl 명령어를 통해 호스트이름을 변경할 수 있습니다. 서버 재부팅은 수행하지 않을 계획이므로 서버 재부팅 시 호스트이름 고정을 위한 설정은 진행하지 않았습니다.
사용자 데이터의 cloud-config 로 호스트이름 지정
yaml
#cloud-config
hostname: tsdb.local
fqdn: tsdb.local
manage_etc_hosts: true
만약, 초기 인프라 구성 시 EC2 인스턴스를 생성하는 단계에서 호스트이름을 지정하고 싶다면 위와 같이 사용자 데이터 항목에 cloud-config 설정을 포함하여 IP 주소 기반이 아닌 원하는 호스트이름을 적용할 수 있습니다.
호스트이름 변경을 위한 파일 목록
이외의 방법을 찾아보면 EC2 인스턴스의 OS 유형에 따라 아래와 같은 파일을 수정해서 호스트이름을 변경할 수 있음을 알 수 있습니다.
- /etc/hostname
- /etc/hosts
- /etc/sysconfig/network
- /etc/cloud/cloud.cfg