Step by Step Procedure to Integrate AWS App Mesh with EKS
This post is for engineers who are already familiarized with microservices, Kubernetes and AWS.
Businesses will need a centralized method to manage, secure, and discover services, regardless of their language, deployment model, or domain. This is where a service mesh enters the picture.
Introduction to AWS Service mesh
A service mesh is an infrastructure layer that you can add into your applications. It allows you to add transparent capabilities such as traffic management, security, and observability without having to modify your code. This is a secure, reliable, and fast service-to-service communication.
The architecture above allows microservices backend frontend and Postgres to interact through envoy proxy.
Implementation of Service Mesh AWS
We will use AWS APP mesh, Amazon EKS, and Amazon EKS for the implementation.
Amazon EKS is a managed service that allows Kubernetes to be run on AWS. It does not require you to install, operate, or maintain your Kubernetes control planes or nodes.
AWS App Mesh allows you to connect services, monitor your application’s network, and manage traffic flow. App Mesh standardizes the way services communicate to each other, ensuring high availability and visibility for your applications.
App Mesh provides you with consistent visibility and network traffic control for all services in an app.
Overview of AWS App Mesh
Service Mesh: Serves as a logical border for network traffic between microservices that reside within it.
Virtual Node: A virtual pointer acts as a logical link to a task group that includes ECS service, Kubernetes deployment, or EC2 instance.
Virtual Service: Virtual pointers to a real service are provided by a virtual node either directly or indirectly through a virtual router. VirtualServiceName: One virtual service can call another virtual service. Virtual services can only have one Virtual Node pointing at the application. However, multiple Virtual Nodes can point to different versions.
Virtual routes: A virtual router handles traffic for one or several virtual services within mesh. Associated routes can be used to direct incoming requests from different virtual nodes.
Virtual Gateway: This allows you to specify ingress rules for traffic entering the internal components. The virtual gateway allows us to specify the path for the inbound/northward traffic. A virtual gateway is an envoy proxy that runs in an Amazon ECS / Kubernetes service/ Amazon EC2 instance.
The architecture below shows a high-level representation for a sample application that integrates on EKS app mesh.
App Mesh with EKS
We will create AWS App Mesh components, and then deploy them using a sample app. After placing the sample application into a service mesh.
These components are part of the application:
The frontend is responsible to sell the frontend code to a browser.
A backend that reads from and writes to the Postgres backend database (Postgres).
Meshify the Application
Install the AWS App Mesh Controller to create App Mesh resources and add an application to a Mesh. This controller allows you to configure App Mesh resources with kubectl. Once the configuration is complete, it looks like this:
The architecture diagram below outlines the steps involved in implementing Meshify.
Follow the blog to get more Kubernetes-related content. If you have any questions about the AWS app mesh implementation, please comment below.
CloudThat is a home of All-Encompassing IT Services for Cloud. It offers Multi-cloud Security & Compliance and Cloud Enablement Services. Cloud-Native Application Development and OTT-Vid.