AWS:単一のRDSインスタンスを使用したマルチリージョン設定


11

マルチリージョンスキームでWebアプリケーション(PHP、MySQL、memcache)をスケーリングしようとしています。現在、ELBおよびRDSインスタンスの背後にある2つのEC2インスタンスのセットアップを使用しています。これらはすべてUS-EAST(バージニア)リージョンにあります。

EU(アイルランド)地域にも存在感を持ちたいです。これは、少なくともそこに新しいEC2インスタンスが存在することを意味します(他のインスタンスと同一で、同じアプリケーションにサービスを提供します)。

目的のAMIをコピーし、新しいインスタンスをセットアップし、同じELB構成(SSL終了に必要)をセットアップし、Route53で遅延ベースのルーティングを構成しました。そして、提案どおりに機能します。

しかし、EUのクライアントには速度の問題があります。これは、EU EC2インスタンスが米国ベースのRDSインスタンスに接続するという事実によるものです。私の知る限り、AmazonはRDSマルチリージョンレプリケーションをまだ有効にしていません。

単一のRDSインスタンスを使用しながら、セットアップ全体を適切に高速化する方法に関する提案はありますか?

また、物事を拡大する方法に関する一般的なアイデアはありますか?理想的には、さまざまな理由でRDSテクノロジーの使用を継続したいと考えています。それにもかかわらず、私は提案を受け入れています(次のアイデアは、独自のMySQLサーバーをホストすることだと思います)。

回答:


5

米国とEUの両方で同じデータが必要な理由を慎重に検討する必要があります。これらはすべて異なるユーザーです。

マルチリージョン環境での実行ははるかに複雑であり、通常、米国とEU間の固有の遅延によりパフォーマンスが向上します。

RDSから移行して、非同期または同期のいずれかの領域間でデータを複製しようとしても、ユーザーにパフォーマンスの低下をもたらす遅延の問題が発生します。

最も簡単な方法は、EUに専用のRDSサーバーをセットアップし、これらのインスタンス間で何も共有しないことです。


こんにちはGuy、ここでの問題は、EUと米国の顧客が同じデータにアクセスする必要があるということです。回避策/アイデアはありますか?
イオン

このデータはどのくらいの頻度で更新されますか(そうでない場合は、リージョン間で簡単に複製できます)?
ガイ

一般的に、データは頻繁に更新されます。そして、アプリケーションがユーザー内で成長するにつれて、より頻繁に更新され始めます。他のソリューションを探す必要があると思います。
イオン

4

RDSは遅延が少ないため、単一地域の展開には適していますが、異なる地域への展開を始めると異なるストーリーになります。RDSインスタンスを保持したい場合は、EUリージョンに独自のMySQLサーバーをセットアップしてレプリケーションを実行できます。この方法では、速度がはるかに許容されます。


1
間隔でRDSインスタンスを複製する(半)自動的な方法はありますか?何か案は?このレプリカも読み取り専用になると思いますか?
イオン

AWSはデフォルトでリードレプリカをサポートしています。それは正しいです。aws.amazon.com / rds / faqs / #86-リード/ライトレプリケーションを行うことは可能ですが、それはSFの範囲外です(私たちはDBAサイト)。
ネイサンC

はい。ただし、読み取りレプリカは同じリージョンに作成されます。別のリージョンにリードレプリカが必要です。前回チェックしたときに、これはサポートされていません。
イオン


1

これがあなたの望むものだと思います。別のリージョンでmysqlを実行しているEC2へのRDSレプリケーション。

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


サーバー障害へようこそ!これは理論的には質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
slm

ありがとう、面白そう!:これは、より関連性のリンクですdocs.aws.amazon.com/AmazonRDS/latest/UserGuide/...
イオン

0

レイテンシーを改善するための可能な解決策の1つは、Amazon ElastiCache(基本的にMemcachedに隠れている)を使用することです。

各地域(US-ESTおよびEU)でElastiCacheノードを作成し、可能な場合は常にアプリケーションロジック(EC2)でキャッシュノードを使用する必要があります。このルートを使用する場合、アプリケーションを再設計する必要があります。1)キャッシュする対象とタイミングを把握し、2)ローカルのElastiCacheノードから可能な限り取得する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.