如何在AWS EC2实例上部署Spring Boot应用程序

你好朋友,

在本教程中,我们将看到如何在AWS EC2实例上部署Spring Boot应用程序。

这是我们将要执行的步骤。

1.使用Spring Boot Initialiser创建一个Spring Boot项目。
2.创建一个休息端点,部署后我们可以访问
3.启动EC2实例 4.将我们的Spring Boot项目从本地计算机复制到EC2实例 5.使用SSH连接到EC2实例 6.删除JDK 7并通过EC2实例安装JDK 8 7.在EC2实例上执行spring boot jar 8.确保您的安全组允许通过端口8080并使用TCP协议来自Internet的入站流量 9.通过从浏览器中访问端点URL来测试应用程序
因此,让我们一步一步来看看...。


您可以按照以前的教程之一进行操作,在其中我逐步说明了如何使用Spring Initialiser创建Spring Boot项目。以下是链接。

如何使用Spring Initialiser创建Spring Boot项目

对于此示例,我给项目指定了名称“ springbootproject”,因此您可以使用相同的名称,因为该名称将在后续步骤中使用。

在项目中添加以下Rest端点。我们正在添加此非常基本的端点,以便稍后可以在部署后通过单击此端点来测试应用程序。

 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" ;  }  } 

我编写了详细的分步教程,其中介绍了如何在AWS中启动EC2实例。

链接在这里。 如何在AWS上启动EC2实例

当我们想在EC2上部署我们的spring boot项目时,代码必须移至EC2实例。

将代码从本地计算机复制到EC2实例,然后从代码所在的目录中执行以下命令。

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 <本地计算机上pem文件的路径> <spring引导项目或可交付成果的路径> user @ remote主机名:〜

scp

您可以通过以下链接关于SCP的信息安全复制协议

在AWS中启动EC2实例时,您可以指定密钥对。您可以指定在启动时创建的现有密钥对或新密钥对。在EC2引导时,公钥内容将放置在实例中。 〜/ .ssh /授权密钥中的条目。要登录到实例,必须在连接到实例时指定私钥(.pem文件)。

请注意,每个Linux实例均使用默认的Linux系统用户帐户启动。默认用户名由启动实例时用户指定的API确定。对于Amazon Linux 2或Amazon Linux API,用户名为ec2-user。

〜代表远程EC2系统的主目录。

   要连接到EC2实例,您需要遵循以下说明。

单击实例,然后从以下屏幕上单击“连接”按钮,将获得这些说明。

这是从终端执行命令并连接到ec2实例时的样子。

我从AMI获得的EC2实例默认情况下已打开jdk 7。

我们也可以继续使用JDK 7,但是由于我现在大多数时候都在使用JDK,并且仅使用jdk 8编译我的项目,因此我删除了JDK 7并安装了JDK 8。

删除JDK 7的命令

sudo yum删除java-1.7.0-openjdk

sudo yum安装java-1.8.0

执行以下命令

java -jar springbootproject-0.0.1-SNAPSHOT.jar

在AWS控制台中单击实例并检查与您的实例关联的安全组

正如我们在上面的屏幕截图中看到的那样,此EC2实例所附的安全组是launch-wizard-1

现在,当我们打开此安全组时,我有以下条目,如您所见,它仅允许使用SSH通过端口22进行Internet通信。这完全是我们能够使用SSH从我们的计算机连接到此EC2实例的原因。如果我们从这里删除此规则,SSh将不起作用

但是现在,由于我们要使用http协议从浏览器(互联网)测试端点,并且需要通过端口8080访问我们的应用程序,因此安全组中应该有与之对应的规则。

因此,让我们继续添加安全组入站规则

单击保存,您的新规则将被保存。此外,您无需重新启动实例即可使此安全组规则生效。一旦保存该规则,它将立即生效。

在浏览器中点击以下网址

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实例的公共DNS。


因此,正如您所看到的,我们能够成功地看到来自端点的响应,这意味着springbootproject已成功部署并正在按预期执行。

谢谢您的阅读。此外,我还将在未来几天内在AWS上编写更多此类教程。如果您发现本教程很有用,请不要忘了订阅博客,不要错过最新博客的更新。

翻译自: https://www.javacodegeeks.com/2019/10/deploy-spring-boot-application-aws-ec2-instance.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成为Java流大师–第3部分:终端操作

