6.5.3. Amazon Web Services S3 구성
MTC(Migration Toolkit for Containers)의 복제 리포지토리로 AWS(Amazon Web Services) S3 스토리지 버킷을 구성할 수 있습니다.
사전 요구 사항
- 소스 및 대상 클러스터에서 AWS S3 스토리지 버킷에 액세스할 수 있어야 합니다.
- AWS CLI가 설치되어 있어야 합니다.
스냅샷 복사 방법을 사용하는 경우:
- EC2 EBS(Elastic Block Storage)에 액세스할 수 있어야 합니다.
- 소스 및 대상 클러스터는 동일한 지역에 있어야 합니다.
- 소스 및 대상 클러스터는 동일한 스토리지 클래스를 보유해야 합니다.
- 스토리지 클래스는 스냅샷과 호환 가능해야 합니다.
절차
AWS S3 버킷을 생성합니다.
$ aws s3api create-bucket \ --bucket <bucket> \ 1 --region <bucket_region> 2
IAM 사용자
velero
를 생성합니다.$ aws iam create-user --user-name velero
EC2 EBS 스냅샷 정책을 생성합니다.
$ cat > velero-ec2-snapshot-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSnapshot", "ec2:DeleteSnapshot" ], "Resource": "*" } ] } EOF
하나 또는 모든 S3 버킷에 대한 AWS S3 액세스 정책을 생성합니다.
$ cat > velero-s3-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::<bucket>/*" 1 ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::<bucket>" 2 ] } ] } EOF
출력 예
"Resource": [ "arn:aws:s3:::*"
EC2 EBS 정책을
velero
에 연결합니다.$ aws iam put-user-policy \ --user-name velero \ --policy-name velero-ebs \ --policy-document file://velero-ec2-snapshot-policy.json
AWS S3 정책을
velero
에 연결합니다.$ aws iam put-user-policy \ --user-name velero \ --policy-name velero-s3 \ --policy-document file://velero-s3-policy.json
velero
에 대한 액세스 키를 생성합니다.$ aws iam create-access-key --user-name velero { "AccessKey": { "UserName": "velero", "Status": "Active", "CreateDate": "2017-07-31T22:24:41.576Z", "SecretAccessKey": <AWS_SECRET_ACCESS_KEY>, 1 "AccessKeyId": <AWS_ACCESS_KEY_ID> 2 } }
AWS_SECRET_ACCESS_KEY
및AWS_ACCESS_KEY_ID
를 기록합니다. 인증 정보를 사용하여 AWS를 복제 리포지토리로 추가합니다.