Bagaimana cara kerja Mesin Gambar Amazon?

9

Saya telah melihat banyak tutorial dan semacamnya tentang membuat AMI, tetapi saya tidak pernah benar-benar memahami konsep lengkap AMI. Apakah tautan ke instance, atau disimpan dan tidak pernah berubah. Juga, apakah gambar menyertakan penyimpanan lokal dan semua paket dll yang diinstal pada instance itu, atau apakah itu hanya salinan konfigurasi dari instance tertentu. Terima kasih

Ahli
sumber

Jawaban:

10

Dalam bentuknya yang paling sederhana, AMI adalah deskripsi mesin virtual - jenis virtualisasi, arsitektur (32/64 bit), kernel, dan perangkat root. Dalam kata-kata Amazon:

AMI adalah templat yang berisi konfigurasi perangkat lunak (sistem operasi, server aplikasi, dan aplikasi) yang dapat Anda jalankan di lingkungan komputasi Amazon yang sudah terbukti.

Mesin virtual EC2 adalah mesin virtual, yang berjalan pada perangkat keras Amazon. Agar instance dimulai, ada sejumlah informasi minimum yang diperlukan. Selain itu, tipe instance yang berbeda mendukung konfigurasi yang berbeda (mis. Beberapa tidak mendukung AMI 32-bit).

Setiap AMI memiliki pengidentifikasi (mis. Ami-a1b2c3d4), dan konfigurasi AMI itu tidak dapat diubah setelah pembuatan. (Namun Anda dapat, menimpa banyak pengaturan pada waktu peluncuran, atau dalam beberapa kasus, bahkan setelah sebuah instance diluncurkan).

Dalam hal volume root, AMI berisi referensi ke volume yang ada (misalnya mereka referensi snapshot untuk instance yang didukung EBS, atau ke bagian gambar dalam kasus instance yang didukung S3).

AMI juga mengandung beberapa tingkat pengecekan kesalahan - biasanya id pengguna untuk menunjukkan kepemilikan, kunci enkripsi (yang mengenkripsi gambar), dan tanda tangan (untuk memverifikasi integritas gambar). Anda bisa mendapatkan ide bagus tentang apa itu AMI dengan melihat file manifes yang dibuat saat membuat instance yang didukung S3 - itu hanya file yang berisi data dan referensi ke item lain (penyimpanan, kernel, dll).

Sebuah gambar merujuknya sebagai pemetaan perangkat blok - ini menentukan perangkat (mis. / Dev / sda1) dan sumber data (sesaat (dan bagian S3 jika relevan) atau snapshot ebs). Karena bagian S3 ditandatangani, dan foto-foto tidak dapat diubah (hanya dihapus), meluncurkan instance dari AMI (tanpa mengabaikan pengaturannya) harus selalu menghasilkan instance dengan setup perangkat lunak yang sama. (Perhatikan masih mungkin untuk instance yang diluncurkan dari AMI yang sama untuk berbeda dalam status operasinya karena data pengguna, atau pemetaan blok perangkat yang berbeda (mis. Instans mikro tidak memiliki penyimpanan sementara, sementara jenis instance lain melakukannya). di sini, volume terlampir disimpan secara terpisah dari AMI, tetapi rujukan oleh AMI sedemikian rupa sehingga volume tidak dapat diubah.

Sebelum meluncurkan instance dari AMI, Anda dapat menimpa pemetaan perangkat blok (mis. Untuk menambahkan volume EBS tambahan, atau volume fana lain jika jenis instance mendukungnya). Dalam hal volume EBS, setelah instance diluncurkan, Anda dapat melepaskan volume root dan melampirkan volume EBS yang berbeda secara bersamaan.

Jadi, untuk menjawab pertanyaan Anda secara singkat: Apakah tautan ke instance, atau disimpan dan tidak pernah diubah. Itu disimpan dan tidak pernah berubah.

Juga, apakah gambar menyertakan penyimpanan lokal dan semua paket dll yang diinstal pada instance itu, atau apakah itu hanya salinan konfigurasi dari instance tertentu. Gambar termasuk penyimpanan lokal dan semua paket dll yang diinstal pada contoh itu. (Biasanya, ini hanya volume root, tetapi AMI dapat diatur untuk meluncurkan instance dengan beberapa, volume yang dihuni).

cyberx86
sumber
Jadi mereka adalah referensi ke EBS dari instance, jadi jika status EBS berubah setelah penciptaan AMI, negara AMI juga akan berubah?
Wiz
Tidak, mereka merujuk snapshot EBS, bukan volume EBS sendiri. Snapshot EBS tidak dapat berubah, bahkan jika volume EBS berubah. Jika Anda meluncurkan AMI yang diberikan, itu akan memuat referensi snapshot EBS itu. Jika mau, Anda dapat menentukan snapshot EBS yang berbeda untuk digunakan saat meluncurkan instance, atau Anda dapat mengganti volume EBS yang digunakan setelah instance diluncurkan.
cyberx86
3

AMI secara efektif adalah salinan master dari sistem file root yang digunakan untuk meluncurkan instance EC2 baru, bersama dengan beberapa data meta seperti arsitektur. Ini berisi sistem operasi lengkap dan paket perangkat lunak yang biasanya Anda temukan ketika Anda boot salinan baru distro itu, ditambah apa pun yang menurut pembuatnya AMI cocok untuk ditambahkan.

Jika Anda membuat AMI dari sebuah instance, Anda pada dasarnya membuat salinan sistem file root dari instance tersebut, yang nantinya dapat digunakan untuk membuat instance baru.

Jawaban saya di sini mungkin juga membantu: https://stackoverflow.com/a/7895489/111286

Eric Hammond
sumber