Course Code: microaws
Duration: 21 hours

Prerequisites:

Participants should have:

  • Basic to intermediate experience with Python
  • Basic understanding of REST APIs, HTTP and web application concepts.
  • Basic familiarity with Linux command-line tools and Git.
  • Basic understanding of Docker and containerisation concepts is recommended, but not mandatory.
  • Basic familiarity with cloud computing concepts and AWS services is helpful

Overview:

This course provides a practical introduction to designing, building, deploying and managing cloud-native microservices on Amazon Web Services (AWS). Participants will explore the principles of microservices architecture, Docker-based development, event-driven communication and asynchronous messaging using services such as Amazon SQS, SNS and EventBridge.

The course covers the complete microservices lifecycle, including deployment with Amazon ECS and AWS Lambda, API management with Amazon API Gateway, observability using CloudWatch, AWS X-Ray and OpenTelemetry, as well as essential security, CI/CD and Infrastructure as Code concepts. Through hands-on exercises, participants will build and connect distributed services and gain practical experience with the core AWS technologies used in modern microservices architectures.

Course Outline:

Introduction to Microservices Architecture 

  • What are microservices?
  • Benefits and challenges of microservices
  • Comparison with monolithic architectures

Setting Up AWS Cloud9 for Microservices Development — Quick setup

  • Creating an AWS Cloud9 environment
  • Configuring the development environment
  • Connecting AWS services to Cloud9

Building Microservices with Docker

  • Introduction to Docker and containerization
  • Building and testing Docker containers
  • Using Docker Compose for multi-container applications
  • Hands on exercise: building a multi container application locally

Event Driven Architecture and Asynchronous Messaging

  • Principles of event driven architecture and synchronous versus asynchronous communication
  • Amazon SQS for queue based messaging
  • Amazon SNS for publish subscribe messaging
  • Amazon EventBridge for event routing and dispatching
  • Kafka and Amazon MSK as an alternative for high volume streaming — Overview only, optional
  • Hands on exercise: implementing asynchronous communication between two services using SQS and SNS, then extending with EventBridge routing

Deploying Microservices on AWS (ECS, Lambda and EKS)

  • Setting up Amazon ECS for container orchestration
  • Deploying microservices with AWS Lambda
  • Introduction to Kubernetes and Amazon EKS as an alternative orchestration option — Overview only, comparative with ECS
  • Service discovery in a microservices architecture
  • Scaling microservices in AWS
  • Hands on exercise: deploying on ECS and comparing with an EKS setup

Managing APIs with AWS API Gateway

  • Creating and managing RESTful APIs
  • Connecting APIs to microservices
  • API versioning and throttling
  • Hands on exercise: exposing microservices through an API Gateway with versioning

Observability, Monitoring, Logging and Distributed Tracing

  • Using AWS CloudWatch for monitoring
  • Setting up logging with Amazon CloudWatch Logs
  • Implementing alarms and notifications
  • Distributed tracing concepts
  • AWS X-Ray for request tracing
  • OpenTelemetry for vendor independent instrumentation
  • Hands on exercise: instrumenting microservices with X-Ray and OpenTelemetry and tracing a request across services

CI/CD and Infrastructure as Code 

  • CI/CD pipeline concepts for microservices
  • Overview of Terraform for infrastructure provisioning

Microservices Security Best Practices

  • Implementing IAM roles and policies
  • Securing microservices with API Gateway
  • Encrypting data in transit and at rest