2014-03-12 42 views
9

我目前正在運行通過Elasticache使用Redis的站點。我們希望移動到RAM更大的實例,因爲我們現在的實例類型已經達到了70%左右。擴展彈性緩存實例?

有沒有一種方法可以按照與縮放RDS實例相同的方式來擴展Elasticache實例?

另外,我想創建一個副本組,並添加一個更大的實例。然後,一旦它被複制並運行,就將新實例提升爲主。這似乎不可能通過AWS控制檯進行,因爲副本是使用與主節點相同的實例類型創建的。

我錯過了什麼,或者它只是一個無法實現的用例。我明白,我可以開始一個更大的實例,並手工處理複製然後將Web服務器轉移到使用新的服務器,但這將需要一些停機由於DNS遷移等

感謝! 艾倫

回答

9

Elasticache在memcached的意義上感覺更像緩存解決方案,這意味着要擴大規模,您確實會啓動一個新的羣集並將您的應用程序切換到它。性能會下降一會兒,因爲高速緩存將不得不重建,但沒有更多。

但是,對於很多人來說(我懷疑你包括在內),Redis更像是一個NoSQL數據庫解決方案,其中的數據丟失是不可接受的。亞馬遜提供的只讀副本作爲該問題的「解決方案」,但仍存在一些問題。當然,它提供了複製功能以減少數據丟失的風險,但它仍然遠不如RDS適合Redis的產品安全(或成熟)(與高速緩存相反,它非常完美),它提供備份和恢復程序,以及結構良好的變更管理以支持擴展。據我所知,ElastiCache支持而不是支持更改正在運行的羣集的實例類型。這表明它只是一個內存中的解決方案,在重新引導時會丟失所有數據。

我甚至會說如果數據丟失與你有關,你應該看看自卷Redis解決方案,而不是簡單地使用ElastiCache。它不僅運行起來更便宜,而且可以讓您像在任何其他EC2實例上那樣更改實例類型(當然,在停止它之後)。它也將使您能夠使用RDB或AOF持久性。

+0

謝謝!我們正在使用Redis作爲準數據庫解決方案是正確的,我們實際上正在計劃運行2個Redis服務器,其中一個在我們的數據庫之前就像傳統的緩存。這是第二臺服務器,數據需要在我們關心的擴大範圍內保留。 我們現在正在考慮使用Scalr.com來管理我們的Redis服務器,因爲它們提供只讀副本以及迄今爲止看起來非常快速的故障轉移。優點是我們可以擴展到我們想要的AWS實例類型。 謝謝!, Alan – aclelland

+0

爲了解決最後一點,ElastiCache Redis確實允許RDB快照和AOF:「Redis從服務器可用於根據需要生成RDB快照和/或AOF追加日誌,並且您可以將這些文件傳輸到S3以獲得耐用性「。來自https://aws.amazon.com/elasticache/faqs/#redis-features – cldwalker

+0

是的,當然,我可能已經走得太遠了。通過拆除實例並基於快照構建另一個實例來擴大規模,當然可以解決當前的問題。但是,我支持我說的話:我不會推薦使用ElastiCache作爲數據庫。我懷疑亞馬遜本身也會這樣。 –

1

是的,你可以立即運行Elasticache實例類型擴展到更大的尺寸。我已經測試了它,並且經歷了非常少的實際停機時間(我想起初幾秒鐘,但很快它恢復在線,即使控制檯將顯示實際完成需要大約幾分鐘的過程。)我從t2 .micro到一個m3.medium沒有問題。