AWS-EC2: Sistem file bersama untuk ketersediaan tinggi

0

Saya punya beberapa contoh ubuntu yang berjalan di Amazon EC2 dan ingin membuatnya lebih toleran terhadap kesalahan dengan menjalankan contoh duplikat di wilayah lain (dihasilkan dari foto) dengan load balancers - atau bahkan kegagalan manual dengan ip elastis .

Masalahnya adalah data spesifik, sebagai contoh itu tidak baik untuk gagal dari satu server web ke server web lain jika isi root dokumen yaitu / var / www tidak identik.

Dalam contoh ini saya akan memiliki kontes / var / www pada volume mereka sendiri agar tidak berdampak pada partisi root. Apakah ada cara untuk berbagi volume di dua contoh atau lebih di zona yang berbeda? atau mungkin cara untuk menjaga dua atau lebih volume yang berbeda dalam sinkronisasi di seluruh wilayah?

Ryhnn
sumber
1
Volume EBS tidak dapat dipasang pada banyak instance secara bersamaan. Karena Anda hanya berusaha menjaga agar dokumen tetap sama, cara paling sederhana adalah dengan menarik kode sumber dari repositori Anda saat boot dan mendorong perubahan baru saat komit. Jika itu tidak sesuai dengan skenario Anda, Anda dapat mencoba: GlusterFS, S3FS, atau DRBD - masing-masing memiliki kasus penggunaannya.
cyberx86
Mengenai masalah spesifik Anda, Anda hanya harus membuat tugas rsync antara dua instance Anda yang hanya memperbarui file yang dimodifikasi terakhir, dan cron secara teratur, seperti, setiap 10 menit, tetapi menghapus file cache Anda.
Yannovitch
web hosting hanyalah sebuah contoh, ruang lingkup server yang sebenarnya melampaui halaman web saja. Intinya adalah memiliki sistem file bersama, atau dua filesystem yang disinkronkan sehingga sistem dapat dengan mudah gagal tanpa kehilangan data.
Ryhnn

Jawaban:

3

Seperti yang dikatakan cyberx86, volume EBS tidak dapat dipasang pada beberapa instance EC2 (bahkan di Zona Ketersediaan yang sama).

Jawaban pertama adalah menyimpan aset Anda bersama di Amazon S3 - dengan cara itu, Anda dapat menggunakan kode Anda melalui Capistrano / Mcollective / apa pun secara langsung ke instance EC2 langsung dan siaga Anda, dan sepenuhnya membebani konten statis Anda (mis. Gambar, media) ke S3, bahkan mungkin dengan CloudFront menyediakan caching tepi.

Yang mengatakan, S3 tidak melakukan replikasi lintas-wilayah (UE-Barat-1 ke AS-Timur-1), namun ia menawarkan "empat sembilan" (99,99%) ketersediaan di suatu kawasan, sehingga seluruh wilayah luas kegagalan tidak mungkin. Untuk pendekatan 'sabuk dan kawat gigi' Anda mungkin ingin mengonfigurasi proses sinkronisasi cron'd antara bucket S3 di dua wilayah berbeda - lihat s3cmd dokumentasi dengan --syncbendera.

Jika memindahkan aset Anda ke S3 terlalu merepotkan, dan jika mekanisme failover Anda siaga-panas (yaitu, Anda memiliki klon yang selalu siap di wilayah lain dan failover manual), Anda dapat mengonfigurasi rsynclari cron untuk menjaga Anda aset yang tidak dikendalikan versi yang disinkronkan (seperti sebelumnya, Anda harus selalu merilis kode aplikasi ke semua server.

Sistem file Clustered (misalnya GlusterFS, GFS2) atau replikasi tingkat blok (misalnya DRBD) tidak benar-benar direkomendasikan dengan EC2 (atau setidaknya tidak kecuali Anda keluar untuk hal-hal dengan bandwidth NIC yang terjamin seperti rentang jaringan cluster). S3FS telah terbukti sangat lambat, karena setiap permintaan IO pada sistem file harus didukung dengan panggilan API S3 - detailnya di sini: (1) , (2) .

Anda dapat mengalami kemacetan jaringan yang disebabkan oleh penyewa lain (atau bahkan membuat kemacetan sendiri) - jenis solusi ini paling cocok untuk lingkungan di mana Anda mengontrol (atau setidaknya memiliki pengaruh atas) seluruh tumpukan.

Craig Watson
sumber
Bukan jawaban yang saya harapkan, tetapi konsisten dengan semua yang saya baca. Kurasa aku harus menemukan cara berbeda untuk melakukan ini.
Ryhnn
Satu nitpick kecil: sementara Anda tidak mendapatkan replikasi lintas-wilayah secara teknis, wilayah AS untuk S3 menemukan lokasi konten di Virginia dan California dan merutekan permintaan konten berdasarkan mana yang lebih dekat dengan pemohon; itu terisolasi dari kegagalan pusat data atau jaringan di kedua situs. Namun, sebagai akibatnya, Anda kehilangan kemampuan untuk memiliki konsistensi baca-tulis di wilayah ini.
jgoldschrafe