Basic AWS Architecture Notes
- #AWS
 - #Architecture
 - #Best Practices
 - #Scalability
 
- 2019/04/20
 
Diagram

Services
EC2
Virtual servers. I envision separate instances for web/app, batch jobs, and FTP integration. (Skipping instance classes, pricing, EBS/EFS, etc.)
RDS
Managed relational databases (MySQL, PostgreSQL, Oracle, …). I assume a master + read replica setup that syncs writes from master to slave. (Skipping instance classes, cost, DynamoDB.)
S3
Object storage for images, archives, etc. Manage files per bucket (like directories). When your app runs on EC2 you can upload via the SDK. (Skipping pricing, Glacier, …)
VPC
Virtual Private Cloud for isolating networks. I plan on a single VPC here, though you might separate networks when exposing FTP servers externally.
ELB
Load balancer to spread requests across multiple web servers. (Subnets/security groups omitted.)
ACM
AWS Certificate Manager issues free SSL/TLS certs. Use it to enable HTTPS.
CloudFront
CDN. Accessing S3 directly can rack up transfer costs, so front objects with CloudFront for caching and faster delivery.
Route 53
DNS. Configure A/CNAME records here. (Skipping MX/SES setup.)
Lambda
Runs functions in response to triggers. See other posts for details.
CloudWatch
Monitoring for resource metrics (EC2 CPU/memory, RDS memory, SES bounce rate, heartbeat checks, etc.) plus alerting.
CodeDeploy
Pulls code from GitHub/Bitbucket and deploys with a button click. You can separate DEV/STG/PROD pipelines.
IAM
You must configure IAM roles/policies so EC2 instances and apps can access AWS services. (Details omitted.)