2장. AWS AMI 이미지 생성 및 업로드
AWS(Amazon Web Services) 클라우드에서 사용자 지정 RHEL 시스템 이미지를 사용하려면 해당 출력 유형을 사용하여 Image Builder로 시스템 이미지를 생성하고, 이미지를 업로드하도록 시스템을 구성하고, AWS 계정에 이미지를 업로드합니다.
2.1. AWS AMI 이미지 업로드 준비
AWS AMI 이미지를 업로드하기 전에 이미지를 업로드할 시스템을 구성해야 합니다.
사전 요구 사항
- AWS IAM 계정 관리자에 Access Key ID가 구성되어 있어야 합니다.
- 쓰기 가능한 S3 버킷이 준비되어 있어야 합니다.
절차
Python 3 및
pip
툴을 설치합니다.# yum install python3 # yum install python3-pip
pip
를 사용하여 AWS 명령행 툴 을 설치합니다.# pip3 install awscli
다음 명령을 실행하여 프로필을 설정합니다. 터미널에서 인증 정보, 지역 및 출력 형식을 제공하라는 메시지를 표시합니다.
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
버킷 이름을 정의하고 다음 명령을 사용하여 버킷을 생성합니다.
$ BUCKET=bucketname $ aws s3 mb s3://$BUCKET
bucketname 을 실제 버킷 이름으로 교체합니다. 이는 전역적으로 고유한 이름이어야 합니다. 결과적으로 버킷이 생성됩니다.
S3 버킷에 액세스할 수 있는 권한을 부여하려면 이전에 수행하지 않은 경우 AWS IAM(Identity and Access Management)에서
vmimport
S3 역할을 생성합니다.$ printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }' > trust-policy.json $ printf '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::%s", "arn:aws:s3:::%s/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] }' $BUCKET $BUCKET > role-policy.json $ aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json $ aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json
추가 리소스