Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat AMI yang didukung Amazon S3
AMI yang Anda tentukan saat meluncurkan instans menentukan jenis volume root.
Untuk membuat AMI Linux yang didukung Amazon S3, mulailah dari instance yang telah Anda luncurkan dari AMI Linux yang didukung Amazon S3 yang sudah ada. Setelah Anda mengustomisasi instans sesuai kebutuhan, paketkan dan daftarkan AMI baru tersebut, yang dapat Anda gunakan untuk meluncurkan instans baru dengan kustomisasi ini.
Anda tidak dapat membuat AMI Windows yang didukung Amazon S3 karena Windows AMIs tidak mendukung penyimpanan instance untuk volume root.
penting
Hanya jenis instance berikut yang mendukung volume penyimpanan instans sebagai volume root dan memerlukan AMI yang didukung Amazon S3: C1, C3, D2, I2, M1, M2, M3, R3, dan X1.
Proses pembuatan AMI berbeda untuk Amazon EBS yang didukung AMIs. Untuk informasi selengkapnya, lihat Buat AMI yang didukung Amazon EBS-Backed.
Daftar Isi
Ikhtisar penciptaan AMI
Diagram berikut merangkum proses pembuatan AMI dari sebuah instance dengan volume root penyimpanan instance.
Pertama, luncurkan instans dari AMI yang serupa dengan AMI yang ingin Anda buat. Anda dapat menyambungkan ke instans dan mengustomisasikannya. Saat instans diatur sesuai keinginan, Anda dapat membuat paketan. Perlu beberapa menit untuk menyelesaikan proses pembuatan paket. Setelah proses selesai, Anda akan memiliki paketan, yang terdiri atas manifes gambar (image.manifest.xml) dan file (image.part.xx) yang berisi templat untuk volume root. Berikutnya, Anda mengunggah paketan tersebut ke bucket Amazon S3 kemudian mendaftarkan AMI Anda.
catatan
Untuk mengunggah objek ke bucket S3 untuk AMI Linux yang didukung Amazon S3, ACLs harus diaktifkan untuk bucket. Jika tidak, Amazon tidak EC2 akan dapat mengatur ACLs objek yang akan diunggah. Jika bucket tujuan Anda menggunakan setelan yang diberlakukan pemilik bucket untuk Kepemilikan Objek S3, ini tidak akan berfungsi karena ACLs dinonaktifkan. Untuk informasi selengkapnya, lihat Mengontrol kepemilikan objek dan menonaktifkan bucket ACLs Anda.
Saat Anda meluncurkan instans menggunakan AMI yang baru, kami membuat volume root untuk instans tersebut menggunakan paketan yang Anda unggah ke Amazon S3. Ruang penyimpanan yang digunakan oleh paketan di Amazon S3 akan menimbulkan biaya sampai Anda menghapusnya. Untuk informasi selengkapnya, lihat Deregister ke Amazon AMI EC2 .
Jika Anda menambahkan volume penyimpanan instans ke instans Anda selain volume root, pemetaan perangkat blok untuk AMI baru berisi informasi untuk volume ini, dan pemetaan perangkat blok untuk instance yang Anda luncurkan dari AMI baru secara otomatis berisi informasi untuk volume ini. Untuk informasi selengkapnya, lihat Blokir pemetaan perangkat untuk volume di instans Amazon EC2 .
Prasyarat
Sebelum dapat membuat AMI, Anda harus menyelesaikan tugas berikut:
-
Menginstal alat AMI. Untuk informasi selengkapnya, lihat Siapkan alat Amazon EC2 AMI.
-
Instal AWS CLI. Untuk informasi selengkapnya, lihat Memulai dengan AWS CLI.
-
Pastikan Anda memiliki bucket S3 untuk bundel, dan bucket Anda telah ACLs diaktifkan. Untuk informasi selengkapnya tentang mengonfigurasi ACLs, lihat Mengkonfigurasi ACLs.
-
Untuk membuat bucket S3 menggunakan AWS Management Console, buka konsol Amazon S3 https://console.aws.amazon.com/s3/
di dan pilih Create Bucket. -
Untuk membuat bucket S3 dengan AWS CLI, Anda dapat menggunakan perintah mb. Jika versi alat AMI yang terinstal adalah 1.5.18 atau yang lebih baru, Anda juga dapat menggunakan perintah
ec2-upload-bundleuntuk membuat bucket S3. Untuk informasi selengkapnya, lihat ec2-upload-bundle.
-
-
Pastikan file dalam bundel Anda tidak dienkripsi di bucket S3. Jika Anda memerlukan enkripsi untuk AMI Anda, Anda dapat menggunakan AMI yang didukung EBS sebagai gantinya. Untuk informasi selengkapnya, lihat Gunakan enkripsi dengan dukungan EBS AMIs.
-
Pastikan Anda memiliki ID AWS akun Anda. Untuk informasi selengkapnya, lihat Melihat Akun AWS pengenal di Panduan Referensi Manajemen AWS Akun.
-
Pastikan Anda memiliki kredensial untuk menggunakan AWS CLI. Untuk informasi selengkapnya, lihat Authentication and access credentials for the AWS CLI in the User Guide.AWS Command Line Interface
-
Pastikan Anda memiliki sertifikat X.509 dan kunci privat yang sesuai.
-
Jika Anda perlu membuat sertifikat X.509, lihat Mengelola sertifikat penandatanganan. Sertifikat X.509 dan kunci privat digunakan untuk mengenkripsi dan mendekripsi AMI Anda.
-
[Tiongkok (Beijing)] Gunakan sertifikat
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-cn-north-1.pem. -
[AWS GovCloud (AS-Barat)] Gunakan
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pemsertifikat.
-
-
Sambungkan ke instans Anda dan kustomisasikan. Misalnya, Anda dapat menginstal perangkat lunak dan aplikasi, menyalin data, menghapus file sementara, dan mengubah konfigurasi Linux.
Buat AMI dari instans Amazon Linux
Prosedur berikut menjelaskan cara membuat AMI dari instance dengan volume root penyimpanan instance yang menjalankan Amazon Linux 1. Mereka mungkin tidak berfungsi untuk instance yang menjalankan distribusi Linux lainnya.
Untuk mempersiapkan penggunaan alat AMI (khusus instans HVM)
-
Alat AMI memerlukan GRUB Legacy untuk melakukan boot dengan benar. Gunakan perintah berikut untuk menginstal GRUB:
[ec2-user ~]$sudo yum install -y grub -
Instal paket manajemen partisi dengan perintah berikut:
[ec2-user ~]$sudo yum install -y gdisk kpartx parted
Untuk membuat AMI dari instans Amazon Linux dengan volume root penyimpanan instance
Prosedur ini mengasumsikan bahwa Anda telah memenuhi prasyarat dalam Prasyarat.
Dalam perintah berikut, ganti masing-masing user input placeholder dengan informasi Anda sendiri.
-
Unggah kredensial Anda ke instans. Kami menggunakan kredensi ini untuk memastikan bahwa hanya Anda dan Amazon yang EC2 dapat mengakses AMI Anda.
-
Buat direktori sementara pada instans untuk kredensial Anda sebagai berikut:
[ec2-user ~]$mkdir /tmp/certIni memungkinkan Anda mengecualikan kredensial Anda dari gambar yang dibuat.
-
Salin sertifikat X.509 dan kunci privat terkait dari komputer Anda ke direktori
/tmp/certpada instans dengan alat penyalin aman, seperti scp. Opsi-idalam perintah scp berikut adalah kunci privat yang Anda gunakan untuk terhubung ke instan Anda dengan SSH, bukan kunci privat X.509. Sebagai contoh:my-private-key.pemyou@your_computer:~ $scp -imy-private-key.pem/path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem/path/to/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pemec2-user@ec2-203-0-113-25.compute-1.amazonaws.com:/tmp/cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717 0.7KB/s 00:00 cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 685 0.7KB/s 00:00
Atau, karena ini adalah file teks biasa, Anda dapat membuka sertifikat dan mengetikannya dalam editor teks dan menyalin kontennya ke dalam file baru di
/tmp/cert. -
-
Siapkan paketan untuk diunggah ke Amazon S3 dengan menjalankan perintah ec2-bundle-vol dari dalam instans Anda. Pastikan untuk menentukan opsi
-euntuk mengecualikan direktori tempat kredensial Anda disimpan. Secara default, proses paketan mengecualikan file yang mungkin berisi informasi sensitif. File ini termasuk*.sw,*.swo,*.swp,*.pem,*.priv,*id_rsa*,*id_dsa**.gpg,*.jks,*/.ssh/authorized_keys, dan*/.bash_history. Untuk menyertakan semua file ini, gunakan opsi--no-filter. Untuk menyertakan beberapa file ini, gunakan opsi--include.penting
Secara default, proses pembuatan paketan AMI membuat koleksi file yang dikompresi dan dienkripsi di direktori
/tmpyang mewakili volume root Anda. Jika tidak memiliki cukup ruang disk di/tmpuntuk menyimpan paketan, Anda perlu menentukan lokasi berbeda untuk paketan yang akan disimpan dengan opsi-d. Beberapa instance memiliki penyimpanan sementara yang terpasang pada/path/to/bundle/storage/mntatau/media/ephemeral0yang dapat Anda gunakan, atau Anda juga dapat membuat, melampirkan, dan memasang volume Amazon EBS baru) untuk menyimpan bundel. Untuk informasi selengkapnya, lihat Membuat volume Amazon EBS di Panduan Pengguna Amazon EBS.-
Anda harus menjalankan perintah ec2-bundle-vol sebagai root. Untuk sebagian besar perintah, Anda dapat menggunakan sudo untuk mendapatkan izin yang lebih tinggi, tetapi dalam kasus ini, Anda harus menjalankan sudo -E su untuk menjaga variabel lingkungan Anda.
[ec2-user ~]$sudo -E suPerhatikan bahwa perintah bash kini mengidentifikasi Anda sebagai pengguna root, dan bahwa tanda dolar telah diganti dengan tanda pagar, menandakan bahwa Anda berada dalam shell root:
[root ec2-user]#
-
Untuk membuat paketan AMI, jalankan perintah ec2-bundle-vol sebagai berikut:
[root ec2-user]#ec2-bundle-vol -k /tmp/cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem-c /tmp/cert/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem-u123456789012-r x86_64 -e /tmp/cert --partitiongptPerlu waktu beberapa menit untuk membuat gambar. Ketika perintah ini selesai, direktori Anda
/tmp(atau non-default) berisi bundel (image.manifest.xml, ditambah beberapaimage.part.xxfile). -
Keluar dari shell root.
[root ec2-user]#exit
-
-
(Opsional) Untuk menambahkan volume penyimpanan instans, edit pemetaan perangkat blok dalam file
image.manifest.xmluntuk AMI Anda. Untuk informasi selengkapnya, lihat Blokir pemetaan perangkat untuk volume di instans Amazon EC2 .-
Membuat cadangan file
image.manifest.xmlAnda.[ec2-user ~]$sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak -
Format ulang file
image.manifest.xmlagar lebih mudah dibaca dan diubah.[ec2-user ~]$sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/image.manifest.xml -
Edit pemetaan perangkat blok di
image.manifest.xmleditor teks. Contoh di bawah ini menunjukkan entri baru untuk volume penyimpanan instansephemeral1.catatan
Untuk daftar file yang dikecualikan, lihat ec2-bundle-vol.
<block_device_mapping> <mapping> <virtual>ami</virtual> <device>sda</device> </mapping> <mapping> <virtual>ephemeral0</virtual> <device>sdb</device> </mapping><mapping> <virtual>ephemeral1</virtual> <device>sdc</device> </mapping><mapping> <virtual>root</virtual> <device>/dev/sda1</device> </mapping> </block_device_mapping> -
Simpan file
image.manifest.xml, dan tutup editor teks Anda.
-
-
Untuk mengunggah paketan Anda ke Amazon S3, jalankan perintah ec2-upload-bundle sebagai berikut.
[ec2-user ~]$ec2-upload-bundle -bamzn-s3-demo-bucket/bundle_folder/bundle_name-m /tmp/image.manifest.xml -ayour_access_key_id-syour_secret_access_keypenting
Untuk mendaftarkan AMI Anda di Wilayah selain AS Timur (Virginia Utara), Anda harus menentukan Wilayah target dengan opsi
--regiondan jalur bucket yang sudah ada di Wilayah target atau jalur bucket unik yang dapat dibuat di Wilayah target. -
(Opsional) Setelah bundel diunggah ke Amazon S3, Anda dapat menghapus bundel dari direktori
/tmppada instans menggunakan perintah rm berikut:[ec2-user ~]$sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/imagepenting
Jika Anda menentukan jalur dengan opsi
-ddi TahapĀ 2, gunakan jalur tersebut, alih-alih/path/to/bundle/storage/tmp. -
Untuk mendaftarkan AMI Anda, jalankan perintah register-image sebagai berikut.
[ec2-user ~]$aws ec2 register-image --image-locationamzn-s3-demo-bucket/bundle_folder/bundle_name/image.manifest.xml --nameAMI_name--virtualization-typehvmpenting
Jika sebelumnya Anda menentukan Wilayah untuk perintah ec2-upload-bundle, tentukan Wilayah itu untuk perintah ini.