AWS: Tek RDS örneği kullanarak çok bölgeli kurulum


11

Çok bölgeli bir düzende web uygulamamızı (PHP, MySQL, memcache) ölçeklemeye çalışıyorum. Şu anda bir ELB ve bir RDS örneğinin arkasında, hepsi US-EAST (Virginia) bölgesinde iki EC2 örneği bulunan bir kurulum kullanıyoruz.

AB (İrlanda) bölgesinde de var olmak istiyoruz. Bu, orada en az yeni bir EC2 örneği anlamına gelir (aynı uygulamaya hizmet eden diğerleriyle aynı).

İstenen AMI'yi kopyaladım, yeni örneği kurdum, aynı ELB yapılandırmasını (SSL sonlandırması için gerekli) kurdum ve Route53'te gecikme tabanlı yönlendirme yapılandırdım. Ve önerildiği gibi çalışıyor.

Ancak, AB'den gelen müşterilerin hız sorunları var. Bunun nedeni, AB EC2 yönetim ortamlarının ABD merkezli RDS yönetim ortamına bağlanmasıdır. Bildiğim kadarıyla Amazon henüz RDS çok bölgeli çoğaltmayı etkinleştirmedi.

Tek bir RDS örneğini kullanırken tüm kurulumu nasıl hızlandıracağınız konusunda herhangi bir öneriniz var mı?

Ayrıca, genel olarak şeylerin nasıl ölçeklendirileceği hakkında herhangi bir fikir var mı? İdeal olarak RDS teknolojisini çeşitli nedenlerle kullanmaya devam etmek istiyoruz. Yine de, önerilere açıkım (sanırım bir sonraki fikir kendi MySQL sunucularımızı barındırmak olacaktır).

Yanıtlar:


5

Hem ABD'de hem de AB'de neden aynı verilere sahip olmanız gerektiğini dikkatlice düşünmelisiniz. Sonuçta bunlar farklı kullanıcılar.

Çok bölgeli bir ortamda koşmak çok daha karmaşıktır ve genellikle ABD ve AB arasındaki doğal gecikme nedeniyle performansı geri verir.

RDS'den çıksanız ve verilerinizi asenkron veya senkronizasyon bölgeleri arasında çoğaltmaya çalışsanız bile, kullanıcılarınıza kötü performans verecek gecikme sorunları alırsınız.

En kolay yol, AB'de özel bir RDS sunucusu kurmak ve bu örnekler arasında hiçbir şey paylaşmamaktır.


Merhaba Guy, buradaki sorun, AB ve ABD müşterilerinin aynı verilere erişmesi gerektiğidir. Herhangi bir çözüm / fikir var mı?
Ion

Bu veriler ne sıklıkta güncellenir (sık değilse, bölgeler arasında kolayca çoğaltabilirsiniz)?
Guy

Veriler genel olarak sık sık güncellenmektedir. Ve uygulama kullanıcılarda büyüdükçe daha sık güncellenmeye başlayacaklar. Sanırım başka çözümler de aramalıyız.
Ion

4

RDS, düşük gecikme nedeniyle tek bölgeli dağıtımlar için mükemmeldir, ancak farklı bölgelere genişlemeye başladığınızda farklı bir hikaye haline gelir. RDS örneğini korumak istiyorsanız, AB bölgesinde kendi MySQL sunucunuzu kurabilir ve çoğaltma yapabilirsiniz. Bu şekilde, hız çok daha kabul edilebilir olacaktır.


1
Bir RDS örneğini aralıklarla çoğaltmanın herhangi bir (yarı) otomatik yolu var mı? Herhangi bir fikir? Sanırım bu kopya da salt okunur olurdu, değil mi?
Ion

AWS varsayılan olarak okuma kopyalarını destekler, bu doğrudur: aws.amazon.com/rds/faqs/#86 - Okuma / yazma çoğaltması yapabileceğinizden eminim, ancak bu SF'nin kapsamı dışındadır. DBA sitesi).
Nathan C

Evet, ancak okuma kopyaları aynı bölgede oluşturulur. Farklı bir bölgede okuma kopyasına ihtiyacımız var ve son kontrol ettiğimde bunu desteklemiyorlar.
Ion


1

İstediğin bu olduğuna inanıyorum. Farklı bir bölgede mysql çalışan EC2 RDS çoğaltma.

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


Sunucu Arızasına Hoşgeldiniz! Bu teorik olarak soruyu cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak tercih edilir.
slm

Teşekkürler, ilginç görünüyor! Bu daha alakalı bir bağlantıdır: docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
Ion

0

Gecikmeyi artırmak için olası bir çözüm Amazon ElastiCache (temelde kapakların altında Memcached olan) kullanmak olabilir.

Her bölgede (US-EST ve AB) bir ElastiCache Düğümü oluşturmanız ve uygulama mantığınızın (EC2) mümkün olduğunca önbellek düğümünü kullanmasını sağlamanız gerekir. Bu rotaya giderseniz, başvurunuzu yeniden tasarlamanız gerekir 1) ne önbellek ve ne zaman ve 2) yerel ElastiCache Düğümünden mümkün olduğunca çok tutmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.