2024-06-12Hünkar Döner

Essential AWS Services Every Backend Engineer Should Know

E

Essential AWS Services Every Backend Engineer Should Know

AWS has hundreds of services, but you don't need to memorize all of them. If you are a backend engineer building APIs, microservices, distributed systems, or production infrastructure, there is a core set of AWS services you should understand deeply. The important part is not knowing exactly what every service does, but rather knowing which service solves which problem, when to choose it, and what trade-offs it introduces.

The Mental Model You Need

Think about a typical backend application flow:

  1. A user opens your application.
  2. The request reaches your domain (DNS).
  3. A CDN may serve cached content.
  4. A load balancer distributes traffic.
  5. Your backend application runs on containers, virtual machines, or serverless functions.
  6. The application communicates with databases.
  7. Files are stored in object storage.
  8. Long-running work is pushed into queues.

You can build this entire architecture using AWS building blocks.

1. Compute and Containers

  • Amazon EC2 (Elastic Compute Cloud): This is your virtual machine in the cloud. Use EC2 when you need substantial control over the server environment, operating system, networking, and installed software.
  • AWS Lambda: A serverless compute service that allows you to run code without provisioning servers. It scales horizontally and is the core of event-driven and serverless architectures.
  • Amazon ECS and EKS: If you want managed container orchestration without operating the underlying platform yourself, ECS (AWS-native) or EKS (Managed Kubernetes) are essential.

2. Storage and Databases

  • Amazon S3 (Simple Storage Service): The object storage service every backend engineer should know. Never force your application server to become a file-storage system—store the files in S3 and keep the metadata in your database.
  • Amazon RDS (Relational Database Service): A managed relational database service. While AWS handles operational tasks like backups and patching, you still need to understand indexes, query optimization, and transaction management.
  • Amazon DynamoDB: A serverless, fully managed NoSQL database built for massive scale. The golden rule of DynamoDB: design the access patterns first, then design the table around those access patterns.

3. Networking and Security

  • Amazon VPC (Virtual Private Cloud): The networking foundation of your AWS architecture. You use private subnets for backend services and databases, and public subnets for internet-facing components.
  • AWS IAM (Identity and Access Management): The service that decides who can do what. Applying the principle of least privilege is critical. Overly broad IAM permissions create serious security risks, while incorrect ones can break healthy applications.

4. Application Integration and API Management

  • Amazon SQS (Simple Queue Service): A managed message queue designed to decouple distributed systems. It allows workers to process messages asynchronously instead of making services wait for each other synchronously.
  • Amazon SNS (Simple Notification Service): A publish-subscribe messaging service used to broadcast one event to multiple consumers. SQS and SNS are frequently used together.
  • Amazon API Gateway: The managed front door for your APIs. It handles routing, authorization, and throttling, often acting as the entry point for serverless applications interacting with Lambda.

Final Thoughts

AWS is not the architecture; it gives you the building blocks. You still have to design the building. You should constantly ask if your system is secure, reliable, scalable, and observable. Knowing the names of the services is not architecture—understanding their trade-offs and knowing how to connect them is what makes you ready for the cloud.