본문 바로가기
Tech/AWS

AWS CLI로 생성 되어 있는 EC2 인스턴스에 Private IP 태그 자동 추가하는 방법 (실습 스크립트 포함)

by daelolo 2025. 3. 24.
반응형

AWS EC2 인스턴스를 운영 중이라면, 태그(Tag)를 통한 자산 관리가 매우 중요합니다. 이번 포스팅에서는 운영 중인 모든 EC2 인스턴스에 Private IP를 태그로 자동 추가하는 방법을 AWS CLI와 Python 스크립트를 활용하여 소개합니다.

✅ 사전 준비

  • AWS CLI 설치 및 구성 (권한 있는 IAM 사용자)
  • 설정: aws configure
  • 필요 권한 (IAM 정책)
{
  "Effect": "Allow",
  "Action": [
    "ec2:DescribeInstances",
    "ec2:CreateTags"
  ],
  "Resource": "*"
}

📄 방법 1. Bash 스크립트로 태그 자동 추가하기

다음 스크립트는 모든 EC2 인스턴스를 조회하여 각 인스턴스에 private_ip 태그를 자동으로 붙입니다.

#!/bin/bash

# 모든 EC2 인스턴스 ID와 Private IP 가져오기
INSTANCES=$(aws ec2 describe-instances --query "Reservations[].Instances[].[InstanceId, PrivateIpAddress]" --output text)

# 인스턴스에 태그 추가
while read -r INSTANCE_ID PRIVATE_IP; do
  if [[ -n "$PRIVATE_IP" ]]; then
    echo "Adding tag to $INSTANCE_ID with Private IP: $PRIVATE_IP"
    aws ec2 create-tags --resources "$INSTANCE_ID" --tags Key=private_ip,Value="$PRIVATE_IP"
  else
    echo "Skipping instance $INSTANCE_ID (No Private IP)"
  fi
done <<< "$INSTANCES"

💡 실행 방법

chmod +x add_private_ip_tag.sh
./add_private_ip_tag.sh

📄 방법 2. Python(Boto3)으로 EC2 태그 자동 추가

AWS Lambda나 Python 환경에서 실행하기 적합한 코드입니다.

import boto3

ec2 = boto3.client('ec2')

# 모든 인스턴스 정보 가져오기
response = ec2.describe_instances()

for reservation in response['Reservations']:
    for instance in reservation['Instances']:
        instance_id = instance['InstanceId']
        private_ip = instance.get('PrivateIpAddress')

        if private_ip:
            print(f"Adding tag to {instance_id} with Private IP: {private_ip}")
            ec2.create_tags(
                Resources=[instance_id],
                Tags=[{'Key': 'private_ip', 'Value': private_ip}]
            )
        else:
            print(f"Skipping instance {instance_id} (No Private IP)")

🔧 유용한 옵션

  • 특정 태그가 있는 인스턴스만 필터링
aws ec2 describe-instances --filters "Name=tag:Environment,Values=Production"
  • 특정 리전만 지정
aws ec2 describe-instances --region ap-northeast-2

🎯 기대 효과

  • Private IP 기반의 리소스 검색 및 필터링 가능
  • 수동 태깅 제거 → 운영 자동화 실현
  • 비용 추적, 보안 감사 등 태그 기반 분석 강화

🏁 마무리

이처럼 AWS CLI 또는 Python 스크립트를 활용해 EC2 인스턴스에 자동으로 Private IP 태그를 추가하면, 태그 누락 문제 없이 효율적인 자산 관리가 가능합니다.
지금 바로 자동화 스크립트를 도입해보세요!

 

반응형