AWS에서 이미지 가져오기


Amazon Web Services(AWS)의 S3 버킷에 저장된 Amazon Machine Image(AMI) 또는 가상 디스크 이미지(VMDK 또는 VHD)가 있는 경우 Google Cloud CLI를 사용하여 Google Cloud로 이미지를 가져올 수 있습니다.

또는 부팅 디스크 수동으로 가져오기의 안내에 따라 이미지를 가져올 수 있습니다.

가져오기 옵션의 전체 목록은 마이그레이션 경로 선택을 참조하세요.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

AWS에서 이미지 가져오기 개요

AWS에서 Compute Engine으로 이미지를 가져오는 프로세스는 다음과 같습니다.

  1. AWS 계정에서 내보내기를 수행하는 데 필요한 권한이 있는 IAM 사용자를 만듭니다.

  2. AWS 계정에서 구성을 설정하고 확인합니다.

  3. AWS 계정에서 이전 단계에서 만든 IAM 사용자를 사용하여 Google Cloud CLI에서 사용할 수 있는 임시 사용자 인증 정보를 생성합니다.

  4. Google Cloud에서 Google Cloud CLI를 사용하여 이미지를 가져옵니다. Google Cloud CLI는 다음 단계를 완료합니다.

    • 이미지를 AWS에서 Compute Engine으로 가져옵니다.
    • Compute Engine의 지정된 프로젝트에서 사용 가능한 이미지 목록에 이미지를 추가합니다.

제한 및 제약사항

AWS IAM 사용자 만들기

AWS 루트 사용자 계정을 사용하여 사용자 인증 정보를 생성하는 것은 좋지 않을 수 있으므로, 보안상의 이유로 IAM 사용자를 한 명 이상 만들고 AWS에서 AMI 또는 가상 디스크를 내보내는 데 필요한 최소 권한을 부여하는 것이 좋습니다.

IAM 사용자에게 필요한 최소 권한은 AWS에서 내보내려는 이미지 유형(AMI 또는 가상 디스크 이미지)에 따라 다릅니다.

AMI 내보내기를 위한 AWS IAM 사용자 만들기

이 사용자를 만들려면 AWS 계정에서 IAM 사용자 만들기를 참조하세요.

이 사용자에게는 다음과 같은 필수 권한 및 서비스 역할이 있어야 합니다.

가상 디스크 이미지 내보내기를 위한 AWS IAM 사용자 만들기

이 사용자를 만들려면 AWS 계정에서 IAM 사용자 만들기를 참조하세요.

이 사용자에게 필요한 최소 권한은 다음 JSON IAM 정책에 설명되어 있습니다. IMAGE_FILE_PATH를 가져오려는 이미지 파일의 경로로 바꿉니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": ["arn:aws:s3:::IMAGE_FILE_PATH"]
    },
  ]
}

구성 설정 및 확인

IAM 사용자를 만든 후에는 환경을 설정하고 구성해야 합니다.

구성을 설정하고 확인하려면 다음 명령어를 실행합니다.

aws configure

이 명령어에 대한 자세한 내용은 구성 설정 및 확인을 참조하세요.

임시 사용자 인증 정보 생성

IAM 사용자를 만들고 구성한 후에는 gcloud compute images import 명령어에서 사용할 수 있는 임시 사용자 인증 정보를 만들어야 합니다.

이 사용자 인증 정보는 다음으로 구성됩니다.

  • 액세스 키 ID: aws-access-key-id
  • 보안 비밀 액세스 키: aws-secret-access-key
  • 세션 토큰: aws-session-token

이 임시 AWS IAM 사용자 인증 정보는 IAM 사용자가 생성해야 합니다. 선택한 IAM 사용자에게는 필요한 모든 권한이 있어야 합니다.

임시 사용자 인증 정보를 생성하려면 AWS 명령줄 도구를 사용하거나 프로그래매틱 방식으로 사용자 인증 정보를 생성해야 합니다. AWS 명령줄을 설치하려면 AWS CLI 버전 2 설치를 참조하세요.

예를 들어 다음 명령어는 3,600초 후에 만료되는 사용자 인증 정보를 생성합니다. Google Cloud로 이미지를 가져오기에 충분한 시간을 지정해야 합니다.

aws sts get-session-token --duration-seconds 3600

임시 사용자 인증 정보 생성에 대한 자세한 내용은 AWS 리소스에 임시 사용자 인증 정보 사용을 참조하세요.

Compute Engine으로 이미지 가져오기

AWS IAM 사용자를 만들고 임시 사용자 인증 정보를 생성한 후에는 이미지를 Compute Engine으로 가져올 수 있습니다.