比尔盖茨曾经说过&#xff1a;“我选择一个懒惰的人去做一件困难的事情&#xff0c;因为一个懒惰的人会找到一个简单的方法来做。” 关于流&#xff0c;没有什么比这更真实了。 在本文中&#xff0c;您将学习Stream如何通过在调用终端操作之前不对源元素执行任何计算来避免不必…

matlab多径信道模型,基于matlab的无线多径信道建模与仿真分析

基于matlab的无线多径信道建模与仿真分析 基于MATLAB的无线多径信道建模与仿真分析 摘 要:对于无线通信, 衰落是影响系统性能的重要因素, 而不同形式的衰落对于信号产生的影响 也不相同。本文在阐述移动多径信道特性的基础上, 建立了不同信道模型下多径时延效应的计算 机仿真模…

您的JVM是否泄漏文件描述符-像我的一样?

前言&#xff1a;此处描述的两个问题是在一年前发现并修复的。 本文仅用作历史证明&#xff0c;也是有关解决Java中文件描述符泄漏的初学者指南。 在Ultra ESB中&#xff0c;我们使用内存RAM磁盘文件缓存来进行快速且无垃圾的有效负载处理。 一段时间以前&#xff0c;我们在共…

螺旋桨设计软件_欧洲斥巨资研发的A400M螺旋桨运输机,为啥就没人买啊?| 图说...

A400M是欧洲自行设计、研制和生产的新一代军用运输机&#xff0c;也是欧盟国家进行合作的最大的武器联合研制项目。A400M最大的特点&#xff0c;就是其标志性的8叶弯刀螺旋桨。A400M也是20世纪后服役的为数不多的几个使用涡轮旋桨发动机的军用运输机之一。A400M曾在系列电影《碟…

JAR文件句柄:烦恼后清理!

在Ultra ESB中&#xff0c;我们使用特殊的热交换类加载器 &#xff0c;该加载器使我们可以按需重新加载Java类。 这使我们能够从字面上热交换我们的部署单元 -加载&#xff0c;卸载&#xff0c;使用更新的类重新加载&#xff0c;以及正常地逐步退出-无需重启JVM。 Windows&…

大气校正后的ndvi_Sentinel2 L1C下载、大气校正、重采样

点击蓝字关注我哦1.基本信息(成像仪/重访周期/波段数/分辨率)哨兵2号是高分辨率多光谱成像卫星&#xff0c;携带一枚多光谱成像仪(MSI)&#xff0c;用于陆地监测&#xff0c;可提供植被、土壤和水覆盖、内陆水路及海岸区域等图像&#xff0c;分为2A和2B两颗卫星,哨兵&#xff0…

php strtotime month bug,处理PHP strtotime的BUG

PHP strtotime的BUG处理最近使用了strtotime结合-1 month, 1 month, next month获取上个月或者下个月的日期&#xff0c;不过刚看到一篇文章&#xff0c;才知道原来使用strtotime直接获取日期还是有点小BUGBUG如日期&#xff1a;$today 2020-12-31;echo date("Y-m-d"…

JMetro版本11.5.11和8.5.11发布

你好 具有新JMetro样式的另一个版本&#xff08;深色和浅色版本&#xff09;&#xff1a; 分割菜单按钮 分割窗格 药丸按钮/分段按钮 调整现有样式和错误修复。 继续阅读以获取详细信息。 分割菜单按钮 以下是一个动画&#xff0c;显示了新的“拆分菜单按钮” JMetro浅色…

python xlutils函数,python3:xlrd、xlwt、xlutils处理excel文件

1.xlrd读取excel请参考上篇博客https://www.cnblogs.com/shapeL/p/9075843.html2.xlwt生成excel安装下载&#xff1a;pip install xlwt导入&#xff1a;import xlwt参考&#xff1a;生成excel文件test1.xlsfile_name ../dataconfig/test1.xlswbk xlwt.Workbook() #初始化work…

通过Apache Kafka集成流式传输大数据

从实时实时过滤和处理大量数据&#xff0c;到将日志数据和度量数据记录到不同来源的集中处理程序中&#xff0c;Apache Kafka日益集成到各种系统和解决方案中。 使用CData Sync &#xff0c;可以轻松地将此类解决方案应用于任何CRM&#xff0c;ERP或Analytics软件。 配置Apach…

