Pasang Otomatis Volume EBS ke Mesin Virtual Spot Baru?

14

Saya bereksperimen dengan instance spot EC2, dan saya memerlukan beberapa data untuk disimpan di antara penghentian. Sekarang seperti yang saya mengerti, ketika harga saat ini berjalan di atas maks saya. tawaran, itu akan dihentikan secara otomatis. Saya berasumsi skrip init yang saya miliki akan dijalankan pada saat shutdown sehingga saya dapat mendorong data ke EBS sebelum melepasnya.

Pertanyaan saya adalah, bagaimana saya bisa secara otomatis me-mount volume EBS yang sama pada instance spot baru setelah harga turun, karena itu tidak akan memiliki skrip init saya yang akan saya muat ke volume root pertama kali?

Apakah saya harus membuat AMI khusus, atau adakah cara lain untuk mencapai ini?

Jeff
sumber

Jawaban:

11

Jika Anda hanya ingin instance dimulai dengan titik awal yang tetap setiap kali itu berjalan, maka Anda bisa:

  1. Buat AMI Anda sendiri dan jalankan itu sebagai instance setiap kali, atau

  2. Tentukan skrip data pengguna yang menginstal dan mengkonfigurasi perangkat lunak untuk spesifikasi Anda setiap kali instance baru dimulai dari AMI basis standar.

Jika Anda perlu menjaga keadaan di antara instance yang dijalankan, maka Anda harus menyimpan data di suatu tempat di luar instance / AMI. Sebagai contoh:

  1. Data dapat terus diperbarui di S3, SimpleDB, DynamoDB, RDS, dll.

  2. Anda bisa menetapkan volume EBS permanen yang dilampirkan dan dipasang secara dinamis pada saat startup. Ini bisa dilakukan dengan skrip data pengguna.

Eric Hammond
sumber
Menentukan skrip data pengguna yang memasang suara menarik; Bagaimana ini bisa dilakukan ketika permintaan spot memulai instance baru secara otomatis? Saya sudah memiliki volume penyimpanan data EBS permanen, dan mungkin akan terus menggunakannya
Jeff
1
Saat Anda membuat permintaan spot, Anda menentukan data pengguna yang harus diteruskan ke setiap instance spot baru.
Eric Hammond
Ah saya tidak sadar dengan cloud-init menempatkan #! pertama dalam data pengguna dieksekusi skrip. Terima kasih
Jeff
3
@ Jeff: Ya, saya menemukan itu dan AMI populer telah mengadopsinya :-) alestic.com/2009/06/ec2-user-data-scripts
Eric Hammond
Sepanjang baris ini, apakah mungkin untuk memiliki instance instance mount volume EBS tertentu sebagai root disk ketika dimulai?
Derek Morrison
5

Lihat proyek ec2-spotter di GitHub. Itu dibuat untuk memecahkan masalah yang Anda gambarkan.

Masalah (# 1 sampai # 4) yang dijelaskan dalam jawaban @ mcenzm adalah nyata, dan ditangani dengan benar di ec2-spotter.

Alex R
sumber
Entah siapa yang menurunkan ini, tetapi itu berarti saya bisa berhenti membuang waktu untuk mencoba kode itu! Suka.
Jeremy
3

Saya telah mencoba ini untuk sementara waktu sekarang, dan masih ada sejumlah masalah dengan instance EC2 dan penyimpanan terlampir.

  1. Volume yang ingin Anda lampirkan mungkin tidak berada di zona yang sama dengan instance? Zona tidak dapat ditentukan saat peluncuran.
  2. Melampirkan secara internal dengan skrip init akan berfungsi, tetapi sedikit asinkron sehingga Anda perlu menguji atau sleep 10mengatakannya.
  3. Saya tidak mengerti mengapa konsol AWS menunjukkan "partisi" sebagai perangkat blok utama. Mungkin untuk menolak kita membajak gambar windows di partisi lain? (sda1 bukan sda). Semoga berhasil menemukan tabel partisi.

    masukkan deskripsi gambar di sini

  4. Saat ini sulit untuk dilampirkan menggunakan CLI dari titik kontrol eksternal, yang membuatnya sulit untuk menggunakan snapshot untuk versi.

  5. Jadi secara umum saya mencadangkan ... tar.bz2 ke kotak lain, dan kemudian dapat mengisi "area kerja" saat startup. Ini hanya berguna untuk volume data yang kecil, jadi mendasarkan ami baru dengan kedua volume adalah ide yang bagus. Instance spot benar-benar bagus untuk pekerjaan "unit kerja" atau "restartable" sehingga konsep mengambil pekerjaan dari server sudah mapan. Mengingat Anda sedang menunggu 9 menit untuk peluncuran, Anda mungkin tidak keberatan memformat disk Anda (sekecil mungkin).

    1. EBS masih cukup rapuh dan Anda harus membayar ekstra untuk "dioptimalkan". Ini masih lebih cepat daripada mencoba mengunggah karya Anda yang sudah selesai di tahun 90an atau lebih ketika turunannya "dihargai".

    2. Saya menduga ini semua akan berubah dengan penawaran "file elastis".

mckenzm
sumber
1
1. Anda menentukan subnet yang terikat ke zona AZ. 2. Menunggu hingga / dev / xvdx muncul mudah. 3. Bagaimana ini relevan?
Morgan Christiansson