2015.09.13 17:28
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 인스턴스 처음 시작할 때
호스트 이름을 설정하하는 방법
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 51 |
AWS 계정 만들기
| 호스트웨이 | 2016.12.09 | 22458 |
| 50 |
AWS Case Open 가이드
| 호스트웨이 | 2016.07.27 | 20242 |
| 49 | AWS EC2 Type 별 네트웍 성능 안내 | 호스트웨이 | 2017.03.22 | 14883 |
| 48 |
Putty 통한 Proxy 연결 방법
| 호스트웨이 | 2016.06.13 | 14619 |
| 47 |
AWS Flow 설정
| 호스트웨이 | 2017.01.17 | 13492 |
| 46 |
AWS KMS 이용 가이드
| 호스트웨이 | 2016.08.29 | 13366 |
| 45 | ELB pre-warming 이란? | 호스트웨이 | 2015.09.09 | 13129 |
| 44 | AWS Snowball 과 인터넷 전송 속도 비교 | 호스트웨이 | 2016.08.30 | 13010 |
| 43 |
VPC간 Peering 설정
| 호스트웨이 | 2017.01.17 | 13009 |
| 42 | AWS 부하테스트 시행전 승인요청 | 호스트웨이 | 2017.02.27 | 12692 |
| 41 |
RI 신청 가이드
| 호스트웨이 | 2016.11.29 | 12673 |
| 40 | Goofys 설치 | 호스트웨이 | 2016.11.29 | 12666 |
| 39 | AWS ELB Pre-warm 신청 양식 | 호스트웨이 | 2016.10.17 | 12659 |
| 38 |
AWS AMI 다른 계정으로 공유
| 호스트웨이 | 2016.12.29 | 12648 |
| 37 |
AWS EC2 EBS 용량 줄이기/늘리기 - Snapshot 활용
| 호스트웨이관리자 | 2015.09.06 | 12519 |
| 36 |
AWS 마스터 계정 정보 변경 방법 안내
| 호스트웨이 | 2017.02.15 | 12215 |
| 35 | AWS 취약점/침투 테스트 신청 방법 | 호스트웨이 | 2016.10.07 | 12108 |
| 34 |
AWS 보안 백서
| 호스트웨이 | 2016.06.17 | 12063 |
| 33 |
MarketPlace 비용이 발생 할 경우
| 호스트웨이 | 2016.07.26 | 11868 |
| 32 |
EC2 및 EBS 리소스 ID 더 긴 ID로 전환
| 호스트웨이 | 2016.09.23 | 11842 |