安卓php推送消息机制,深入剖析Android消息机制原理

在Android中&#xff0c;线程内部或者线程之间进行信息交互时经常会使用消息&#xff0c;这些基础的东西如果我们熟悉其内部的原理&#xff0c;将会使我们容易、更好地架构系统&#xff0c;避免一些低级的错误。在学习Android中消息机制之前&#xff0c;我们先了解与消息有关的…

oracle数据modeling分类,由浅入深 NoSQL的五种主流数据模型

【IT168 技术】本文内容是对《NoSQL Data Modeling Techniques》一文的简单概述&#xff0c;原文对NoSQL的几种数据模型进行了详细深入的讨论。是了解NoSQL数据模型不过错过的全面资料。NoSQL的一些非功能性的特性&#xff0c;比如扩展性、性能以及一致性的讨论&#xff0c;目前…

dederss.php美国与,Dede经验:全站rss/连载和分类首页模板替换

我用的是Dedecms55 utf-8建的站。首先感谢开源工作者们的劳动&#xff0c;其次要感谢使用者写的N多问题与解答。我一个PHP初用者&#xff0c;能在一个月内&#xff0c;一个人把酷猫网http://www.92kcuat.com 建成今天这样&#xff0c;相信很多朋友都可以。当遇到问题时&#xf…

物联网协议之COAP简介及Java实践

目录 前言 一、COAP简介 1、关于COAP 2、COAP特点 3、基于COAP的NB-IoT接入流程 二、CoAP协议JAVA实践 1、californium介绍 2、Java集成 3、Maven 资源引入 4、定义Server端 5、Client调用 6、运行测试 总结 前言 今天平安夜&#xff0c;祝大家圣诞快乐&#xff0c…

bp配置 sap_SAP转储订单之 STO without delivery

在《SAP转储订单STO小结》一文中&#xff0c;介绍了存转储订单(STO)的几种方式&#xff0c;在SAP Library中有相应的描述&#xff1a;1 Stock Transfer Between Plants in One Step2 Stock Transfer Between Plants in TwoSteps3 Stock Transport Order Without Delivery4 Stoc…

[MEGA DEAL] 2020年完整的Java Master Class Bundle(96%)

通过超过62个小时的培训来掌握最流行的编程语言&#xff0c;从而树立良好的开发生涯 嘿&#xff0c;怪胎&#xff0c; 这一周&#xff0c;我们JCG促销专区 &#xff0c;我们有另一个极端的报价 。我们正在提供一个巨大的96&#xff05;off的完整2020 Python编程认证捆绑 。 立…

linux nc命令测试端口,Linux和Windows下的NC(Netcat)命令测试端口连通性

1、Linux OS 环境下(以Centos为例)&#xff0c;使用nc命令分别测试TCP和UDP端口连通性&#xff1a;css安装方法&#xff1a;nginx在客户端和服务器端分别安装nc工具&#xff0c;安装命令以下&#xff1a;webyum install nc1. Linux OS下使用nc命令&#xff0c;实现TCP方式监听服…

javafx css颜色_JavaFX技巧7:使用CSS颜色常量/派生颜色

javafx css颜色在使用FlexCalendarFX时&#xff0c;我不得不定义一组颜色以可视化不同颜色的不同日历的控件。 每个日历不仅提供一种颜色&#xff0c;还提供几种&#xff1a;用于取消选择/选定/悬停状态的背景和文本颜色。 颜色曾在多个地方使用过&#xff0c;但为了简洁起见&…

linux 查看端口 程序,linux开发:Linux下查看端口占用

前段时间有学生问到&#xff0c;怎么查看linux系统中已经被占用的端口&#xff1f;下面就统一给大家解释一下。提到端口&#xff0c;那首先来回顾端口定义&#xff0c;为了区分一台主机接收到的数据包应该转交给哪个任务来进行处理&#xff0c;使用端口号来区别&#xff1b;我们…

十进制小数化为二进制小数的方法是什么_八进制转换成十进制,十进制转换成八进制...

先来看八进制如何转换成十进制。其方法与二进制转换成十进制差不多&#xff1a;按权相加法&#xff0c;即将八进制每位上的数乘以位权&#xff08;如8,64,512….&#xff09;&#xff0c;然后将得出来的数再加在一起。如将72.45转换为十进制。如图1所示来看看十进制转八进制&am…