AWS can feel overwhelming: the console lists hundreds of services. As an AWS Certified Cloud Practitioner who deploys products for small teams, I find most projects only need a handful. Here's my short list.
S3 for files
User uploads, images, documents and backups all go to S3. It's cheap, durable and works with almost everything. Two rules: keep buckets private by default, and give the app pre-signed URLs to upload and download instead of making files public.
CloudFront in front of it
A CDN in front of S3 (or your app) serves files from a location close to each user. For an audience spread across continents, that's the difference between images that pop in and images that crawl.
A simple compute option
For a small API, I prefer the simplest thing that works:
- Lightsail or a single EC2 instance with Docker for predictable, low-cost hosting
- Elastic Beanstalk or ECS when the app needs to scale out or roll out without downtime
- Lambda for occasional background jobs and webhooks
Managed databases
Running your own database server means doing your own backups, upgrades and failover. RDS handles all three. If you use MongoDB, Atlas on AWS gives you the same convenience.
Amplify for mobile backends
For mobile apps that need authentication, storage and an API quickly, Amplify ties several AWS services together with a client library. It's a fast way to get a React Native app talking to a real backend.
Guardrails from day one
- Billing alerts, so a misconfigured service doesn't become a surprise invoice
- IAM users with least privilege, never the root account for daily work
- Infrastructure written down, whether as code or at least in a checklist, so the setup can be recreated
Start small, add services when a real need appears, and keep an eye on the bill.

Comments (0)
No comments yet. Start the conversation.
Join the conversation
Sign in or create a free account to comment.