AWS_FAQ


AmazonLinux의 EC 인스턴스 시작시 cloud-init에 의해 호스트 이름을
Name 태그_인스턴스 ID_IP 주소로 설정
EC2 인스턴스를 여러 개 만들 경우 각 인스턴스의 호스트 이름에
Name 태그와 인스턴스 ID를 지정하여 작업 할 인스턴스를 구분하고 싶을 때.
EC2 인스턴스 시작시 호스트 이름을 Name 태그 _ 인스턴스 ID_IP 주소로 설정하는 방법입니다.

■ 개요
EC2 인스턴스에서 /var / lib / cloud / scripts / per-boot / 아래에 스크립트를 작성하고
EC2 인스턴스에 설정된 Tags과 metadata에서 인스턴스 ID와 Name 태그 등을 취득하고
EC2 인스턴스 시작 마다 호스트 이름을 [Name 태그 _ 인스턴스 ID_IP 주소로 설정합니다].


■ EC2 인스턴스로 설정 Name 태그와 IAM 정책 예
EC2 인스턴스의 Name 태그, 예를 들어 "web-server-002」로 설정합니다.

사전 호스트 이름 변경 대상 EC2 인스턴스는 aws ec2 명령으로 각종 정보를 얻을 수 있도록 IAM 정책을 설정 되어 있어야 함.

■ cloud-init에 의해 실행되는 스크립트
EC2 인스턴스에 다음과 같은 스크립트를 작성합니다.

$ hostname
ip-172-31-4-80
$ sudo vi /var/lib/cloud/scripts/per-boot/001_setting_hostname.sh
#!/bin/sh

##### 지역 명을 취득
REGION=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone/ | sed 's/.$//'`


##### 인스턴스 자신의 인스턴스 ID를 가져오기
INSTANCE_ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`

##### 인스턴스 자신의 IP 주소를 취득
IP_ADDRESS=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/local-ipv4`

##### Name 태그를 검색
NAME_TAG=`/usr/bin/aws ec2 describe-instances --region ${REGION} --instance-ids ${INSTANCE_ID=} --query 'Reservations[].Instances[].Tags[?Key==\`Name\`].Value' --output text`

##### 호스트 이름의 IP 주소.를 -로 변환
IP_ADDRESS=`echo ${IP_ADDRESS} | sed -e "s/\./-/g"`

##### 호스트 이름을 변경하려면
INSTANCE_NAME="${NAME_TAG}_${INSTANCE_ID}_${IP_ADDRESS}"

hostname ${INSTANCE_NAME}
sed -i -e "s/^HOSTNAME=.*\$/HOSTNAME=${INSTANCE_NAME}/g" /etc/sysconfig/network

스크립트 실행 권한을 부여합니다.
[ec2-user@ip-172-31-4-80 ~]$ sudo chmod 755 /var/lib/cloud/scripts/per-boot/001_setting_hostname.sh
[ec2-user@ip-172-31-4-80 ~]$
[ec2-user@ip-172-31-4-80 ~]$ ll /var/lib/cloud/scripts/per-boot/001_setting_hostname.sh
-rwxr-xr-x 1 root root 969 Dec 28 00:32 /var/lib/cloud/scripts/per-boot/001_setting_hostname.sh
[ec2-user@ip-172-31-4-80 ~]$

■ EC2 인스턴스의 호스트 이름을 변경
하려는 스크립트를 실행 또는 EC2 인스턴스를 다시 시작하면 시작할 때 호스트 이름이 변경됩니다.

[ec2-user@ip-172-31-4-80 ~]$ hostname
ip-172-31-4-80
[ec2-user@ip-172-31-4-80 ~]$ grep -i hostname /etc/sysconfig/network
HOSTNAME=localhost.localdomain
[ec2-user@ip-172-31-4-80 ~]$ sudo reboot

EC2 인스턴스를 시작하면 호스트 이름이 Name 태그_인스턴스ID_IP 주소로 설정됩니다.

[ec2-user@web-server-002_i-9b6f5f82_172-31-4-80 ~]$ hostname
web-server-002_i-9b6f5f82_172-31-4-80
[ec2-user@web-server-002_i-9b6f5f82_172-31-4-80 ~]$ grep -i hostname /etc/sysconfig/network
HOSTNAME=web-server-002_i-9b6f5f82_172-31-4-80
[ec2-user@web-server-002_i-9b6f5f82_172-31-4-80 ~]$

 /var/lib/cloud/scripts/per-boot/에 스크립트를 배치하여 EC2 인스턴스를 시작할 때마다
호스트 이름을 설정하도록하는 방법
/var/lib/cloud/scripts/per-once/ 스크립트를 배치하여 EC2 인스턴스 처음 시작할 때
호스트 이름을 설정하하는 방법

번호 제목 글쓴이 날짜 조회 수
31 AWS key 파일 변환 (pem.key -> ppk.key) 호스트웨이 2015.09.22 1252
30 WEB 서비스 ELB 사용 시, Health check 설정 방법(권장) 호스트웨이 2015.09.22 2185
29 AWS 서비스 갯수 제한 해제. 호스트웨이 2015.09.24 2858
28 sub domain route53 으로 위임 호스트웨이 2015.09.25 1493
27 AWS를 직접 사용하는 것과 호스트웨이를 통했을 때의 차이점은 무엇인가요? 호스트웨이 2015.10.26 1431
26 S3 성능 고려 사항 호스트웨이 2016.04.27 378
25 Sub 도메인 확장 호스트웨이 2016.04.27 313
24 T2 instance 특징은 무엇인가요? 호스트웨이 2016.04.28 1087
23 EC2 Type 별 EIP를 몇개까지 할당 할 수 있나? 호스트웨이 2016.04.28 1412
22 AWS ELB TCP 적용 방법 호스트웨이 2016.06.01 727
21 AWS Linux Bastion instance SSH Tunneling 사용 방법 file 호스트웨이 2016.06.01 1800
20 Putty 통한 Proxy 연결 방법 file 호스트웨이 2016.06.13 9254
19 AWS 보안 백서 file 호스트웨이 2016.06.17 7257
18 MarketPlace 비용이 발생 할 경우 file 호스트웨이 2016.07.26 6771
17 AWS Case Open 가이드 file 호스트웨이 2016.07.27 13011
16 AWS KMS 이용 가이드 file 호스트웨이 2016.08.29 8525
15 AWS Snowball 과 인터넷 전송 속도 비교 호스트웨이 2016.08.30 7297
14 EC2 및 EBS 리소스 ID 더 긴 ID로 전환 file 호스트웨이 2016.09.23 7224
13 EFS 백업 가이드 호스트웨이 2016.09.23 7058
12 AWS 취약점/침투 테스트 신청 방법 호스트웨이 2016.10.07 7090