如何在单个AWS EC2实例上的Node中部署多个微服务?

时间:2018-05-15 15:35:22

标签: node.js amazon-ec2

我们对AWS很陌生,希望将多个服务部署到一个EC2实例中。

  • 每个微服务都是在自己的存储库中开发的。
  • 每项服务都有自己的端点网址
  • 服务可以互相交谈
  • 可以单独更新/部署服务

我们每个人都需要一个豆茎吗?我希望不会。

提前谢谢

2 个答案:

答案 0 :(得分:1)

因此,我们在工作场所处理类似问题的方式是在大多数AWS区域利用Elastic Beanstalk支持的multi-container docker platform

简而言之,我们为ECR(Elastic Container Registry)中的每个服务都提供了专用存储库,其中使用部署脚本部署了不同的“版本化”映像。

配置和设置后,您只需部署一个Dockerrun.aws.json文件,该文件基本上突出显示您希望作为Docker群集的一部分部署到1 EC2实例中的所有应用程序(确保它是足以处理多个应用程序)。这是一个文件,其中还可以突出显示应用程序之间的link(因此它们可以相互通信),端口配置,日志记录驱动程序和组(我们使用AWS CloudWatch进行日志记录)和许多其他字段。这个JSON非常类似于docker-compose.yml,它用于启动堆栈以进行本地开发和测试。

我建议查看Amazon提供的示例配置以获取更多信息。另外,我发现docker文档在这方面非常有用。

希望这会有所帮助!!

答案 1 :(得分:0)

目前尚不清楚您是否考虑过特定​​工具。如果您使用任何工具来部署单个微服务,则多个应该是相同的。

  

如何在单个AWS上的Node中部署多个微服务   EC2实例?

     

每个微服务都是在自己的存储库中开发的。

     

可以单独更新/部署服务

这应该与部署单个微服务相同。只要它们运行的​​路径和端口不同,就应该没问题。

  

每项服务都有自己的端点网址

您可以使用nginx作为反向代理,可以将您的请求从端口80重定向到您的微服务所需的端口。

  

服务可以互相交谈

这应该不是问题。您可以使用端口号或通过完全限定名称直接呼叫它们,然后通过nginx返回。