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.
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
-
Ringkasan pengimporan image dari AWS
Proses untuk mengimpor image dari AWS ke Compute Engine adalah sebagai berikut:
Dari akun AWS Anda, buat pengguna IAM yang memiliki izin yang diperlukan untuk melakukan ekspor.
- Untuk image AMI, lihat Membuat pengguna AWS IAM untuk ekspor AMI.
- Untuk disk image virtual, lihat Membuat pengguna AWS IAM untuk ekspor disk image virtual.
Dari akun AWS, tetapkan dan lihat setelan konfigurasi.
Dari akun AWS Anda, dengan menggunakan pengguna IAM yang dibuat di langkah sebelumnya, buat kredensial sementara yang dapat digunakan oleh Google Cloud CLI.
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
- Tinjau dokumentasi pertimbangan ekspor dari AWS.
- Tinjau dokumentasi batasan ekspor dari AWS.
- Anda tidak dapat mengimpor image Arm64 menggunakan alat impor image. Untuk mengimpor image Arm64, ikuti petunjuk langkah demi langkah seperti yang dijelaskan dalam Mengimpor boot disk secara manual.
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
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.
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 S3ami-test-bucket
dan memberinya namamy-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
- Buat instance VM baru yang menggunakan image yang dapat di-booting.
- Bagikan image Anda di seluruh project