반응형
기억을 지배하길 원하지만..... 쉽지 않으니 이렇게 또 끄적 거린다.
AWS에서 만든 이미지(AMI)를 동일 계정의 다른 리전으로 복사할때 사용하는 방법으로 UI상으로 해도 되지만 필요에 따라 CLI작업을 할때 사용하는 명령어이다.
Step 1. 먼저 복사할 이미지의 ID (AMI ID)를 확인한다.
aws [--profile [PROFILE_NAME]] ec2 describe-images \
--region "REGION_ID" \
--output json \
--filters "Name=name,Values={AMI_NAME}" | jq -r '.Images[0].ImageId'
"jq" 명령어는 json을 좀더 쉽게 보기 위한 tool로서 사전에 설치가 안되어 있을 경우 정상적으로 실행이 어려우니 아래 명령어로 사전에 설치 한다.
- linux ( centos / RHEL / amazon-linux)등
yum install -y jq
- mac os
brew install jq
- ubuntu
apt install jq
Step2. 다른 리전으로 복사 한다.
$ Destination_region="ap-northeast-1"
$ Source_Region="ap-northeast-2"
$ aws ec2 copy-image --region "${Destination_region}" \
--name "{AMI_NAME}" \
--source-region "${Source_Region}" \
--source-image-id "{복사할_AMI_ID}" \
--description "Description"
# 결과
{
"ImageId": "복사된AMI_ID"
}
Step3. 복사된 AMI확인
$ aws ec2 describe-images --region "ap-northeast-1" \
--image-id "{복사된AMI_ID}" \
--output json| jq
Step4. 복사한 AMI에 tag설정
aws ec2 create-tags --region "{REGION_ID}" \
--resources "{AMI_ID}" \
--tags Key="{tag_name}",Value="{tag_value}"
이후 다시 Step3을 해보면 tag가 설정 된것을 확인 할 수 있다.
추가로 aws내 다른 ID에 동일 AMI로 사용하고자 할 경우 권한을 추가해주면 된다.
$ OTHER_AWS_ACCOUNT_ID=123456789000
$ aws ec2 modify-image-attribute \
--region "{AMI가 있는 Region_NAME}" \
--image-id "{AMI_ID}" \
--launch-permission "Add=[{UserId=${OTHER_AWS_ACCOUNT_ID}}]"
* 추가한 ID에 대해 권한은 제거하고자 할 경우 "Add" 대신 " Remove"한다.
반응형