关于docker,node和amazon aws有很多问题,我已经阅读了大部分内容,但我还没有得到答案。
我已经在生产node.js API项目上工作了几周,现在API已经完成,我必须部署它们。 总共有2个微服务(这可能会在以后增加)和一些工作进程。系统的不同组件将使用SQS和SNS相互通信。每个微服务都使用mongo DB作为nosql存储,并使用mongoose作为ODM。我选择mongolab作为mongoDB托管服务提供商。目前我可以使用MONGOLAB_URI环境变量连接到mongolab数据库(显然这在生产期间是不够的,欢迎任何关于此的建议)
我正在使用amazon aws平台。
我的思维过程是:
我将对每个组件进行docer化。对于工人流程,它是直截了当的。 对于微服务,我将有2个docker图像,我将使用amazon EC2容器服务部署。我将有第三个nginx docker镜像,我将放在节点应用程序前面。
我计划最初创建一个包含2台机器(c2 large)的集群,并在这些机器上托管这3个dockerized微服务和nginx映像。 显然,节点进程将在某个端口上运行。让我们假设它是3100
到目前为止,当我想将这些API暴露给外部世界时,问题就显而易见了
微服务暴露了一些端点,如
service 1:- /users, /login, /me etc
service 2: /offers, /gifts etc
我的问题是:
我想解决
mydomain.com/api/v1/users to service1:3100/users
类似于其他API&#39>
我认为这可以通过nginx来完成,但我对它并不熟悉。
约束是:
I don't want to host each of the microservice on a separate machine (budget constraint).
I don't know which service will run on which machine (this I assume since I read that ec2 container service will automatically start docker processes on random machines and distribute load).
我该怎么做?