본문 바로가기

퍼블릭 클라우드

[draft] Amazon EC2 인스턴스에 정적 호스트 이름을 할당하는 방법

Amazon EC2 인스턴스에 정적 호스트 이름을 할당하는 방법

1. 인스턴스 IAM 권한 설정

EC2 인스턴스에서 AWS CLI를 통해 태그 정보를 조회하기 위해 다음 권한을 가진 IAM Role을 인스턴스에 연결합니다.

 

필요한 정책

  • AmazonEC2ReadOnlyAccess
  • ResourceGroupsandTagEditorReadOnlyAccess

AWS Management Console에서 EC2 → 인스턴스 → IAM Role 연결을 통해 설정할 수 있습니다.

Amazon_EC2

2. 필요한 패키지 설치

EC2 인스턴스에서 JSON 데이터를 처리하기 위해 jq 패키지를 설치합니다.

yum install -y jq

3. EC2 Name 태그를 이용한 호스트명 변경

  1. 인스턴스 메타데이터에서 Instance ID 확인
  2. AWS CLI를 이용하여 Name 태그 조회
  3. hostnamectl 명령어로 호스트명 변경

4. 호스트명 변경 스크립트 작성

vim ec2-hostname-change.sh
#!/bin/bash

# EC2 Instance ID 조회
INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)

# EC2 Instance Region 조회
AWS_REGION=$(curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region)

# EC2 Name 태그 값 조회
HOSTNAME_FROM_TAG=$(aws --region ${AWS_REGION} ec2 describe-instances \
        --instance-ids ${INSTANCE_ID} \
        --query "Reservations[].Instances[].Tags[?Key=='Name'].Value[]" \
        --output text)

# Linux Hostname 변경
sudo hostnamectl set-hostname ${HOSTNAME_FROM_TAG}

실행 권한 부여

chmod +x ec2-hostname-change.sh

스크립트 실행

./ec2-hostname-change.sh

설정 확인

hostnamectl

또는

hostname

5. AWS 콘솔에서 Name 태그 확인

AWS Management Console에서 다음 경로로 이동합니다.

EC2 → Instances → 해당 인스턴스

Amazon_EC2

여기서 확인되는 Name 태그 값이 Linux 서버의 호스트명으로 설정됩니다.