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 인스턴스 처음 시작할 때
호스트 이름을 설정하하는 방법
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
31 | route53 Domain import / export - 1편 | 호스트웨이 | 2015.09.11 | 3668 |
30 | aws key pair 등록 방법 | 호스트웨이 | 2015.09.07 | 3803 |
29 | AWS 서비스 갯수 제한 해제. | 호스트웨이 | 2015.09.24 | 3888 |
28 | Auto-scaling 정책으로 생성 된 EC2에 이름 부여하기 | 호스트웨이 | 2015.09.08 | 3960 |
27 | S3 bucket 마운트하기 | 호스트웨이 | 2015.09.04 | 4120 |
26 | S3 browser tool | 호스트웨이 | 2015.09.11 | 4174 |
25 | Cloudfront 콘텐츠 갱신 방법 | 호스트웨이 | 2015.09.13 | 4176 |
24 | aws s3 bucket size 확인 방법 | 호스트웨이 | 2015.09.11 | 4348 |
23 | EC2는 오토스케일링로 확장 가능한데, DB는 불가능한가? | 호스트웨이 | 2015.09.10 | 4683 |
22 | AWS Volume Resize 안내 | 호스트웨이 | 2017.03.22 | 8211 |
21 | EFS 백업 가이드 | 호스트웨이 | 2016.09.23 | 8407 |
20 | AWS Snowball 과 인터넷 전송 속도 비교 | 호스트웨이 | 2016.08.30 | 8592 |
19 | MarketPlace 비용이 발생 할 경우 | 호스트웨이 | 2016.07.26 | 8669 |
18 | EC2 및 EBS 리소스 ID 더 긴 ID로 전환 | 호스트웨이 | 2016.09.23 | 8834 |
17 | AWS 취약점/침투 테스트 신청 방법 | 호스트웨이 | 2016.10.07 | 8847 |
16 | AWS 보안 백서 | 호스트웨이 | 2016.06.17 | 8861 |
15 | AWS 마스터 계정 정보 변경 방법 안내 | 호스트웨이 | 2017.02.15 | 8920 |
14 | RI 신청 가이드 | 호스트웨이 | 2016.11.29 | 9122 |
13 | AWS AMI 다른 계정으로 공유 | 호스트웨이 | 2016.12.29 | 9330 |
12 | AWS EC2 EBS 용량 줄이기/늘리기 - Snapshot 활용 | 호스트웨이관리자 | 2015.09.06 | 9381 |