2013-04-06 19 views
13

AWSに最近紹介されたので、本当に好きでした。しかし、私はマルチリージョンのアーキテクチャについていくつか質問しています(それはばかげているかもしれません)。マルチリージョンのAWSアーキテクチャ

たとえば、ヨーロッパ人とアジア人がアプリケーションを使用しているとします。私の最初のアイデアは、欧州ではEC2インスタンスを追加するだけでなく、静的データを保持するS3バケットとヨーロッパではSQSキューとElastiCacheを追加することでした。ヨーロッパ人にとっては驚くほど速くなるが、アジア人にとっては遅くなるだろう。

これを解決するには、静止画像データにCloudFrontを追加して、アジア人向けに画像をすばやく配信できるようにします。しかし、サーバへのリクエスト(Ajaxリクエスト...)にはまだまだ待ち時間があるので、解決策はEC2インスタンスをシンガポール/東京地域に追加することです。

しかし、新しい問題が発生します:東京EC2インスタンスにリクエストがディスパッチされた場合、ヨーロッパに保管されているSQSからメッセージを受信する必要があるか、ElastiCacheデータにアクセスします。 。だから、アジアにもSQSとElastiCacheを追加する必要がありますか?

多分、私は何かを見逃しています。また、AWSの要求は超高速ですが、私が理解したところでは、マルチリージョンの高速体験を望むならば、基本的にすべての地域をすべて複製しなければなりませんS3はCloudFrontを使用できるので、アジアのSQSの仕事がヨーロッパのS3リソースにアクセスする必要がある場合は、レイテンシを保つことができます。

とにかく、私はこれを正しく理解しましたか?マルチリージョンをターゲットとするアプリケーションのアーキテクチャーに関するリソースはありますか?

ありがとうございました:)

答えて

7

これらはまったくばかげた質問ではありません。この部分は絶対に正しいです:

Maybe I miss something, and cross-regions AWS requests are super-fast, but from 
what I've understood, if we want fast experience for multi-regions, we basically 
need to duplicate all services too every regions 

地域間要求は、地域間の光速度とネットワークトポロジによって制限されます。私はアジアからのリクエストが約1/4秒の往復でヨーロッパのアプリケーションに届くと期待しています。ほとんどのリクエストは高速ですが、それらのすべてがより高速になることを保証することはできませんので、それに応じて設計する必要があります。その速度が十分ではない場合は、近い地域に展開し、ユーザーを適切な地域にルーティングする必要があります。ラウンドトリップが必要な回数は、アプリケーションのアーキテクチャに依存します。 ElasticacheまたはSQSへのリクエストが多い場合、その1/4秒が非常に迅速に加算されます。リクエストをバッチすることができれば、それは許容されるかもしれません。

ユーザーを適切な地域にルーティングするには、AWSファミリの別の部分であるRoute 53を見てください。ルート53についてのThis announcementでは、必要な領域間のレイテンシベースのルーティングについて説明しています。ユーザーが適切なEC2インスタンスにルーティングされると、展開した各領域を分離する必要があります。ヨーロッパ地域(eu-west-1)から提供されているEC2、SQS、Elasticache、およびその他のAWS製品を使用して、ヨーロッパ展開を構成します。アジア展開の場合は、ap-southeast-1地域のすべてでホストすることができます。 Route 53がアジアのユーザーをap-southeast-1内のEC2インスタンスに接続すると、SQS、Elasticacheなどへのリクエストは同じ地域内にあり、非常に高速になります。

+0

あなたの答えをありがとう。 2つのSQSキュー(東京地域とアイルランドに1つずつ)があるため、EC2で2つの異なるアプリケーションを適切なSQSキューに接続する必要がありますか?または、ルート53は、場所に基づいて正しいSQSキューにディスパッチするのに十分なほどスマートですか? –

+0

SQSへの生産はルート53を経由しないため、アプリケーション内から正しいキューを生成する必要があります。 Route 53は、レイテンシに基づいて最寄りのエンドポイントにリクエストを送信します(これを設定する方法を前提とします)。アプリケーションは両方のキューから消費することができますが、リモート領域にあるキューの方が時間がかかります。 –

1

Amazon Web Servicesが導入したユーティリティー・モデルは、同じサービスを複数のリージョンに配置するのに役立ちます。同じCLIコマンド/ web console/CloudFormationスクリプトが同じ方法ですべての地域で動作しています。したがって、シンガポールとヨーロッパで同様のサービスを開始することは、あなたのために複雑ではありません。それ以上に、同じ場所 - クラウドの力 - からそれらのすべてを管理することもできます。

また、地域の負荷を分散すると、同じコストがかかります。たとえば、ユーザーにサービスを提供するために10台のサーバーが必要な場合、ヨーロッパに5台、シンガポールに5台のサーバーを持つことができます。以上より。 auto-scalingを使用して、負荷の時間に基づいて異なる地域に異なる数のサーバーを持つことができます。例えば、ヨーロッパが目覚めているときはヨーロッパでは8台、シンガポールでは夜は2台だけであり、その逆もあります。

上記のマルチリージョンサービス(EC2、S3、ElasticCache、RDS ...)とAmazon CloudFront(CDN)およびRoute 53(DNS)を組み合わせることで、非常にスケーラブルで手頃な価格のサービスを作成できます。 (ヨーロッパ、アジア、北米、南米...)。

+0

awaken地域に基づく自動スケーリングは本当に面白いです。私はこれをより詳細に調査します。 –

関連する問題