AWS에서 AMI 가져오기

  1. AWS S3 버킷을 설정합니다. 이 버킷은 Google Cloud CLI가 AMI를 내보낼 수 있는 임시 스토리지 위치로 사용됩니다. Compute Engine으로 가져오기가 성공적으로 완료되면 Google Cloud CLI가 이 버킷에서 AMI를 삭제합니다.

    이 버킷은 AMI와 동일한 리전에 있어야 합니다.

  2. AMI를 가져옵니다. AWS에서 AMI를 가져오려면 gcloud compute images import 명령어를 사용합니다.

    gcloud compute images import IMAGE_NAME \
        --aws-region=AWS_REGION \
        --aws-access-key-id=AWS_ACCESS_KEY_ID \
        --aws-secret-access-key=AWS_SECRET_ACCESS_KEY \
        --aws-session-token=AWS_SESSION_TOKEN \
        --aws-ami-id=AWS_AMI_ID \
        --aws-ami-export-location=AWS_AMI_EXPORT_LOCATION \
        --os=OS
    

    다음을 바꿉니다.

    • IMAGE_NAME: 만들 AMI 이미지의 이름입니다.
    • AWS_REGION: 가져오려는 이미지의 AWS 리전입니다.
    • AWS_ACCESS_KEY_ID: 임시 AWS 사용자 인증 정보에 대한 액세스 키 ID입니다. 이 ID는 AWS 보안 토큰 서비스를 사용하여 생성해야 합니다.
    • AWS_SECRET_ACCESS_KEY: 임시 AWS 사용자 인증 정보의 보안 비밀 액세스 키입니다. 이 키는 AWS 보안 토큰 서비스를 사용하여 생성해야 합니다.
    • AWS_SESSION_TOKEN: 임시 AWS 사용자 인증 정보의 세션 토큰입니다. 이 세션 토큰은 AWS 보안 토큰 서비스를 사용하여 생성해야 합니다.
    • AWS_AMI_ID: 가져올 이미지의 AWS AMI ID입니다.
    • AWS_AMI_EXPORT_LOCATION: 이미지를 내보낼 AWS S3 버킷 위치입니다. 이 버킷은 AMI와 동일한 리전에 있어야 합니다.
    • OS: 가져올 디스크 이미지의 운영체제입니다.

    예시

    예를 들어 S3 버킷 ami-test-bucket에서 ID가 ami-04d75016789164863인 AMI 이미지를 가져오고 이름을 my-ami-test-image로 지정하려면 명령어는 다음과 같습니다.

    gcloud compute images import my-ami-test-image \
        --aws-region=us-east-2 \
        --aws-access-key-id=ASIAXS3ZFH4O3WWGMMH5 \
        --aws-secret-access-key=aW/uxvQD68A+hv3m5oQ4zFfaKiS+za+X/kRlBvx0 - \
        --aws-session-token=IQoJb3JpZ2luX2VjEEQaCWPIEwL7Qi76PyEIfFyj88...== \
        --aws-ami-id=ami-04d75016789164863 \
        --aws-ami-export-location=s3://ami-test-bucket \
        --os=ubuntu-1804
    

AWS에서 가상 디스크 이미지 가져오기

AWS에서 가상 디스크 이미지를 가져오려면 gcloud compute images import 명령어를 사용합니다.

gcloud compute images import IMAGE_NAME \
    --aws-region=AWS_REGION \
    --aws-access-key-id=AWS_ACCESS_KEY_ID \
    --aws-secret-access-key=AWS_SECRET_ACCESS_KEY \
    --aws-session-token=AWS_SESSION_TOKEN \
    --aws-source-ami-file-path=DISK_IMAGE_FILE_PATH \
    --os=OS

다음을 바꿉니다.

  • IMAGE_NAME: 생성할 디스크 이미지의 이름입니다.
  • AWS_REGION: 가져오려는 이미지의 AWS 리전입니다.
  • AWS_ACCESS_KEY_ID: 임시 AWS 사용자 인증 정보에 대한 액세스 키 ID입니다. 이 ID는 AWS 보안 토큰 서비스를 사용하여 생성해야 합니다.
  • AWS_SECRET_ACCESS_KEY: 임시 AWS 사용자 인증 정보의 보안 비밀 액세스 키입니다. 이 키는 AWS 보안 토큰 서비스를 사용하여 생성해야 합니다.
  • AWS_SESSION_TOKEN: 임시 AWS 사용자 인증 정보의 세션 토큰입니다. 이 세션 토큰은 AWS 보안 토큰 서비스를 사용하여 생성해야 합니다.
  • DISK_IMAGE_FILE_PATH: 가져오려는 가상 디스크 이미지 파일의 S3 리소스 경로입니다.
  • OS: 가져올 디스크 이미지의 운영체제입니다.

예시

예를 들어 S3 버킷 image-test-bucket에서 ubuntu1804.vmdk 가상 디스크를 가져오고 이름을 my-test-image로 지정하려면 명령어는 다음과 같습니다.

gcloud compute images import my-test-image \
    --aws-region=us-east-2 \
    --aws-access-key-id=ASIAXS3ZFH4O3WWGMMH5 \
    --aws-secret-access-key=aW/uxvQD68A+hv3m5oQ4zFfaKiS+za+X/kRlBvx0 - \
    --aws-session-token=IQoJb3JpZ2luX2VjEEQaCWPIEwL7Qi76PyEIfFyj88...== \
    --aws-source-ami-file-path=s3://image-test-bucket/ubuntu1804.vmdk \
    --os=ubuntu-1804

다음 단계