2013-04-06 91 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秒將會很快加起來。如果您可以對請求進行批處理,則可能是可以容忍的。

要將用戶路由到適當的區域,您需要查看Route 53,這是AWS系列的另一部分。關於Route 53的This announcement描述了您需要的區域之間的基於延遲的路由。一旦用戶被路由到適當的EC2實例,您已部署到的每個區域都應該被隔離。您可以使用EC2,SQS,Elasticache以及所有來自歐洲地區(eu-west-1)的其他AWS產品來配置您的歐洲部署。對於您的亞洲部署,您可能將其全部託管在ap-southeast-1地區。一旦Route 53將亞洲用戶連接到ap-southeast-1內的EC2實例,對SQS,Elasticache等的請求將位於同一區域內,因此速度非常快。

+0

感謝您的回答。由於我有兩個SQS隊列(一個在東京地區,一個在愛爾蘭),這是否意味着我必須在EC2中爲兩個不同的應用程序提供連接到正確的SQS隊列?還是Route 53智能足以根據位置發送到正確的SQS隊列? – 2013-04-06 22:10:30

+0

生產到SQS不通過Route 53,因此您必須從您的應用程序中自行生成正確的隊列。路由53將根據延遲將請求發送到最近的終端(假定您是如何配置它的)。您的應用程序可以從兩個隊列中使用,只需注意遠程區域中的哪個隊列需要更長的時間。 – 2013-04-06 22:44:05

1

Amazon Web Services引入的實用程序模型可幫助您在多個區域部署相同的服務。相同的CLI命令/ web控制檯/ CloudFormation腳本以相同的方式在所有區域中工作。因此在新加坡和歐洲推出類似的服務對您來說不應該很複雜。除此之外,您還可以從同一位置管理所有這些 - 雲的力量。

它也不會更昂貴,因爲您正在爲您使用的內容付費,並且如果您在區域之間分配負載,則您將具有差不多相同的成本。例如,如果您需要10臺服務器爲您的用戶提供服務,則可以在歐洲擁有5臺服務器,在新加坡擁有5臺服務器。超過;您可以根據使用auto-scaling的負載小時數在不同地區使用不同數量的服務器。例如,當歐洲醒來時,歐洲有8臺服務器,而在新加坡時只有2臺,反之亦然。

通過將上述多區域服務(EC2,S3,ElasticCache,RDS ...)與Amazon CloudFront(CDN)和Route 53(DNS)相結合,您可以創建出色的可伸縮服務,全球範圍內的延遲(歐洲,亞洲,北美和南美......)。

+0

謝謝,基於喚醒區域的自動縮放非常有趣。我會更密切地調查這一點。 – 2013-04-06 22:11:31