AWS: Pengaturan multi-wilayah menggunakan instance RDS tunggal

11

Saya mencoba untuk mengukur aplikasi web kami (PHP, MySQL, memcache) dalam skema multi-wilayah. Saat ini kami menggunakan pengaturan dengan dua instance EC2 di belakang ELB dan instance RDS, semuanya di wilayah US-EAST (Virginia).

Kami juga ingin hadir di kawasan UE (Irlandia). Ini berarti setidaknya ada instance EC2 baru di sana (identik dengan yang lain, melayani aplikasi yang sama).

Saya telah menyalin AMI yang diinginkan, mengatur instance baru, mengatur konfigurasi ELB yang sama (diperlukan untuk penghentian SSL) dan mengkonfigurasi routing berbasis latensi di Route53. Dan itu berfungsi seperti yang disarankan.

Tetapi, klien dari UE memiliki masalah kecepatan. Hal ini disebabkan oleh fakta bahwa instance EC2 UE terhubung ke instance RDS yang berbasis di AS. Sejauh yang saya tahu Amazon belum mengaktifkan replikasi multi-wilayah RDS.

Apakah Anda punya saran tentang cara mempercepat seluruh pengaturan dengan benar saat menggunakan instance RDS tunggal?

Juga, ada ide secara umum tentang bagaimana meningkatkan skala? Idealnya kami ingin terus menggunakan teknologi RDS karena berbagai alasan. Namun demikian, saya terbuka untuk saran (saya kira ide selanjutnya adalah meng-host server MySQL kami sendiri).

Ion
sumber

Jawaban:

5

Anda harus berpikir dengan hati-hati mengapa Anda harus memiliki data yang sama di AS dan UE. Bagaimanapun, ini adalah pengguna yang berbeda.

Berjalan di lingkungan multi-wilayah jauh lebih kompleks dan biasanya memberikan kinerja kembali karena latensi yang melekat antara AS dan UE.

Bahkan jika Anda keluar dari RDS dan mencoba mereplikasi data antar wilayah, baik asynch atau synch, Anda akan mendapatkan masalah latensi yang akan memberikan kinerja buruk bagi pengguna Anda.

Cara termudah adalah dengan menyiapkan server RDS khusus di UE dan tidak membagikan apa pun di antara instance ini.

Orang
sumber
Halo Guy, masalahnya di sini adalah bahwa pelanggan UE dan AS harus memiliki akses ke data yang sama. Apakah ada solusi / ide?
Ion
Seberapa sering data ini diperbarui (jika tidak sering Anda dapat dengan mudah mereplikasi antar wilayah)?
Guy
Data sering diperbarui secara umum. Dan mereka akan mulai diperbarui lebih sering saat aplikasi tumbuh di pengguna. Saya pikir kita harus mencari beberapa solusi lain.
Ion
4

RDS bagus untuk penyebaran satu wilayah karena latensi rendah, tetapi menjadi cerita yang berbeda ketika Anda mulai memperluas ke berbagai wilayah. Jika Anda ingin menyimpan instance RDS, Anda dapat mengatur server MySQL Anda sendiri di wilayah UE dan melakukan replikasi. Dengan cara ini, kecepatannya akan jauh lebih dapat diterima.

Nathan C
sumber
1
Apakah ada cara (semi) otomatis untuk mereplikasi instance RDS dalam suatu interval? Ada ide? Saya kira replika ini akan menjadi hanya-baca juga, kan?
Ion
AWS mendukung baca-replika secara default, itu benar: aws.amazon.com/rds/faqs/#86 - Saya yakin itu mungkin untuk melakukan replikasi baca / tulis tapi itu di luar ruang lingkup SF (saya akan memeriksa dengan kami Situs DBA).
Nathan C
Ya, tetapi replika baca dibuat di wilayah yang sama. Kami memerlukan replika baca di wilayah yang berbeda, dan terakhir kali saya memeriksa mereka tidak mendukung ini.
Ion
2

Baru-baru ini, AWS bergerak ke arah yang sebelumnya saya tanyakan dalam pertanyaan saya dengan mengumumkan RDS lintas-daerah membaca replika . Namun, ini hanya langkah kecil menuju pengaturan multi-wilayah sejati.

Ion
sumber
1

Saya percaya ini yang Anda inginkan. Replikasi RDS ke EC2 menjalankan mysql di wilayah yang berbeda.

https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capabilities-mysql/

pengguna195585
sumber
Selamat Datang di Kesalahan Server! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
slm
Terima kasih, sepertinya menarik! Ini adalah tautan yang lebih relevan: docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
Ion
0

Salah satu solusi yang mungkin untuk meningkatkan latensi bisa menggunakan Amazon ElastiCache (yang pada dasarnya Memcached di bawah penutup).

Anda harus membuat Node ElastiCache di setiap wilayah (US-EST dan UE) dan meminta logika aplikasi Anda (EC2) menggunakan simpul cache kapan pun memungkinkan. Jika Anda menggunakan rute ini, Anda harus merancang ulang aplikasi Anda 1) tahu apa yang harus di-cache dan kapan dan 2) untuk mengambil sebanyak mungkin dari NastiCache Node lokal.

Ricardo Rossi
sumber