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 | 9473 |
50 |
AWS EC2 EBS 용량 줄이기/늘리기 - Snapshot 활용
![]() | 호스트웨이관리자 | 2015.09.06 | 6346 |
49 | ELB pre-warming 이란? | 호스트웨이 | 2015.09.09 | 5604 |
48 |
AWS Case Open 가이드
![]() | 호스트웨이 | 2016.07.27 | 5535 |
47 | AWS EC2 Type 별 네트웍 성능 안내 | 호스트웨이 | 2017.03.22 | 3131 |
46 | Cloudfront 콘텐츠 갱신 방법 | 호스트웨이 | 2015.09.13 | 2281 |
45 |
Putty 통한 Proxy 연결 방법
![]() | 호스트웨이 | 2016.06.13 | 2270 |
44 | AWS 서비스 갯수 제한 해제. | 호스트웨이 | 2015.09.24 | 2127 |
43 |
AWS Flow 설정
![]() | 호스트웨이 | 2017.01.17 | 2028 |
42 | AWS 부하테스트 시행전 승인요청 | 호스트웨이 | 2017.02.27 | 1971 |
41 | aws s3 bucket size 확인 방법 | 호스트웨이 | 2015.09.11 | 1939 |
40 | WEB 서비스 ELB 사용 시, Health check 설정 방법(권장) | 호스트웨이 | 2015.09.22 | 1924 |
39 | Goofys 설치 | 호스트웨이 | 2016.11.29 | 1899 |
38 |
RI 신청 가이드
![]() | 호스트웨이 | 2016.11.29 | 1821 |
37 | S3 browser tool | 호스트웨이 | 2015.09.11 | 1803 |
36 |
AWS AMI 다른 계정으로 공유
![]() | 호스트웨이 | 2016.12.29 | 1774 |
35 |
AWS KMS 이용 가이드
![]() | 호스트웨이 | 2016.08.29 | 1772 |
34 | EC2는 오토스케일링로 확장 가능한데, DB는 불가능한가? | 호스트웨이 | 2015.09.10 | 1714 |
33 | AWS ELB Pre-warm 신청 양식 | 호스트웨이 | 2016.10.17 | 1702 |
32 | S3 bucket 마운트하기 | 호스트웨이 | 2015.09.04 | 1655 |