使用Boxfuse部署到AWS

本指南展示了如何使用Boxfuse将JHipster应用程序部署到AWS。

Boxfuse对JHipster具有一等支持,通过为您的应用程序创建最小的不可变机器镜像来工作,然后可以将其部署在VirtualBox或AWS上。

提示: 作为Boxfuse的替代方法,您还可以使用Elastic Beanstalk将JHipster应用程序部署到AWS。

先决条件

为了能够进行部署,您必须首先创建一个Boxfuse帐户并安装Boxfuse客户端

您还需要在Boxfuse Console中连接您的AWS账户。

准备部署

准备好应用程序后,可以通过输入以下内容来准备进行部署:

./mvnw package -Pprod -DskipTests

或使用gradle时:

./gradlew -Pprod bootJar -x test

部署到AWS

要将您的应用程序部署到AWS,请输入:

boxfuse run -env=prod

然后,Boxfuse将分析您的应用程序,为其打包一个最小的机器镜像,并自动配置,配置和保护所有必需的AWS基础架构(实例,安全组,弹性IP,ELB,MySQL或PostgreSQL RDS数据库,等等)。

Creating jhipster ...
Mapping jhipster-dev-myuser.boxfuse.io to 127.0.0.1 ...
Created App jhipster (single-instance / postgresql)
Fusing Image for jhipster-1.0.war (JHipster) ...
Image fused in 00:05.036s (96301 K) -> myuser/jhipster:1.0
Pushing myuser/jhipster:1.0 ...
Verifying myuser/jhipster:1.0 ...
Creating security group boxsg-db-myuser-prod-jhipster ...
Creating RDS PostgreSQL database (db.t2.micro / 5 GB / single-az) => boxdb-myuser-prod-jhipster (this one-time action may take up to 10 minutes to complete) ...
Waiting for AWS to create an AMI for myuser/jhipster:1.0 in eu-central-1 (this may take up to 50 seconds) ...
AMI created in 00:35.564s in eu-central-1 -> ami-35fa0b5a
Waiting for AWS to make RDS DB boxdb-myuser-prod-jhipster available ...
DB boxdb-myuser-prod-jhipster [creating]
DB boxdb-myuser-prod-jhipster [backing-up]
DB boxdb-myuser-prod-jhipster [available]
Creating security group boxsg-myuser-prod-jhipster ...
Creating Elastic IP ...
Mapping jhipster-myuser.boxfuse.io to 52.29.78.197 ...
Creating security group boxsg-myuser-prod-jhipster-1.0 ...
Launching t2.micro instance of myuser/jhipster:1.0 (ami-35fa0b5a) in prod (eu-central-1) ...
Instance launched in 00:20.687s -> i-95d15028
Creating Cloud Watch Alarm for Instance auto-recovery -> i-95d15028-auto-recovery-alarm
Waiting for AWS to boot Instance i-95d15028 and Payload to start at http://54.93.63.207:8080/ ...
Payload started in 01:29.685s -> http://54.93.63.207:8080/
Remapping Elastic IP 52.29.78.197 to i-95d15028 ...
Waiting 15s for AWS to complete Elastic IP Zero Downtime transition ...
Deployment completed successfully. myuser/jhipster:1.0 is up and running at http://jhipster-myuser.boxfuse.io:8080/

请注意,您无需明确指定端口,健康检查URL或数据库类型之类的内容。默认情况下,Boxfuse会根据JHipster war中application-prod.yml文件和包含的jar文件来自动发现。当然,您可以根据需要覆盖这些自动发现的设置,但是在大多数情况下,您不需要这样做。

部署更新

要将更新部署到现有应用程序,只需遵循上面概述的准备和简单部署步骤。所有更新均可零停机时间,蓝色部署来执行。

更多信息