AWS App Mesh 可以为每个服务提供一致的可见性和网络流量控制,让您可以轻松运行服务。App Mesh 可以将监控和控制通信所需的逻辑分离为在每个服务旁边运行的代理。这让您无需跨团队协调或更新应用程序代码,即可变更监控数据的收集方式或流量的路由方式。这样一来,您可以轻松快速地查明错误的确切位置,并在出现故障或需要部署代码变更时自动重新路由网络流量。
您可以在 EC2 上将 App Mesh 与 AWS Fargate、Amazon ECS、Amazon EKS、Amazon EC2 和 Kubernetes 配合使用,以更好地大规模运行服务。App Mesh 使用开源代理 Envoy,它可以与各种 AWS 合作伙伴和开源工具兼容,以监控服务。
开源代理
App Mesh 使用开源 Envoy 代理来管理进出服务容器的所有流量。App Mesh 可以将此代理配置为自动处理所有服务的应用程序通信。Envoy 拥有一个充满活力的社区构建集成生态系统,可以与 App Mesh 配合使用。
兼容的 AWS 服务:
Amazon CloudWatch* – 监控和日志记录服务,可实现资源和应用程序的完全可见性。
AWS X-Ray* – 用于端到端应用程序性能视图的跟踪服务。
兼容的 AWS 合作伙伴和开源工具:
Datadog、Alcide、HashiCorp、Sysdig、Signalfx、Spotinst、Tetrate、Neuvector、Weaveworks、Twistlock、Wavefront by VMware、Aqua。
流量路由
App Mesh 支持您将服务配置为直接相互连接,而无需在应用程序中使用代码或使用负载均衡器。当每个服务启动时,其代理会连接到 App Mesh 并接收有关网格中其他服务位置的配置数据。您可以使用 App Mesh 中的控件来动态更新服务之间的流量路由,而无需更改应用程序代码。
客户端流量策略
代理自动对来自网格中所有客户端的流量进行负载均衡,并根据运行状况检查和服务注册来添加和删除负载均衡终端节点。这些功能让您可以更轻松地部署新版本的服务,并帮助调整应用程序以弹性应对故障。
服务到服务身份验证
双向 TLS (mTLS) 支持传输层身份验证,能够为在服务网格内外运行的应用程序组件提供服务到服务身份验证。它允许客户通过将来自 AWS Certificate Manager 私有证书颁发机构或客户管理的证书颁发机构 (CA) 的证书预置到服务网格中的工作负载,将安全范围扩展到在 AWS App Mesh 中运行的应用程序,并为连接到服务的客户端应用程序实施自动身份验证。
容器编排本机用户体验
App Mesh 可以与由在 EC2 上运行的 Amazon ECS、Amazon EKS、AWS Fargate、Kubernetes 所托管的服务配合使用。对于在 ECS、EKS、Fargate 或 Kubernetes 上运行的容器化工作负载,您可以将提供的 App Mesh 代理作为每个微服务的任务或 pod 定义的一部分包括在内,并将服务的应用程序容器配置为直接与代理通信。服务启动时,代理会自动登入并由 App Mesh 配置。
完全托管
AWS App Mesh 是一种高度可用的托管服务。App Mesh 支持您管理服务通信,而无需安装或管理应用程序级基础设施以进行通信管理。