[英]Java EE application deployment on Amazon EC2
我們有一個Java EE應用程序(部署在JBoss ,MySQL, MongoDB上的EAR文件),我們希望在Amazon EC2實例上部署它。 關於部署最佳實踐,我有幾個問題。
這是我第一次托管一個網絡應用程序,並希望了解如何管理生產實例的一些輸入。
我有一個共同的圖像,這是我所做的每個版本部署的基礎。 我有www.mysite.com指向彈性IP,所以我可以決定它去哪個實例。 公共映像包含我需要安裝的所有軟件(Postgres / Postgis / Tomcat / etc),但數據庫和Web服務器數據文件夾以及符號鏈接到Elastic Block Store(EBS)實例。
當需要進行部署時,我會啟動一個新實例,凍結並快照生產中的EBS卷並創建新卷。 我將新實例指向新卷,然后安裝我需要的任何內容。 一旦我成功地測試了所有內容,我就可以將彈性IP切換為指向新實例並且一切都在繼續。
我會注意到我目前只有可以修改數據庫的優勢; 沒有用戶可以。 這很快就會成為一個問題。
如果您在EBS卷上使用XFS文件系統,那么您可以告訴XFS凍結文件系統(因此不會發生更新),然后調用EC2 api對卷進行快照,然后解凍文件系統。 結果是快速拍攝快照並發送到S3。 我有一個夜間劇本,這樣做。
如果RDS看起來符合您的需求,那么請使用它。 亞馬遜正在快速構建大量可靠的工具,如果您有任何問題,這將減輕您的可擴展性問題。
對不起,我不知道。
好問題!
1)我建議你選擇最適合自己的Linux版本。 如果你有一個非常熱衷於CentOS的人,那就去吧。 選擇AMI后,請通過配置AMI來獲取AMI並進行自定義。 然后在基礎布局時保存該 AMI。 如果EC2發生故障,它將使新機器的推出變得更加容易並節省你的培根。
2)EC2升級可以很酷。 取代升級實時系統,取出預先配置的AMI,更新並將AMI保存為myAMI-1.1(或其他)。 這樣,您幾乎可以立即翻轉到新系統並回滾到以前的版本,以防萬一。 您還可以將數據庫實例備份到S3。 它便宜約0.10美元/ GB /月。
3)這取決於您存儲數據庫的位置。 如果您將它存儲在您的EC2實例上,則您遇到了麻煩。 EC2實例沒有持久性存儲。 因此,如果您的機器崩潰,您將失去一切。 我不熟悉Amazon DB系統,但您也應該查看Elastic Block Store。 它基本上是一個你可以寫的實際硬盤。 如果要升級架構,請對S3執行完整的數據庫轉儲,然后升級實際架構。 如果出現問題,您可以從S3中刪除以前的版本。
4)&5)我從未使用過這些,所以我無法幫助你。
如果您可以在TomEE而不是JBoss上部署Java EE應用程序,Boxfuse 可以滿足您的需求。
對於Java EE應用程序,您只需要執行(TomEE使用war文件而不是ear文件):
boxfuse run my-tomee-app-1.0.war -env=prod
這將
任何后續更新都將作為零停機藍/綠部署完成。
更多信息: https : //boxfuse.com/blog/javaee-aws
What is the most commonly used Linux AMI which we can rely on for a robust deployment (There are so many Linux variants, and I am not sure which AMI is commonly used, is it Fedora, CentOS, Red Hat, SUSE ...) How do we handle production upgrades (EAR file modifications or schema upgrades). Are there any tools which are available to handle this installation or rollback of these changes. What kind of data backup capability is available for the database? Should I rely on Amazon RDS for MySQL support? How should I handle support for MongoDB?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.