的Web服務器:
在多個服務器上運行你的應用程序,背後負載平衡器。使用AWS Elastic Beanstalk或使用EC2 +自動調整羣組+ ELB推出自己的解決方案。
您提到了關於負載平衡器「氾濫」的問題,但如果您使用Amazon的Elastic Load Balancer服務,它將自動擴展以處理您獲得的任何流量,這樣您就不必擔心這種擔憂。
數據庫服務器:
移動你的數據庫RDS,並實現多AZ故障切換。這將創建一個熱備份服務器,當您的主服務器出現問題時,您的數據庫將自動進行故障切換。可以選擇添加只讀副本以擴展數據庫容量。
如果您尚未在Redis中開始緩存數據庫查詢。有很多插件可以很容易地用Hibernate來做到這一點。如果您的應用程序定期執行相同的查詢,這會佔用數據庫服務器的巨大負擔。將AWS ElastiCache或RedisLabs用於您的Redis服務器。
圖片:
停止存儲在Web服務器的圖像文件!這造成了很多可伸縮性問題。將這些移動到S3並直接從S3提供服務。 S3爲您提供無限的存儲空間,自動備份以及從S3直接提供圖像的能力,從而減少Web服務器的負載。
部署:
有這麼多的解決方案,在這裏,它只是成爲一個問題,關於哪種方法有人喜歡。如果您使用Elastic Beanstalk,那麼它會爲部署提供解決方案。如果你不使用EB,那麼有數百種解決方案可供選擇。我建議先設計你的環境,然後選擇一個自動化的部署解決方案,它可以與你設計的環境一起工作。
備份:
如果你這樣做對你應該不會有太大您的Web服務器進行備份。使用Elastic Beanstalk,您將需要重建您的Web服務器的是您檢入Git的代碼和配置文件。如果最終不得不備份EC2服務器,則需要查看EBS快照。
對於數據庫備份,RDS將自動執行每日備份。如果你想在RDS之外進行備份,你可以使用pg_dump和cron作業來安排你自己。
對於圖像,您可以啓用S3版本控制和多區域複製。
CDN:
你沒有提到這一點,但你應該尋找到一個CDN。這將允許您的應用程序更快速地服務,同時減少服務器的負載。 AWS提供CloudFront CDN,我也建議您查看CloudFlare。