2012-07-10 49 views
1

我有一個非常簡單的數據庫結構(基本上只有一個用戶表),有兩個基本操作:在我的場景中使用什麼AWS服務?

用戶可以登錄,獲取身份驗證令牌,並稍後使用存儲在此用戶表中的令牌提交一些數據(只有幾個字節)。

但是,許多用戶可以同時做到這一點(例如,在一分鐘內有10萬用戶,例如在有限的時間內)。

我想知道什麼是一個很好的技術選擇。我不害怕使用NoSQL數據庫或任何東西,並且試圖以可擴展的方式結束。

我一直在想排隊系統,以及填充數據庫的任務..或者我只需要亞馬遜SimpleDB,甚至不打擾排隊消息?還是我需要RDS解決方案來讓多個EC2實例與「相同」數據庫交談?或者根本不是亞馬遜網站服務? 感謝您的指點,我對此非常感興趣,並希望在各種權衡中獲得一些見解,以及對我的應用程序有什麼最佳選擇。

回答

1

之間選擇作爲PachinSV指出的那樣,你可以選擇任何數據庫解決方案,您喜歡。我將再添加一個:你可以啓動一個EC2實例並安裝你選擇的DBMS,NOSQL(MongoDB,Cassandra),SQL(MSSQL,MySQL,Oracle)或其他。我將嘗試用這個答案來處理你的問題的其他方面(應用程序本身,可伸縮性以及如果需要的話,存儲)。

我的建議,不過,會是這樣的:

-One或兩個EC2實例,可能是小型或中型(看看實例類型here),爲了把你的應用程序負載的照顧。更多關於EC2 here
- 無論何時您需要擴展,您都可以在EC2實例前添加Elastic Load Balancer,這樣您就可以在保持橫向可伸縮性的同時向實時生態系統添加實例。
- 對於數據庫,我將從RDS實例(可能較小的尺寸)開始,使用您的首選系統(MySQL,SQL Server或Oracle)。藉助RDS,您可以隨時更改實例大小,並且還可以添加一個或多個讀取副本,以防將來您的應用程序變得需要大量讀取。更多關於RDS here。正如PachinSV指出的另一個不錯的選擇是DynamoDB,由於他已經提到的原因 - 分區,性能,限制較少等。
- 儘管您沒有提到,如果您需要可擴展存儲,S3絕對是您的方式去,並準備好供您使用。

希望它有幫助。

+0

您是否認爲我也可以用Amazon ElastiCache替換我的數據庫?通過在高併發訪問的情況下使用它幾個小時,然後將其結果分析回數據庫中? – buddhabrot 2012-07-12 09:55:43

+0

我更喜歡在讀密集環境中使用Elasticache。我認爲在持久化之前緩存你的數據是沒有太大意義的。 – Viccari 2012-07-12 11:04:06

+0

我現在嘗試了RDS,但是我被困在約10000條記錄更新/分鐘,對於連接到它的一個EC2實例。你認爲我還可以擴展嗎? – buddhabrot 2012-07-12 13:16:09

1

如果您在AWS中沒有使用NoSQL數據庫的漫畫,則必須選擇:SimpleDB和DynamoDB。

對於SimpleDB,您有10GB /表的限制,這意味着您將不得不擔心在多個表中對數據進行分區,並且您還有每秒25次寫入的限制。

使用DynamoDB可以自動處理所有內容,並且您在大小或寫入數量上沒有限制。最好的部分是所有數據都存儲在固態磁盤(SSD)中,這可以幫助您獲得更好的性能。

如果你是一個比較傳統的人跟我一樣,你可以使用RDS(關係數據庫服務),在這裏你可以MSSQL,MySQL和Oracle

0

正如您所提到的,在RDS中,您將被限制爲它們可用的最大實例的容量,並且除此之外,您無法輕鬆擴展。如果最終選擇ACID合規性的SQL解決方案,並且希望有一個數據庫服務(而不是自己在EC2實例上安裝數據庫),EC2上的另一個MySQL選項是Xeround,它具有自動擴展功能,因此可以容納大型併發用戶數量和高吞吐量。

相關問題