2013-03-29 187 views
1

我目前使用AWS微型實例作爲允許用戶上傳照片的網站的網絡服務器。兩個問題:亞馬遜網絡服務微型實例 - 服務器崩潰

1)在查看我的CloudWatch指標時,最近我注意到CPU峯值,網站目前收到的流量很少,但在這些峯值期間變得完全無法使用。這些尖峯可能會持續幾個小時,並且重置服務器並不能消除尖峯。

2)雖然看似不相關的,每當我發表我的網站在Twitter上的鏈接,服務器崩潰(即錯誤建立數據庫連接)。重新啓動Apache和MySQL後,網站將恢復正常功能。

我唯一的猜測是,這個問題在某種程度上與微實例不足的結果。不幸的是,當我升級到小型實例時,由於微型實例可以有兩個EC2計算單元,因此該網站實際上較慢。

有什麼建議嗎?

回答

2

如果你想留在AWS(微實例)的自由層,你應該關閉負載儘可能地從你的EC2實例了。

我建議你到圖像直接上傳到S3,而不是通過你的Web服務器會(看到一些例如爲在這裏:http://aws.amazon.com/articles/1434)。

S3也可用於爲大多數網頁(圖片,js,css ...)提供服務,而不是您的弱Web服務器。您也可以將S3中的這些文件作爲原點添加到Amazon CloudFront(CDN)分發版中,以提高您的應用程序性能。

另一項可以幫助您下​​載工作的服務是SQS(簡單隊列服務)。您可以發送一些請求(例如上傳完畢)作爲SQS的消息,讓您的讀者按照自己的步調處理這些消息,而無需使用用戶的在線請求。這是處理與您的服務同時工作的多個用戶造成的瞬間負載的好方法。

另一種服務是DynamoDB(託管的NoSQL數據庫服務)。你可以把dynamoDB當前的大部分MySQL數據和查詢。Amazon DynamoDB還有一個免費套餐,您可以享受。

綜合上述情況,您可以讓您的微型實例處理剩餘的幾個動態頁面,直到您需要隨着您不斷增長的成功擴展服務爲止。

+0

非常好!感謝您的建議!我需要研究所有這些選項並找出最容易實現的選項。 – panoramic

-1

我有同樣的問題:據我瞭解的問題是,當你達到一個預定使用AWS會讓你放慢腳步。這意味着他們允許一個小爆發,但之後事情會變得非常緩慢。

你可以通過登錄並做某事來測試。如果你使用CPU幾秒鐘,那麼整個盒子會變得非常慢。之後,你必須等待而不做任何事情來讓事情恢復到「正常」。

這是我去參加VPS而不是AWS的主要原因。

+0

不知道爲什麼這是downvoted。請至少添加一條評論,以表明錯誤的原因。 謝謝。 – V13

0

等等......對不起。你是否說你在微型實例上同時運行Apache MySQL服務器?

首先,這絕不是一個好主意。其次,as documented,微有低I/O,只能爆2個ECU。

如果您想繼續使用資源受限的微型實例,您需要(a)將MySQL放在其他位置,並且(b)使用類似Nginx而不是Apache的類型,因爲它需要的運行資源要少得多。否則,你應該認真考慮選擇更大的東西。

+0

我認爲在微型實例上運行Apache和MySQL可能會導致問題。感謝您的迴應! – panoramic