Now that we’ve looked at the GCP-based solution architecture for the mentioned case study. Let’s take a look at the AWS-based and Azure-based solution architectures.
Let’s start with AWS.
Architecture Interpretation:
- The user will send a request to AWS’ Elastic Load Balancing service when accessing the website, specifically an Application Load Balancer which is created by Elastic Beanstalk by default. These requests are then routed to the website hosted on Elastic Beanstalk.
- The website’s microservices are containerized and built as a Docker image.
- The Docker image is then pushed into the Elastic Container Registry (ECR).
- The Docker image is then pulled from ECR and built using CodeBuild.
- After the Docker images are built, they are then deployed using Elastic Beanstalk.
- User details are stored in Amazon’s Relational Database Service (RDS) for MySQL
Cost of Services:
Since AWS does not have a US Central region, the US East region was used to determine the costing for this case study.
Service | Assumptions | Cost | Total Cost per Month (30 days) |
Application Load Balancer | Ohio region (US East) 10 forwarding rule evaluations per request | – | USD 16.43 |
Elastic Container Registry | 4 x 10GB containers | USD 0.10 per GB per month | USD 4.00 |
Elastic Beanstalk | – | – | Depends on other AWS services |
CodeBuild | 2 vCPU 3GB Memory (general1.small) 1000 build-minutes per month | USD $0.005 / Linux build-minute (excl. free build-minutes)
| USD 5.00 |
RDS for MySQL | db.t3.medium 2 vCPU and 4GiB Memory 500GB Magnetic Storage | – | USD 99.64 |
USD 125.07 |
The total for this project using AWS services is USD 125.07 per month.
Next let’s take a look at the Azure-based solution.
Architecture Interpretation:
- The user will send a request to Azure’s Load Balancing Service which will then route the request to the website hosted on Azure’s App Service.
- The website’s microservices are containerized and built as a Docker image.
- The Docker image is then pushed into the Azure Container Registry Service.
- App Service then pulls the image from the Container Registry Service and builds it. The image is then deployed to App Service.
- User details are stored in Azure’s Database for MySQL.
Cost of Services:
The region used to determine the costing was Central US.
Service | Assumptions | Cost | Total Cost per Month (30 days/720 hours) |
Azure Load Balancer | 10 forwarding rule per hour | First 5 rules USD 0.025/hour Next 5 rules USD 0.01/rule/hour | USD 54.75 |
Azure Container Registry | 4 units | USD 0.167 per unit per day | USD 19.99 |
Azure App Service | B1 Instance 1 Core 1.75GB Ram 10GB Storage | USD 0.075 per hour | USD 54.00 |
Azure Database for MySQL | Compute Gen 5 2 Cores and 4GiB Memory 500GB Storage | USD 0.082 per hour USD 0.12 GB/month | USD 118.75 |
USD 247.49 |
App Service is able to pull Docker images from the Container Registry and build as well as deploy these containers, thus there is no need for an Azure Service similar to AWS’ CodeBuild or GCP’s Cloud Build service. The total cost for this project using Azure services is USD 247.49 per month.
Now that we have determined the cost for the solution using the three big cloud platforms. We can now compare their pricing differences, pricing structures and determine which of the three would be most cost-effective for this particular case study.