最近 AWS を紹介されましたが、本当に気に入りました。ただし、マルチリージョンのアーキテクチャについて、いくつかの質問 (ばかげているかもしれません) を自問しています。
アプリケーションがヨーロッパ人とアジア人によって使用されているとしましょう。私の最初のアイデアは、ヨーロッパに EC2 インスタンスを追加することと、ヨーロッパに静的データと SQS キューと ElastiCache を保持するための S3 バケットを追加することでした。ヨーロッパ人にとっては非常に速いですが、アジア人にとっては遅くなります。
これを解決するには、静的データ用の CloudFront を追加して、アジア人にも画像がすばやく提供されるようにします。ただし、サーバーへのリクエスト (Ajax リクエストなど) にはまだ遅延が発生するため、解決策は、シンガポール/東京リージョンにも EC2 インスタンスを追加することです。
ただし、新しい問題が発生します。リクエストが東京の EC2 インスタンスにディスパッチされた場合、ヨーロッパに保存されている SQS からメッセージを受信する必要がある場合、または ElastiCache データにアクセスする必要がある場合 => 再度のレイテンシ + リージョン間転送のコスト。では、アジアにも SQS と ElastiCache を追加する必要がありますか?
多分私は何かを見逃しており、リージョン間の AWS リクエストは超高速ですが、私が理解していることから、マルチリージョンで高速なエクスペリエンスが必要な場合は、基本的にすべてのサービスをすべてのリージョンで複製する必要があります (S3 を除く)。そのために CloudFront を使用できます。また、アジアの SQS ジョブがヨーロッパの S3 リソースにアクセスする必要がある場合、レイテンシーに耐えることができると思います)。
とにかく、私はこれを正しく理解しましたか?マルチリージョンを対象とするアプリケーションを構築する方法に関するリソースはありますか?
ありがとう :)