Auto Scaling에서 추가한 EC2 인스턴스에 EIP를 자동으로 연결

2389 단어 EC2AutoScalingAWS
작은 재료입니다.

곤란한 일



Auto Scaling에서 EC2 인스턴스가 시작될 때마다 EIP가 매번 분리됩니다.

EIP를 다시 연결해야하지만 수동으로 수행하는 것은 까다 롭습니다.
어떻게든 하지 않으면... 라고 생각해 조사했습니다.

해결책



Auto Scaling 시작 템플릿의 사용자 데이터에 스크립트 포함

▼ 상세
※ Auto Scaling의 시작 템플릿은 작성된 전제
1. EC2의 사이드 메뉴에서 Auto Scaling 그룹을 선택합니다.

2. 생성된 시작 템플릿 선택

3. 동작 > 템플릿 변경(새 버전 만들기)을 클릭합니다.

4. 사용자 데이터에 스크립트를 붙여넣고 템플릿 버전 만들기를 클릭합니다.
[고급 세부 사항] 항목에 숨겨져 있습니다.

▼ 붙여넣는 스크립트
#!/bin/bash

## EIPの自動割り当て処理
INSTANCE_ID=`curl http://169.254.169.254/latest/meta-data/instance-id`
REGION=`curl http://169.254.169.254/latest/dynamic/instance-identity/document | grep region | awk -F\" '{print $4}'`

for ALLOC_ID in `aws ec2 describe-addresses --region=$REGION --filter "Name=domain,Values=vpc"  --output text | grep -v eipassoc- | awk '{print $2}'`
do
  CMD="aws ec2 associate-address --instance-id $INSTANCE_ID --allocation-id $ALLOC_ID --no-allow-reassociation --region=$REGION"
  $CMD
  STATUS=$?
  if [ 0 = $STATUS ] ; then
    exit 0
  fi
done
exit 1

방금 만든 버전을 템플릿의 기본 버전으로 설정하면 다음에 Auto Scaling이 시작될 때 적용됩니다.

여담 (왜 이것을 해결하고 싶었는지)



다음 조건을 충족하고 싶었기 때문입니다.
  • 평일의 정시 시간내는 1대 기동·그 이외의 시간은 기동하지 않는다 (비용 절약을 위해)
  • 시작된 EC2 인스턴스의 IP는 항상 고정됩니다.

    참고


  • Auto Scaling에서 시작된 인스턴스에 EIP를 자동으로 설정하는 방법 | Ryuzee.com
  • 좋은 웹페이지 즐겨찾기