Mengimpor image dari AWS


Jika memiliki Amazon Machine Image (AMI) atau virtual disk image (VMDK atau VHD) yang disimpan dalam bucket S3 di Amazon Web Services (AWS), Anda dapat menggunakan Google Cloud CLI untuk mengimpor image ini ke dalam Google Cloud.

Atau, Anda dapat mengimpor image dengan mengikuti petunjuk untuk Mengimpor boot disk secara manual.

Untuk daftar lengkap opsi impor, lihat Memilih jalur migrasi.

Sebelum memulai

  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

Ringkasan pengimporan image dari AWS

Proses untuk mengimpor image dari AWS ke Compute Engine adalah sebagai berikut:

  1. Dari akun AWS Anda, buat pengguna IAM yang memiliki izin yang diperlukan untuk melakukan ekspor.

  2. Dari akun AWS, tetapkan dan lihat setelan konfigurasi.

  3. Dari akun AWS Anda, dengan menggunakan pengguna IAM yang dibuat di langkah sebelumnya, buat kredensial sementara yang dapat digunakan oleh Google Cloud CLI.

  4. Di Google Cloud, impor image menggunakan Google Cloud CLI. Google Cloud CLI menyelesaikan langkah-langkah berikut:

    • Mengimpor image dari AWS ke Compute Engine.
    • Menambahkan image ke daftar image yang tersedia di project yang Anda tentukan di Compute Engine.

Batasan dan pembatasan

Membuat pengguna AWS IAM

Karena itu mungkin bukan praktik terbaik untuk membuat kredensial menggunakan akun pengguna root AWS Anda. Untuk alasan keamanan, Google merekomendasikan agar Anda membuat satu atau beberapa pengguna IAM dan memberi mereka izin minimum yang diperlukan untuk mengekspor AMI atau disk virtual dari AWS.

Izin minimum yang diperlukan untuk pengguna IAM bergantung pada jenis image (AMI atau disk image virtual) yang ingin Anda ekspor dari AWS.

Membuat pengguna AWS IAM untuk ekspor AMI

Untuk membuat pengguna ini, lihat membuat pengguna IAM di akun AWS Anda.

Pengguna ini harus memiliki peran layanan dan izin yang diperlukan berikut:

Membuat pengguna AWS IAM untuk ekspor disk image virtual

Untuk membuat pengguna ini, lihat membuat pengguna IAM di akun AWS Anda.

Izin minimum yang diperlukan oleh pengguna ini diuraikan dalam kebijakan IAM JSON berikut. Ganti IMAGE_FILE_PATH dengan jalur ke file image yang ingin Anda impor.

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

Menyiapkan dan melihat setelan konfigurasi

Setelah membuat pengguna IAM, Anda perlu menyetel dan mengonfigurasi lingkungan.

Untuk menyiapkan dan melihat setelan konfigurasi, jalankan perintah berikut:

aws configure

Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat Menetapkan dan melihat setelan konfigurasi.

Membuat kredensial sementara

Setelah membuat dan mengonfigurasi pengguna IAM, Anda harus membuat kredensial sementara yang dapat digunakan oleh perintah gcloud compute images import.

Kredensial pengguna ini terdiri dari hal berikut:

  • ID kunci akses: aws-access-key-id
  • Kunci akses rahasia: aws-secret-access-key
  • Token sesi: aws-session-token

Kredensial pengguna AWS IAM ini harus dibuat dari pengguna IAM. Pengguna IAM yang dipilih harus memiliki semua izin yang diperlukan.

Untuk membuat kredensial sementara, Anda harus menggunakan alat command line AWS atau Anda dapat membuat kredensial secara terprogram. Untuk menginstal command line AWS, lihat Menginstal AWS CLI versi 2.

Misalnya, perintah berikut menghasilkan kredensial yang masa berlakunya akan habis dalam 3600 detik. Pastikan Anda menentukan cukup waktu untuk mengimpor image ke Google Cloud.

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

Untuk informasi selengkapnya tentang cara membuat kredensial sementara, lihat artikel Menggunakan Kredensial Sementara dengan Resource AWS.

Mengimpor image ke Compute Engine

Setelah membuat pengguna IAM AWS dan membuat kredensial pengguna sementara, sekarang Anda dapat mengimpor image ke Compute Engine.

Mengimpor AMI dari AWS

  1. Siapkan bucket AWS S3. Bucket ini digunakan sebagai lokasi penyimpanan sementara tempat Google Cloud CLI dapat mengekspor AMI. Google Cloud CLI akan menghapus AMI dari bucket ini segera setelah impor ke Compute Engine berhasil diselesaikan.

    Bucket ini harus berada di region yang sama dengan AMI.

  2. Impor AMI. Untuk mengimpor AMI dari AWS, gunakan perintah 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
    

    Ganti kode berikut:

    • IMAGE_NAME: nama image AMI yang akan dibuat.
    • AWS_REGION: Region AWS dari image yang ingin Anda impor.
    • AWS_ACCESS_KEY_ID: ID kunci akses untuk kredensial AWS sementara. ID ini harus dibuat menggunakan AWS Security Token Service.
    • AWS_SECRET_ACCESS_KEY: kunci akses rahasia untuk kredensial AWS sementara. Kunci ini harus dibuat menggunakan AWS Security Token Service.
    • AWS_SESSION_TOKEN: token sesi untuk kredensial AWS sementara. Token sesi ini harus dibuat menggunakan Layanan Token Keamanan AWS.
    • AWS_AMI_ID: ID AMI AWS image yang akan diimpor.
    • AWS_AMI_EXPORT_LOCATION: Lokasi bucket AWS S3 tempat Anda ingin mengekspor image. Bucket ini harus berada di region yang sama dengan AMI.
    • OS: sistem operasi disk image yang sedang diimpor.

    Contoh

    Misalnya, untuk mengimpor image AMI yang memiliki ID ami-04d75016789164863 dari bucket S3 ami-test-bucket dan memberinya nama my-ami-test-image, perintah Anda mungkin akan terlihat seperti berikut:

    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
    

Mengimpor disk image virtual dari AWS

Untuk mengimpor disk image virtual dari AWS, gunakan perintah 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

Ganti kode berikut:

  • IMAGE_NAME: nama disk image yang akan dibuat.
  • AWS_REGION: Region AWS dari image yang ingin Anda impor.
  • AWS_ACCESS_KEY_ID: ID kunci akses untuk kredensial AWS sementara. ID ini harus dibuat menggunakan AWS Security Token Service.
  • AWS_SECRET_ACCESS_KEY: kunci akses rahasia untuk kredensial AWS sementara. Kunci ini harus dibuat menggunakan AWS Security Token Service.
  • AWS_SESSION_TOKEN: token sesi untuk kredensial AWS sementara. Token sesi ini harus dibuat menggunakan Layanan Token Keamanan AWS.
  • DISK_IMAGE_FILE_PATH: Jalur resource S3 dari file disk image virtual yang ingin Anda impor.`
  • OS: sistem operasi disk image yang sedang diimpor.

Contoh

Misalnya, untuk mengimpor disk virtual ubuntu1804.vmdk dari bucket S3 image-test-bucket dan memberinya nama my-test-image, perintah Anda mungkin akan terlihat seperti berikut:

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

Langkah selanjutnya