Membuat Gambar AMI EC2 dari instance yang sedang berjalan vs dari snapshot volume

22

Saya ingin mem-backup instance EC2 berbasis Linux saat sedang berjalan tanpa downtime, dan kemudian meluncurkan instance baru. (Contoh sedang menjalankan server web dan database Postgres.)

Saya menemukan ada dua cara untuk melakukan ini, tetapi saya bingung tentang apa perbedaan hasil di antara mereka.

Opsi # 1: Buat AMI langsung dari instance yang berjalan:

  1. Buat AMI baru langsung dari instance asli yang berjalan.
  2. Luncurkan instance baru dari AMI

Opsi # 2: Secara manual membuat AMI dari foto:

  1. Ambil snapshot dari volume yang terpasang pada instance asli yang sedang berjalan
  2. Buat AMI dari snapshot, memasukkan detail secara manual seperti arsitektur dan ID kernel
  3. Luncurkan instance baru dari gambar yang dibuat secara manual

Sekarang yang membingungkan adalah bahwa ketika membuat AMI langsung dari sebuah instance, EC2 akan mem-boot ulang instance secara default. Ada kotak centang "No reboot" dengan tooltip berikut:

Saat diaktifkan, Amazon EC2 tidak mematikan mesin virtual sebelum membuat gambar. Ketika opsi ini digunakan, integritas sistem file pada gambar yang dibuat tidak dapat dijamin.

Apakah benar-benar ada perbedaan dalam hasil dari opsi dua arah ini? Bagi saya rasanya secara manual saya melakukan hal yang sama seperti yang dilakukan penyihir otomatis. Ini menghasilkan snapshot, memilih ID kernel dan arsitektur.

Mengapa satu memiliki teks peringatan dan yang lainnya tidak? Snapshotting instance yang berjalan dianggap relatif aman, dan jika kreasi AMI melakukan snapshot di latar belakang, apakah itu lebih berbahaya daripada melakukan semuanya dengan tangan?

Vilsepi
sumber

Jawaban:

13

Mereka melakukan hal yang persis sama jika Anda memilih no rebootopsi saat membuat AMI langsung dari EC2. Ini pada dasarnya menciptakan snapshot yang berpotensi berada dalam kondisi tidak konsisten. Misalnya, Anda berisiko lebih banyak memiliki kondisi tidak konsisten jika Anda melakukan banyak penulisan disk saat membuat snapshot.

Jika Anda ingin membuat snapshot dalam keadaan "konsisten", Anda harus mematikan instans Anda terlebih dahulu dan kemudian mengambil snapshot lalu memulai kembali instans Anda. Inilah sebabnya mengapa opsi kreasi AMI dari EC2 cukup berguna karena Anda tidak harus berhenti dan memulai ulang. Amazon merawatnya dan alamat IP tidak berubah pada contoh Anda. (Jika Anda menghentikan / memulai ulang instance Anda, alamat IP Anda benar-benar berubah)

Saya tidak begitu yakin mengapa Amazon tidak memiliki peringatan jika Anda mengambil snapshot langsung dari volume tetapi dari sudut pandang volume benar-benar tidak masalah apakah volume sedang digunakan oleh instance yang berjalan atau tidak berjalan ( itu hanya peduli apakah itu dilampirkan atau dikirim tidak berpengaruh pada pembuatan foto)

Rico
sumber
Saya setuju bahwa Anda harus membuat AMI karena Anda tidak ingin mematikan instance. Anda dapat melihat solusi yang melakukan ini di luar kotak untuk menghemat waktu. Saya pribadi menggunakan totalcloud.io untuk mengotomatiskan tindakan saya di AWS.
Veer Abheek Singh Manhas