Basic AWS Architecture Notes

Diagram

AWS network 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.)