簡體   English   中英

如何在Amazon EC2上運行Java服務器?

[英]How to run a Java server on Amazon's EC2?

我想將用Java編寫的服務器程序放在雲上。 它將接受來自客戶端的TCP套接字連接(客戶端是使用3G的android手機),進行一些計算,將內容保存到MySQL數據庫(也在EC2上),然后通過TCP連接將內容發送回客戶端。 甚至可能有必要創建服務器的多個實例(即進程組)。

這容易做到嗎? 我想我可以進行AMI,但是我不確定如何上傳Java文件,編譯和運行它們以及創建MySQL數據庫等。

任何幫助將非常感激。

看一下使用Amazon Elastic Beanstalk的情況 Beanstalk是Amazon的PaaS產品,它將減輕許多系統管理負擔。 這是他們的文檔的簡要說明:

AWS Elastic Beanstalk是您更輕松地在AWS雲中快速部署和管理應用程序的方法。 您只需上傳您的應用程序,Elastic Beanstalk就會自動處理容量配置,負載平衡,自動擴展和應用程序運行狀況監視的部署詳細信息。

另外,如果您對使用MySQL感興趣,則應查看Amazon RDS 同樣,這將減輕數據庫層的系統管理負擔。 這是他們的文檔的簡要說明:

Amazon Relational Database Service(Amazon RDS)是一項Web服務,可輕松在雲中設置,操作和擴展關系數據庫。 它在管理耗時的數據庫管理任務的同時,提供了經濟高效且可調整大小的容量,使您可以騰出時間專注於應用程序和業務。

這容易做到嗎? 我想我可以進行AMI ...

我認為答案取決於您對系統管理的總體滿意度。 創建在EC2中運行的AMI與創建物理服務器或VM映像幾乎完全相同。 您需要安裝操作系統,然后安裝所需的工具,庫和程序(例如mysql,jdk,ssh等)。

您可以使用Amazon預先構建的AMI之一http://aws.amazon.com/amis/來節省一些工作。 但是,最終,您將負責服務器的所有系統管理。 如果您從未從頭開始構建服務器,那么您前面的學習曲線將會很大。 這不是無法克服的,只是要警告魔鬼在細節中。 有很多東西你需要學習;-)

...但是我不確定如何上傳Java文件,編譯和運行它們,...

在EC2中設置並運行服務器后,對其進行編譯並運行Java文件與在本地進行編譯並運行相同。 通常,您可能希望將Java應用程序編譯並打包到jar或war中,然后將其傳輸到EC2服務器。 如果在EC2服務器上安裝linux os,則可以使用scp或FTP客戶端通過sftp傳輸文件,以將文件從本地移動到服務器。 一旦服務器上有最新文件,就可以SSH到服務器上並啟動應用程序。

...並創建一個MySQL數據庫等...

安裝mysql將特定於您選擇在服務器上安裝的OS。 例如,您可以使用以下命令在Ubuntu上輕松安裝mysql:

sudo aptitude install mysql

同樣,這里將有更多有關mysql數據庫的系統管理員類型的資料。

因此,這絕對是可行的。 有經驗的系統管理員可以輕松/快速地構建AMI實例。 如果這是您第一次進行系統管理,建議您找一個舊台式機,嘗試安裝Ubuntu以及所需的所有必需庫和工具(mysql,jdk,ssh等)。 讓您的Java程序在舊桌面上運行,然后從中創建AMI應該很容易。 然后,您可以在EC2上運行自定義AMI,並將對其進行設置。

如果沒有閑置的桌面,則可以使用其中一種虛擬機產品,例如VMWare Player或Sun的VirtualBox,並在其中一種上構建服務器實例。

如果要避免管理整個操作系統的麻煩,則可能需要查看諸如slicehost和/或linode之類的服務,而不是EC2。 它們使您可以通過ssh訪問預安裝的服務器。 這就像單擊按鈕以安裝mysql等程序一樣簡單。

希望這個答案是有意義和有用的,祝您好運。 -戴夫

如果可以將Tomcat用作服務器,則可能需要嘗試Amazon Web Services Elastic Beanstalk。它通過提供易於部署的Tomcat實例,將大大簡化您的任務。

編輯:AWS在此處提供了有關如何使用Java進行開發的完整章節: http : //aws.amazon.com/java/

  1. 正在運行的應用程序需要應用程序。 s / w運行它們。

  2. Cyber​​ Duck等應用程序可幫助通過SFTP上傳文件。

  3. 我可以成功解決相同的問題。相信我,您可以做到。 您所需要的只是服務器服務的接口,例如MySQL(使用WorkBench通過密鑰對進行連接),終端訪問(通過MAC使用PUTTY / SSH),以及一切順利

您對遠程管理服務器和解決大多數人從未聽說過的問題感到滿意嗎? 那就是你在說的。

您將創建EC2實例,登錄並對其進行配置,就像使用其他任何服務器一樣。 您可以將JDK,dbs等下載到其中。您可以考慮使用Chef等工具來幫助您。 您將使用ftp和scp將文件復制到服務器。

您可能會希望將Java服務器放在一個盒子上,並使其與單獨的數據庫服務器通信,因為您說可能需要多個服務器。

服務器以您喜歡的方式工作后,您可以創建它的映像以用於啟動多個實例,然后配置負載均衡器以指向您的服務器。

如果可以在本地框上創建MySql數據庫,則可以在雲中創建它。 如果不?....

我認為開始使用的是將整個單元打包到一個檔案中。

當您編譯Java文件時,可以想到它,一個嵌入式http服務器說tomcat 現在,所有這些都打包在一個jar中,可以在Amazon's EC2上部署。 有關嵌入式服務器和相關代碼的更多信息,請使用鏈接。

就數據庫而言,您可以使用Amazon的RDS。 您可以在RDS上配置mysql並獲取指向它的鏈接以進行連接。 Amazon RDS將幫助您開始使用數據庫。

現在,您已准備就緒,可以開始和使用應用程序。 現在是時候在Amazon AMI上進行部署了

執行以下步驟以在Amazon EC2上部署您的應用程序:

  1. 在Amazon EC2上創建服務器實例,請參閱EC2入門
  2. 接收私鑰文件,即.pem (從步驟1接收),該文件將幫助您登錄到服務器實例並執行SFTP。
  3. 使用Putty或類似的SSH client使用.pem文件和服務器的公共DNS登錄到在步驟1中創建的EC2服務器實例,請參閱訪問實例進行SSH登錄。
  4. 使用SFTP客戶端將打包到jar中的存檔文件傳輸到服務器, WinnSCP就是這樣的客戶端之一,請參考SFTP以獲得更多信息。
  5. 運行應用程序。 請注意,如果使用jar文件,則只需觸發java -jar TomcatApp.jar

如果一切配置正確,您將使用EC2實例的public DNSpublic IP來訪問應用程序,其格式為:
http://<public_dns_address>:<port number>/servlet

希望它可以幫助您入門並為您提供總體看法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM