nodejs,docker,nginx和amazon aws部署

时间:2015-09-13 21:20:10

标签: node.js amazon-web-services nginx amazon-ec2 docker

关于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).

我该怎么做?

0 个答案:

没有答案