I have a link sharing site (think reddit). It is hosted on godaddy deluxe shared hosting now. I am planning to migrate it to aws.
I have seen an aws webinar on scaling till 10 million users. But basically it just says beyond an extent you can't scale in a vertical manner so choose to scale in a horizontal manner from the beginning itself.
I don't need to support 10 million users. Assume that i need to support 100,000 users daily. At most the site will have say 1000 concurrent users.
Use Case
- Users will post links to the site. Only one in 1000 users will post links.
- Most users just search the site for links, read the description etc.
- About 5000 comments will be made on the site every day.
- It is mainly a text based site.
- There are very little images on the site except user avatar and banner, both of which are limited at 2MB. The images are stored in the DB.
- usual features of a forum like signup,login, account etc are present.
Planned Architecture
- 1 EC2 instance
- 1 RDS instance
- 1 Route 53 Zone
- 1 Elastic ip
- 1 s3 (only for backup)
I plan to scale using this simple method - Start with say t2.micro, as the user base grows simply upgrade the ec2 instance. The same goes for the RDS instances.
I know that 1 EC2 or RDS makes it a single point of failure. If any of these break i plan to terminate that instance and start an identical one from an image/backup. I am okay if the site is offline for 1 hour every 30 days.
Please keep in mind that i have no one to assist me and this is a solo effort. I can find someone to assist on the aws side if it hits users.
- Can i support 100,000 users in this manner?
- At what breakpoints should i upgrade to the next Ec2 instance till the 100,000 users/1000 concurrent users? (eg. Till 5 concurrent users- t2.micro/db.t2.micro, Till 40 concurrent users- EC2 Instance type 2/Rds instance type 2 etc.)
- Is there anything else that i have not considered/ have to consider before going ahead with this plan?