In this multi-post article, we will be covering how to deploy Ghost using highly available AWS components.
First you may ask, what is Ghost?
As you read this article, it is hosted via Ghost running on an EC2 instance.
What we'll be building
The following AWS services will be utilized to deploy an auto-scaled, highly available and redundant Ghost installation:
- EC2 (launch configurations, auto scaling groups)
- EC2 (application load balancer)
- ECS (container definition, service, task)
- ECR (storing our desired Ghost version)
- CloudFront (content delivery)
- Route53 (forward zone to point to CloudFront)
- S3 (storage of multimedia from blog, optional)
- EFS (persistent storage for the docker containers)
- RDS (MySQL, multi-AZ optional)
On full deployment, it will resemble this:
In our next installment, we will begin by pulling down the latest Ghost Image from DockerHub along with creating our AWS ECS Task Definition. Stay Tuned!