AWS appMesh 与 Amazon ECS 有什么区别?

What is the difference between AWS appMesh Vs Amazon ECS?

我对这两种技术都不熟悉,但很难理解这两种技术到底有什么不同,用例示例会很有帮助。

AWS ECS 是一种容器编排服务,可以部署和扩展容器。假设您要在 EC2 计算机上部署 10 个应用程序。 ECS 将为您提供一种简单的方法来部署和管理它们、在需要时扩展应用程序等。

现在,这 10 个应用程序可能想要相互通信。一种方法是使用 ip 地址并对另一个应用程序进行 RPC 调用。但是,此过程无法扩展。如果机器重启或者应用程序或应用程序移动到另一台EC2机器等怎么办

因此,您需要一个中间件来管理应用程序到 EC2 机器的映射,这样应用程序就不需要担心如何调用其他应用程序。

AWS AppMesh 正好提供该中间件。它提供应用程序级别的网络,以便您的服务可以与其他服务进行通信。

ECS - 运行 容器的平台以集群方式作为 task/service。

当多个容器 运行ing 在一个 ecs 集群中时,它们可能想要相互交谈或与其他 aws 服务交谈。这些容器应该通过 ip/endpoint..etc 知道其他 containers/services 在哪里。这就是服务发现发挥作用的地方。

Appmesh - Appmesh 是一种服务发现工具以及更多功能。其中之一是确保容器之间的可靠通信。

  • Appmesh 在 ecs 中使用 envoy 作为 sidecar 来实现服务发现(以及更多)功能。
  • 大部分时间 Appmesh 与 Aws CloudMap 结合使用。