Q: What is AWS App Mesh?
A: AWS App Mesh is a new technology that makes it easy to monitor, control, and debug the communications between microservices. App Mesh uses Envoy, an open source service mesh proxy which is deployed alongside your microservice containers. App Mesh is integrated with AWS services for monitoring and tracing, and it works with many popular third-party tools. App Mesh can be used with microservice containers managed by Amazon ECS, Amazon EKS, and Kubernetes running on AWS.
Q: Why should I use App Mesh?
A: App Mesh makes it easy to get visibility and control over the communications between your microservices without writing new code or running additional AWS infrastructure. Using App Mesh, you can standardize how microservices communicate, implement rules for communications between microservices, and capture metrics, logs, and traces directly into AWS services and third-party tools of your choice.
Q: How does App Mesh work?
A: App Mesh sets up and manages a service mesh for your microservices. To do this, App Mesh runs the open source Envoy proxy alongside each microservice container and configures the proxy to handle all communications into and out of each container. App Mesh collects metrics, including latencies, error rates, and connections per second, which can be exported to Amazon CloudWatch using a statsd collector. Using App Mesh APIs, you can route traffic based on path or weights to specific microservice versions, enabling canary deployments, retries, timeouts, and circuit breaking.
Q: What is a service mesh?
A: A service mesh is a new software layer that handles all of the communications between microservices. It provides new features to connect and manage connections between microservices and is independent of each microservice’s code, allowing it to work across network boundaries and with multiple microservices management systems.
Q: How does App Mesh work with Amazon Elastic Container Services (ECS)?
A: App Mesh provides new communication, observation, and management capabilities to applications managed by Amazon ECS. You add the Envoy proxy image to the ECS task definition. App Mesh manages Envoy configuration to provide service mesh capabilities. App Mesh exports metrics, logs, and traces to the endpoints specified in the Envoy bootstrap configuration provided. App Mesh provides an API to configure traffic routes, circuit breaking, retries and other controls between microservices that are mesh-enabled.
Q: How does App Mesh work with Amazon Elastic Container Service for Kubernetes (EKS)?
A: Add the Envoy proxy image to the Kubernetes PodSpec. App Mesh exports metrics, logs, and traces to the endpoints specified in the Envoy bootstrap configuration provided. App Mesh provides an API to configure traffic routes, circuit breaking, retries and other controls between microservices that are mesh-enabled.
Q: Why should I use App Mesh instead of AWS Elastic Load Balancers?
A: We recommend using AWS Elastic Load Balancing to handle all internet traffic and traffic from clients that are not within your trust boundary. For internal microservices that connect to other microservices within the VPC, App Mesh provides flexibility, consistency, and a greater degree of control and monitoring for microservices communications.
Monitoring, logging, and tracing
Q: What type of monitoring capabilities does App Mesh provide?
A: With App Mesh, you get consistent metrics and logs for every hop between microservices. These logs and metrics include metadata such as service-names and request identifiers. With these, you can aggregate, filter, a see graphical dashboards of service-to-service communications using tools like Amazon CloudWatch. Common dashboards might include error rates, latencies, or error codes between your service and dependent microservices. App Mesh automatically collects traces for each service and makes it easy to visualize a service map with details of all service API calls. These capabilities make it easier to debug and identify the root cause of communication issues between your microservices.
Q: Can I use non-AWS tools for monitoring, logging, or tracing with App Mesh? Yes.
A: Yes. App Mesh supports any third-party tool that works with Envoy. This includes Splunk, Prometheus, and Grafana, as well as open-tracing solutions like Zipkin and LightStep.
Q: What type of traffic controls does App Mesh provide?
A: App Mesh gives you a set of client-side controls for traffic routing, traffic policies, and chaos engineering. App Mesh provides APIs to route traffic between applications based on service versions. Using advanced routing capabilities, traffic can also be shadowed to alternate environments for further troubleshooting. App Mesh enforces access controls, quotas, and limits on the clients. These capabilities make it easier to deploy new versions of your microservices.
Q: How much does App Mesh cost?
A: There is no additional charge for using AWS App Mesh. You pay only for the AWS resources (i.e. EC2 instances or requested Fargate CPU and memory) consumed by the App Mesh proxy that runs alongside your containers. You pay only for what you use, as you use it; there are no minimum fees and no upfront commitments.
Q: How do I start using App Mesh?
A: App Mesh is available today as a public preview. You can start using App Mesh from the AWS CLI or SDK. Learn more on the Getting Started page.