From the web site High Scalability is a nice article on scaling a service on Amazon Web Services from one to over 11 million users. It’s based on a talk by Joel Williams from AWS.
He lists these main points.
Start with SQL and only move to NoSQL when necessary.
A consistent theme is take components and separate them out. This allows those components to scale and fail independently. It applies to breaking up tiers and creating microservices.
Only invest in tasks that differentiate you as a business, don’t reinvent the wheel.
Scalability and redundancy are not two separate concepts, you can often do both at the same time.
There’s no mention of costs. That would be a good addition to the talk as that is one of the major criticisms of AWS solutions.
The section for just one user is also quite helpful.
Run on a single instance, maybe a type t2.micro. Instance types comprise varying combinations of CPU, memory, storage, and networking capacity and give you the flexibility to choose the appropriate mix of resources for your applications.
The one instance would run the entire web stack, for example: web app, database, management, etc.
Use Amazon Route 53 for the DNS.
Attach a single Elastic IP address to the instance.
A Beginner’s Guide To Scaling To 11 Million+ Users On Amazon’s AWS
AWS re:Invent 2015 | (ARC301) Scaling Up to Your First 10 Million Users