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)
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 architecturefor docker because it's more popular with other vendors as compared to
arm architecture. Because in the future, if you need to move out of AWS, it might just be easy.