Terminologi Amazon EC2 - AMI vs EBS vs Snapshot vs Volume

127

Saya telah mencari-cari Amazon EC2, dan saya sedikit bingung dengan beberapa terminologi. Khususnya berkaitan dengan AMI, foto dan volume, dan EBS

Harap perbaiki saya jika saya salah, atau isi kekosongan serius dalam pernyataan berikut:

  • AMI (Amazon Machine Image) adalah tangkapan 'disk' penuh dari sistem operasi dan konfigurasi. Saat Anda meluncurkan sebuah instance, Anda meluncurkannya dari AMI

  • EBS (Elastic Block Storage) adalah cara untuk mempertahankan keadaan dari setiap modifikasi yang Anda buat setelah mem-boot dari AMI yang diberikan. Dalam pikiran saya, ini adalah semacam perbedaan pada keadaan akhir dari instance Anda vs AMI.

  • Sebuah snapshot adalah ... yah, saya tidak yakin. Saya hanya bisa berasumsi itu adalah snapshot dari instance tertentu, tetapi tidak jelas bagi saya bagaimana ini berbeda dari keadaan yang disimpan dalam EBS. Bagaimana perbedaan snapshot dari pembuatan AMI EBS dari instance yang ada?

  • Volume adalah ... sepertinya ruang disk terpasang di mana pasangan AMI / EBS dimuat? Saya juga tidak yakin dengan yang ini. Saya dapat melihat (dari Konsol AWS) bahwa Anda dapat membuat volume dari snapshot, dan bahwa Anda dapat melampirkan / melepaskan volume, tetapi tidak jelas bagi saya mengapa atau kapan Anda akan melakukannya.

Mat
sumber

Jawaban:

150

AMI, seperti yang Anda perhatikan, adalah gambar mesin. Ini adalah snapshot total dari sistem yang disimpan sebagai gambar yang dapat diluncurkan sebagai contoh. Kami akan kembali ke AMI sebentar lagi.

Mari kita lihat EBS. Dua item Anda yang lain adalah sub-item dari ini. EBS adalah perangkat blok virtual. Anda dapat menganggapnya sebagai hard drive, meskipun itu benar-benar sekelompok perangkat lunak ajaib untuk menghubungkan ke jenis perangkat penyimpanan lain tetapi membuatnya terlihat seperti hard drive ke sebuah instance.

EBS hanyalah nama untuk seluruh layanan. Di dalam EBS Anda memiliki apa yang disebut volume. Ini adalah "unit" amazon yang menjual Anda. Anda membuat volume dan mereka mengalokasikan Anda sejumlah X gigabyte dan Anda menggunakannya seperti hard drive yang dapat Anda pasang ke komputer Anda yang sedang berjalan (instance). Volume dapat dibuat kosong atau dari salinan snapshot dari volume sebelumnya, yang membawa kita ke topik berikutnya.

Snapshots adalah ... well ... snapshots dari volume: tangkapan yang tepat dari apa yang tampak seperti volume pada saat tertentu, termasuk semua datanya. Anda bisa memiliki volume, melampirkannya ke instance Anda, mengisinya dengan barang-barang, lalu memotretnya, tetapi tetap menggunakannya. Isi volume akan terus berubah ketika Anda menggunakannya sebagai sistem file tetapi snapshot akan membeku dalam waktu. Anda dapat membuat volume baru menggunakan snapshot ini sebagai basis. Volume baru akan terlihat persis seperti disk pertama Anda ketika mengambil snapshot. Anda bisa mulai menggunakan volume baru di tempat yang lama untuk memutar kembali data Anda, atau mungkin melampirkan set data yang sama ke mesin kedua. Anda dapat terus mengambil snapshot volume kapan saja. Ini seperti cadangan instance beku-bingkai yang kemudian dapat dengan mudah dibuat menjadi live disk (volume) baru kapan pun Anda membutuhkannya.

Jadi volume dapat didasarkan pada ruang kosong baru atau snapshot. Mengerti? Volume dapat dilampirkan dan dilepaskan dari setiap kejadian, tetapi hanya terhubung ke satu contoh pada satu waktu, sama seperti disk fisik yang mereka adalah abstraksi virtual.

Sekarang kembali ke AMI. Ini rumit karena ada dua jenis. Satu menciptakan contoh sementara di mana sistem file root terlihat seperti drive ke komputer tetapi sebenarnya duduk di memori di suatu tempat dan menguap begitu berhenti digunakan. Jenis lain disebut contoh yang didukung EBS. Ini berarti bahwa ketika instance Anda memuat, itu memuat sistem file root ke volume EBS baru, pada dasarnya meletakan teknologi mesin virtual EC2 di atas teknologi EBS mereka. Volume EBS biasa adalah sesuatu yang berada di sebelah EC2 dan dapat dilampirkan, tetapi instance yang didukung EBS juga adalah volume itu sendiri.

AMI biasa hanyalah sebagian besar data yang dimuat sebagai mesin. AMI yang didukung EBS akan dimuat ke volume EBS, sehingga Anda dapat mematikannya dan akan mulai kembali dari tempat Anda tinggalkan sama seperti disk sebenarnya.

Sekarang kumpulkan semuanya. Jika sebuah instance didukung EBS, Anda juga dapat memotretnya. Pada dasarnya ini tidak persis seperti apa snapshot biasa ... membekukan kerangka disk komputer Anda pada suatu saat. Dalam praktiknya, ia melakukan dua hal yang berbeda. Salah satunya adalah mematikan instance Anda sehingga Anda mendapatkan salinan disk karena akan terlihat ke komputer OFF, bukan yang ON. Ini membuatnya lebih mudah untuk boot up :) Jadi ketika Anda mengambil snapshot instance, ia mematikannya, mengambil gambar disk, lalu mulai lagi. Kedua, ini menyimpan gambar sebagai AMI bukan sebagai snapshot disk biasa. Pada dasarnya ini adalah snapshot bootable volume.

