JAVA docker application in ECS
This is a tutorial on how to deploy an JAVA application built with Maven in ECS using AWS CloudFormation.
The CloudFormation template is posted on on GitHub and contains all you need to have the stack up and running.
Run the CloudFormation template in the AWS Console
- Login to the AWS console and browse to the CloudFormation section
- Select the cloudformation-template.yaml file
- Before clicking "Create", make sure that you scroll down and tick the “I acknowledge that AWS CloudFormation might create IAM resources” checkbox
- ...drink coffee...
- Go to the URL in the output section for the environment that you want to access
Resources created
- 1 VPC and 2 subnets (with public/private routes)
- 1 AutoScaling Group
- 1 Application Load Balancer
- 1 ECS cluster
- 1 RDS MySQL DB
- 1 EFS
- 1 EC2 bashton instance
- 1 SNS topic (send monitoring alerts)
Autoscaling
The autoscaling groups uses the CpuUtilization alarm to autoscale automatically.
Because of this, you wouldn't have to bother making sure that your hosts can sustain the load.
Data persistency
The stack makes use of AWS' EFS system to ensure that even though any container fails it will have access to any data that was previously being handled by the previous container.
Due to its high-throughput and NFS connectivity mechanisms, it has been successfully used to store data for the (single) MySQL container running for each environment.
Backup
Backup is being performed via RDS mecahnisms.
Final notes
Need help implementing this?
Feel free to contact us using this form or via email at