반응형
Shell 스크립트로 Amazon Machine Image(AMI) 생성하기
1. 실행 중인 EC2 인스턴스 조회
AMI 생성을 위해 먼저 대상 인스턴스를 확인합니다.
instance-search.sh 스크립트
#!/bin/bash
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" \
--query 'Reservations[*].Instances[*].{A_Name:Tags[?Key==`Name`]|[0].Value,B_Instance:InstanceId,C_Type:InstanceType,D_PrivateIP:PrivateIpAddress,E_PublicIP:PublicIpAddress,F_Status:State.Name,G_CreatedDate:LaunchTime}' \
--output table
./instance-search.sh
>> output <<

728x90
2. AMI 생성 스크립트
createami.sh 스크립트
#!/bin/bash
# 기본값 설정
INSTANCE_ID=${1:-i-1111}
IMAGE_NAME="prod-web-ami"
CURRENT_DATE=$(date +%Y%m%d)
IMAGE_VERSION=${2:-v1.1.1}
IMAGE_DESCRIPTION="operating(production) web server ami"
# 도움말
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
echo
echo "Usage: $0 [INSTANCE_ID] [IMAGE_VERSION]"
echo
echo "Example:"
echo " $0 i-0abc1234 v1.2.0"
echo
exit 0
fi
# AMI 생성
aws ec2 create-image \
--instance-id "$INSTANCE_ID" \
--name "${IMAGE_NAME}-${CURRENT_DATE}-${IMAGE_VERSION}" \
--description "$IMAGE_DESCRIPTION" \
--tag-specifications \
'ResourceType=image,Tags=[{Key=Name,Value=prod-web-ami}]' \
'ResourceType=snapshot,Tags=[{Key=Name,Value=prod-web-ami}]' \
--no-reboot
- 주요 옵션 설명
- --no-reboot : 인스턴스를 재부팅하지 않고 AMI 생성
- --tag-specifications : AMI 및 Snapshot에 태그 자동 적용
스크립트 실행
chmod +x createami.sh
./createami.sh i-0abc1234 v1.2.0
3. AMI 및 스냅샷 확인
AWS 콘솔에서 다음 경로로 확인할 수 있습니다.
AMI 확인
- EC2 > 이미지 > AMI
스냅샷 확인
- Elastic Block Store > 스냅샷
728x90
반응형
'퍼블릭 클라우드' 카테고리의 다른 글
| 클라우드 취약점 점검 가이드(KISA, 한국인터넷진흥원) (0) | 2022.04.25 |
|---|---|
| AL2022(Amazon Linux 2022) 운영체제 (0) | 2022.04.22 |
| AWS EC2 접속 시 슬랙으로 알림 (0) | 2021.10.30 |
| [aws] Amazon ECR(Amazon Elastic Container Registry) 구성 (0) | 2021.10.30 |
| AWS EC2 인스턴스에 웹 브라우저를 통해 연결하기 (0) | 2021.10.26 |