written 3.9 years ago by |
The deployment choices are made keeping in mind that the website needs to handle 2 million users per month.
Current Webserver requirement: 4 vCPUs + 14GB RAM
Current Database Server requirement: 1 vCPUs + 3GB RAM
First thing first, we need to decide upon a region to deploy EC2 instances. Here's a great blog by Concurrency Labs to help us choose one.
Recommended: N. Virginia (us-east-1)
Next up, read about various AWS instance types and use AWS cost calculator to calculate approx cost.
Here are the most suitable instances as per our needs. However, It could be overwhelming to find the best from gazillion choices.
Plan Type | Plan Name | Arch | #CPU | #RAM (GB) | Hourly Rate | ~ Monthly Cost | Good for |
---|---|---|---|---|---|---|---|
General Purpose | m6g.medium | arm | 1 | 4 | - | 15 USD | Db server |
General Purpose | m6g.xlarge | arm | 4 | 16 | - | 50 USD | Web server |
General Purpose | t3a.xlarge | x86 | 4 | 16 | - | 71 USD | Web server |
Went ahead with t3a.xlarge
for Web server and m6g.medium
for Mysql server.
Important Note: It's better to stick with
Intel x86 architecture
for docker because it's more popular with other vendors as compared toarm architecture
. Because in the future, if you need to move out of AWS, it might just be easy.