1

跑了很多类似的解析服务器,我已经跑了很多关于AWS弹性Beanstock类似的解析服务器的应用程序。我不需要大量的计算能力,只需要在AWS上运行大量解析服务器,而无需为每个服务器支付单独的服务器。会有对解析服务器中的一个运行多个应用程序的方式或者会有把多个解析服务器上的一个实例以某种方式在弹性Beanstock的方法吗?我正在运行的那种服务器的示例可以在Parse GitHub page找到。谢谢!在AWS弹性魔豆

回答

0

我做到这一点是通过将各解析服务器应用到自己的码头工人容器中,然后对自己的端口上的一个单一的“魔豆”的每个运行时部署了一堆不同的容器的方式。

在一些情况下,我使用的多个应用程序,并且在一些代码是不同的相同的代码库。我用https://www.npmjs.com/package/config在所有情况下进行管理配置,但在该代码是相同的情况下,我使用的环境变量NODE_APP_INSTANCE,为不同的应用程序不同的配置价值。

简单Dockerfile

FROM node 

# Create app directory 
RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

COPY package.json /usr/src/app/ 
RUN npm install 

# Bundle app source 
COPY . /usr/src/app 

EXPOSE 5000 

CMD [ "npm", "start" ] 

和简单Dockerrun.aws.json

{ 
    "AWSEBDockerrunVersion": 2, 
    "volumes": [ ], 
    "containerDefinitions": 
    [ 
     { 
     "name": "app1", 
     "image": "xxx.dkr.ecr.us-east-1.amazonaws.com/boo/app1:latest", 
     "essential": true, 
     "memory": 1536, 
     "entryPoint": ["node", "index.js"], 
     "portMappings": 
      [ 
      { 
       "hostPort": 9091, 
       "containerPort": 9091 
      } 
      ], 
     "environment": 
     [ 
      { 
      "name": "NODE_ENV", 
      "value": "production" 
      } 
     ] 
    }, 
    { 
     "name": "app2", 
     "image": "xxx.dkr.ecr.us-east-1.amazonaws.com/boo/app2:latest", 
     "essential": true, 
     "memory": 512, 
     "entryPoint": ["node", "index.js"], 
     "portMappings": 
      [ 
      { 
       "hostPort": 9092, 
       "containerPort": 9092 
      } 
      ], 
     "environment": 
     [ 
      { 
      "name": "NODE_ENV", 
      "value": "production" 
      }, 
      { "name": "NODE_APP_INSTANCE", 
      "value": "app2" 
      } 
     ] 
    }, 
    ... 
} 
+0

有是如何工作的例子吗?我从来没有使用过Docker。 –

+0

好问题。基础知识是:制作一个容器。放在AWS ECS上。告诉Beanstalk你的容器在哪里。 下面是通过这些三个步骤 如何dockerize一个节点上运行的应用程序三个环节:https://nodejs.org/en/docs/guides/nodejs-docker-webapp/ 穿上ECS的容器:HTTP ://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html 将docker容器部署到elasticbeanstalk:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_ecs html的 –