2017-10-04 by Axel Fontaine
CloudCaptain originally launched with two types of apps: single-instance
for applications using Elastic IP addresses
and load-balanced
for applications using Classic Elastic Load Balancers. Over time we have added support for additional
types of applications such as workers apps
and one-off apps
to support more diverse
types of workloads.
Today CloudCaptain is expanding further with support for load-balanced-https
apps using AWS Application Load Balancers,
together with Auto Scaling Groups and optionally custom domains and TLS (SSL) certificates.
When you create a new load-balanced-https
app using either the CloudCaptain Console
or the CloudCaptain Client
> boxfuse create my-app -app.type=load-balanced-https
CloudCaptain will be set up to automatically provision and configure all necessary resources when the app is deployed.
Just for the ALB this includes:
AWS Application Load Balancers come with a number of important improvements for applications serving traffic over HTTP(S) including HTTP/2 and WebSockets, while building on the important features you already love like Auto Scaling and automatic TLS certificate management.
So let’s see how this works if we deploy our sample Spring Boot application on AWS:
> boxfuse run -app.type=load-balanced-https -env=test -tls.type=acm -domain=hello.boxfuse-example.com
Creating hello ...
Successfully created app hello (type: load-balanced-https, tls: acm, db: none, logs: cloudwatch-logs)
Fusing Image for hello.jar (Spring Boot) ...
Image fused in 00:03.673s (62850 K) -> myuser/hello:1.0
Pushing myuser/hello:1.0 ...
Verifying myuser/hello:1.0 ...
Waiting for AWS to create an encrypted AMI for myuser/hello:1.0 in eu-central-1 (this may take up to 50 seconds) ...
AMI created in 00:47.010s in eu-central-1 -> ami-75de631a
Creating security group boxsg-myuser-test-hello ...
Creating Log Stream boxfuse/test > myuser/hello ...
Creating Application Load Balancer for myuser/hello in test ...
Creating Target Group myuser-test-hello ...
Found certificate for hello.boxfuse-example.com => arn:aws:acm:eu-central-1:...
Creating ALB Listener for port 80 ...
Creating security group boxsg-myuser-test-hello-1.0 ...
Creating Launch Configuration boxlc-myuser-test-hello-1.0 ...
Creating Auto Scaling Group boxasg-myuser-test-hello-1.0 ...
Waiting for Auto Scaling Group boxasg-myuser-test-hello-1.0 to launch 1 t2.micro Instance ...
Auto Scaling Group: i-063c0eab44eb5d87c [Pending]
Auto Scaling Group: i-063c0eab44eb5d87c [InService]
Waiting for ALB to become active (this may take up to 10 minutes) ...
Waiting for ALB Target Group to put instances in service ...
ALB: i-063c0eab44eb5d87c [healthy]
Successfully running myuser/hello:1.0 in test at https://hello.boxfuse-example.com/
And our app is fully up and running, load balanced in an auto scaling group with a custom domain and an automatic TLS certificate.
All deploys from here on are performed with zero downtime by simply launching a new auto scaling group and switch out the old one within the target group.
Advanced users also have the option to configure their own ALB and Target Group. From there all that is needed is simply pointing CloudCaptain at the name of the desired Target Group and CloudCaptain will use that one instead of the ALB and Target Group auto provisioning described above.
Support for load-balanced-https
apps is available today at no additional charge on all paid CloudCaptain plans. Enjoy!
So if you haven’t already, sign up for your CloudCaptain account now (simply log in with your GitHub id, it’s free), start deploying your application effortlessly to AWS today and have it running in minutes.