Deploying to AWS with CloudCaptain Permalink to "Deploying to AWS with CloudCaptain"
This guide show how to deploy your JHipster application to AWS using CloudCaptain.
CloudCaptain comes with first-class support for JHipster and works by creating minimal immutable machine images for your application, which can then be deployed either on VirtualBox or on AWS.
Prerequisites Permalink to "Prerequisites"
You will also need to connect your AWS account in the CloudCaptain Console.
Preparing a deployment Permalink to "Preparing a deployment"
When your application is ready, you can prepare it for deployment by typing:
./mvnw package -Pprod -DskipTests
Or when using gradle:
./gradlew -Pprod bootJar -x test
Deploying to AWS Permalink to "Deploying to AWS"
To deploy your application to AWS type:
boxfuse run -env=prod
CloudCaptain will then analyse your application, fuse a minimal machine image for it and automatically provision, configure and secure all necessary AWS infrastructure (instances, security groups, Elastic IPs, ELBs, MySQL or PostgreSQL RDS databases, …)
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 188.8.131.52 ... 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://184.108.40.206:8080/ ... Payload started in 01:29.685s -> http://220.127.116.11:8080/ Remapping Elastic IP 18.104.22.168 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/
Note that you didn’t need to explicitly specify things like ports, healthcheck urls or database types. By default CloudCaptain auto-discovers those
from your JHipster war based on your
application-prod.yml file and the included jars.
You can override those auto-discovered settings if you want to, but in most cases you won’t need to.
Deploying updates Permalink to "Deploying updates"
To deploy an update to an existing application follow the preparation and deploy steps outlined above. All updates are performed as zero downtime-blue deployments.