javascript
如何在AWS EC2实例上部署Spring Boot应用程序
你好朋友,
在本教程中,我們將看到如何在AWS EC2實(shí)例上部署Spring Boot應(yīng)用程序。
這是我們將要執(zhí)行的步驟。
1.使用Spring Boot Initialiser創(chuàng)建一個(gè)Spring Boot項(xiàng)目。
2.創(chuàng)建一個(gè)休息端點(diǎn),部署后我們可以訪問
3.啟動(dòng)EC2實(shí)例 4.將我們的Spring Boot項(xiàng)目從本地計(jì)算機(jī)復(fù)制到EC2實(shí)例 5.使用SSH連接到EC2實(shí)例 6.刪除JDK 7并通過EC2實(shí)例安裝JDK 8 7.在EC2實(shí)例上執(zhí)行spring boot jar 8.確保您的安全組允許通過端口8080并使用TCP協(xié)議來自Internet的入站流量 9.通過從瀏覽器中訪問端點(diǎn)URL來測試應(yīng)用程序 。
因此,讓我們一步一步來看看...。
您可以按照以前的教程之一進(jìn)行操作,在其中我逐步說明了如何使用Spring Initialiser創(chuàng)建Spring Boot項(xiàng)目。以下是鏈接。
如何使用Spring Initialiser創(chuàng)建Spring Boot項(xiàng)目
對于此示例,我給項(xiàng)目指定了名稱“ springbootproject”,因此您可以使用相同的名稱,因?yàn)樵撁Q將在后續(xù)步驟中使用。
在項(xiàng)目中添加以下Rest端點(diǎn)。我們正在添加此非常基本的端點(diǎn),以便稍后可以在部署后通過單擊此端點(diǎn)來測試應(yīng)用程序。
package com.blogspot.javasolutionsguide.springbootproject; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author JavaSolutionsGuide * */ @RestController @RequestMapping (value = "/api" ) public class Hello { @GetMapping (value = "/v1/data" ) public String sayHelloWorld() { return "Hello JavaSolutionsGuide Readers" ; } } 我編寫了詳細(xì)的分步教程,其中介紹了如何在AWS中啟動(dòng)EC2實(shí)例。
鏈接在這里。 如何在AWS上啟動(dòng)EC2實(shí)例
當(dāng)我們想在EC2上部署我們的spring boot項(xiàng)目時(shí),代碼必須移至EC2實(shí)例。
將代碼從本地計(jì)算機(jī)復(fù)制到EC2實(shí)例,然后從代碼所在的目錄中執(zhí)行以下命令。
scp -i /用戶/ Aakarsh /下載/
EC2Keypair.pem /用戶/ Aakarsh /下載/springbootproject/target/springbootproject-0.0.1-SNAPSHOT.jar ec2-user@ec2-54-242-53-241.compute-1.amazonaws.com:?
scp的語法如下所示
scp -i <本地計(jì)算機(jī)上pem文件的路徑> <spring引導(dǎo)項(xiàng)目或可交付成果的路徑> user @ remote主機(jī)名:?
scp
您可以通過以下鏈接關(guān)于SCP的信息安全復(fù)制協(xié)議
在AWS中啟動(dòng)EC2實(shí)例時(shí),您可以指定密鑰對。您可以指定在啟動(dòng)時(shí)創(chuàng)建的現(xiàn)有密鑰對或新密鑰對。在EC2引導(dǎo)時(shí),公鑰內(nèi)容將放置在實(shí)例中。 ?/ .ssh /授權(quán)密鑰中的條目。要登錄到實(shí)例,必須在連接到實(shí)例時(shí)指定私鑰(.pem文件)。
請注意,每個(gè)Linux實(shí)例均使用默認(rèn)的Linux系統(tǒng)用戶帳戶啟動(dòng)。默認(rèn)用戶名由啟動(dòng)實(shí)例時(shí)用戶指定的API確定。對于Amazon Linux 2或Amazon Linux API,用戶名為ec2-user。
?代表遠(yuǎn)程EC2系統(tǒng)的主目錄。
?? 要連接到EC2實(shí)例,您需要遵循以下說明。
單擊實(shí)例,然后從以下屏幕上單擊“連接”按鈕,將獲得這些說明。
這是從終端執(zhí)行命令并連接到ec2實(shí)例時(shí)的樣子。
我從AMI獲得的EC2實(shí)例默認(rèn)情況下已打開jdk 7。
我們也可以繼續(xù)使用JDK 7,但是由于我現(xiàn)在大多數(shù)時(shí)候都在使用JDK,并且僅使用jdk 8編譯我的項(xiàng)目,因此我刪除了JDK 7并安裝了JDK 8。
刪除JDK 7的命令
sudo yum刪除java-1.7.0-openjdk
sudo yum安裝java-1.8.0
執(zhí)行以下命令
java -jar springbootproject-0.0.1-SNAPSHOT.jar
在AWS控制臺(tái)中單擊實(shí)例并檢查與您的實(shí)例關(guān)聯(lián)的安全組
正如我們在上面的屏幕截圖中看到的那樣,此EC2實(shí)例所附的安全組是launch-wizard-1
現(xiàn)在,當(dāng)我們打開此安全組時(shí),我有以下條目,如您所見,它僅允許使用SSH通過端口22進(jìn)行Internet通信。這完全是我們能夠使用SSH從我們的計(jì)算機(jī)連接到此EC2實(shí)例的原因。如果我們從這里刪除此規(guī)則,SSh將不起作用
但是現(xiàn)在,由于我們要使用http協(xié)議從瀏覽器(互聯(lián)網(wǎng))測試端點(diǎn),并且需要通過端口8080訪問我們的應(yīng)用程序,因此安全組中應(yīng)該有與之對應(yīng)的規(guī)則。
因此,讓我們繼續(xù)添加安全組入站規(guī)則
單擊保存,您的新規(guī)則將被保存。此外,您無需重新啟動(dòng)實(shí)例即可使此安全組規(guī)則生效。一旦保存該規(guī)則,它將立即生效。
在瀏覽器中點(diǎn)擊以下網(wǎng)址
http://ec2-3-19-64-196.us-east-2.compute.amazonaws.com:8080/api/v1/data
ec2-3-19-64-196.us-east-2.compute.amazonaws.com在這里是EC2實(shí)例的公共DNS。
因此,正如您所看到的,我們能夠成功地看到來自端點(diǎn)的響應(yīng),這意味著springbootproject已成功部署并正在按預(yù)期執(zhí)行。
謝謝您的閱讀。此外,我還將在未來幾天內(nèi)在AWS上編寫更多此類教程。如果您發(fā)現(xiàn)本教程很有用,請不要忘了訂閱博客,不要錯(cuò)過最新博客的更新。
翻譯自: https://www.javacodegeeks.com/2019/10/deploy-spring-boot-application-aws-ec2-instance.html
總結(jié)
以上是生活随笔為你收集整理的如何在AWS EC2实例上部署Spring Boot应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里巴巴卖家版官方下载2015电脑版(阿
- 下一篇: gradle idea java ssm