Service Mesh using AWS App Mesh

This workshop has been deprecated and archived. The new Amazon EKS Workshop is now available at www.eksworkshop.com.

Meshifying with AWS App Mesh (Part 1)

Meshifying with AWS App Mesh (Part 2)

At re:invent 2018, we announced AWS App Mesh, a service mesh that provides application-level networking to make it easy for your services to communicate with each other across multiple types of compute infrastructure. AWS App Mesh standardizes how your services communicate, giving you end-to-end visibility and ensuring high-availability for your applications.

Service meshes like AWS App Mesh help you to run and monitor HTTP and TCP services at scale. Whether your application consists of AWS Fargate, Amazon EC2, Amazon ECS, Amazon Kubernetes Service, or Kubernetes clusters or instances, AWS App Mesh provides consistent routing and traffic monitoring functionality, giving you insight into problems and the ability to re-route traffic after failures or code changes.

AWS App Mesh uses the open source Envoy proxy, giving you access to a wide range of tools from AWS partners and the open source community. Since all traffic in and out of each service goes through the Envoy proxy, all traffic can be routed, shaped, measured, and logged. This extra level of indirection lets you build your services in any desired languages without having to use a common set of communication libraries.

In this tutorial, we’ll walk you through the following, which are popular App Mesh use cases using the example of below Product Catalog Application deployment:

  • Deploy a microservices-based application in Amazon EKS using AWS Fargate
  • Configure an App Mesh Virtual Gateway to route traffic to the application services
  • Create a Canary Deployment using App Mesh
  • Enable observability features with App Mesh, including logging for Fargate, Amazon Cloudwatch Container Insights, and AWS X-Ray tracing

fronteend