Caleb
sumber
1
Terima kasih atas infonya yang luar biasa, saya pikir ini datang bersama untuk saya. Pertanyaan tindak lanjut: apa perbedaan antara melakukan snapshot dari EBS AMI dibandingkan dengan mengklik kanan dan memilih 'Buat Gambar (EBS AMI) dari konsol web EC2? Berdasarkan uraian Anda di atas, sepertinya mereka identik kecuali untuk bagaimana Anda menggunakannya. Anda dapat membuat volume dari snapshot, dan kemudian melampirkan volume itu ke AMI. Di mana sebagai gambar EBS AMI hanya ... Saya tidak tahu, menghilangkan langkah melampirkannya ke volume?
Matt
Sebenarnya saya pikir alat konsol untuk memotret AMI melakukan hal yang sama dengan konsol web. Di mana kesalahan deskripsi Anda adalah sedikit tentang lampiran. Jika Anda snapshot instance, ya snapshot dibuat dari volume root, tetapi lebih dari itu snapshot menjadi AMI. Cuplikan teratur yang Anda buat menjadi volume dan lampirkan ke instance. Cuplikan dari instance yang Anda buat menjadi instance (Anda tidak melampirkan volume ke instance, itu ADALAH instance). Apakah itu masuk akal?
Caleb
Setiap kali saya mengatakan konsol, saya bermaksud mengatakan konsol web. Saya belum bermain dengan api baris perintah atau apa pun. Saya kira yang saya bingung adalah, Anda membuat AMI EBS dari sebuah instance, dan Anda membuat snapshot dari volume, tetapi tampaknya volumenya adalah AMI EBS. Dan kemudian, untuk membuat instance baru, Anda dapat 1) meluncurkan satu dari AMI yang dibuat, atau 2) Salin snapshot ke volume dan meluncurkan AMI yang terlampir pada volume itu, tetapi pada akhirnya, hasilnya sama. Apakah itu benar?
Matt
Anda baik-baik saja sampai bagian "sepertinya", lalu berhenti cocok dengan kenyataan. Khususnya bagian terakhir (2 Anda) adalah omong kosong. Anda tidak melampirkan AMI ke volume. AMI yang didukung EBS adalah volume yang ditandai khusus yang dapat di-boot. Volume melekat pada instance, bukan sebaliknya.
Caleb
2
Ketika Anda snapshotting sesuatu selain dari root disk. Saya memiliki banyak disk yang menyimpan kumpulan data yang bukan bagian dari komputer mana pun. Jika Anda memotret drive disk / root sistem, gunakan alat kreasi EBS AMI. Tetapi kadang-kadang Anda memiliki volume lain dengan set data lain yang mungkin atau mungkin bahkan tidak dilampirkan ke sistem yang diberikan. Anda dapat memotret dengan waktu Anda sendiri. Sebuah snapshot otomatis akan dibuat jika mereka dilampirkan ke instance yang Anda snapshot, tetapi Anda mungkin juga ingin membuatnya sendiri ... katakanlah untuk menduplikat disk dan menempelkannya ke instance lain.
Caleb
9

Saya pikir mari kita membuatnya sederhana. Buat template AMI dari instance yang ada (misalkan instance # 1. Catatan, ketika Anda membuat template AMI, Anda akan memiliki snapshot volume juga, lihat ke bagian snapshot Anda. Ketika Anda ingin membuat instance baru, pilih yang baru dibuat, pilih yang baru dibuat Template AMI, kemudian akan mengambil snapshot pada saat template AMI dibuat.

Sekarang, jika Anda telah membuat snapshot dari volume instance # 1, tidak apa-apa. Buat instance baru dari templat AMI, lalu lepaskan volume yang secara otomatis dibuat untuknya, lalu lampirkan volume yang dibuat dari snapshot dari volume instance # 1.

Goldwynn T
sumber
2

Untuk meringkas hal-hal:

  • EBS = layanan AWS itu sendiri

  • EBS Volume = anggap itu seperti hard drive yang dapat Anda lampirkan pada instance EC2

  • Jepretan = salinan waktu dalam volume Anda

  • AMI = salinan instance lengkap

TH22
sumber
0

Lebih jauh ke penjelasan di atas, berikut adalah contoh untuk memperjelas semua ini.

Katakanlah "EC2 Instance I1" Anda memiliki dua volume EBS yang melekat padanya - EBS Volume V1a dan EBS Volume V1b.

Sekarang, jika Anda membuat gambar AMI dari EC2 Instance I1, Anda akan mendapatkan -

Sebuah. Gambar AMI dari EC2 Instance I1, sebut saja AMI1

b. Cuplikan EBS Volume V1a, sebut saja S1

c. Cuplikan EBS Volume V1b, sebut saja S2

Kemudian, jika Anda meluncurkan instance baru dari gambar AMI1, Anda akan mendapatkan -

Sebuah. Contoh EC2 baru, sebut saja I2

b. Volume EBS baru yang dihasilkan dari Snapshot S1, sebut saja V2a

c. Volume EBS baru yang dihasilkan dari Snapshot S2, sebut saja V2b

Singkatnya -

  1. Gambar AMI membuat snapshot volume yang dilampirkan ke instance asli (dari mana AMI dibuat)

  2. Sebuah instance baru yang diluncurkan dari gambar AMI menghasilkan volume dari snapshot yang dilampirkan ke AMI itu.

Saya menjelaskannya secara rinci di http://zilhaz.com/ebs-ami-aws-ec2/

zilhaz
sumber