当前位置: 首页 > 知识库问答 >
问题:

如何与弹性豆茎多容器环境共享AWS EC2实例

澹台啸
2023-03-14

假设我有两个Docker容器1和2。我想使用多容器Docker映像将这些部署到AWS Elastic Beanstalk,以便我有以下EC2实例来降低成本:

  • ELB应用程序负载平衡器(有多少?)

>

  • ELB应用程序负载平衡器(有多少?)
  • EC2实例2

    • Docker容器1

    EC2实例3

    • Docker容器1

    所以我的问题是:

    1. 我需要创建多少个弹性Beanstalk应用程序?从文件中不清楚
  • 共有1个答案

    庄星汉
    2023-03-14

    我需要创建多少个弹性Beanstalk应用程序?

    您可以通过具有多个环境的单个应用程序获得所需的设置。有关环境的Elastic Beanstalk文档中对此进行了描述。对于您的用例,您将为同一应用程序配置“生产”和“测试”环境。

    您的环境可以有不同的配置,因此您可以为您的测试环境使用更小的(更便宜的)EC2实例。

    您还可以有不同的自动缩放规则,因此在您描述的环境中,您将在测试环境中指定至少1个EC2实例,但在生产环境中至少2个EC2实例。

    我怎样才能得到容器的1

    我想您是在问如何将两个Docker容器部署到作为Docker主机的单个EC2实例上?

    这在Dockerrun中定义。aws。json文件,该文件记录在《弹性豆茎指南》中。注意-有关多容器Docker应用程序,请参阅版本2。

    该文件声明了您希望如何配置您的环境。与您的问题相关的位是容器定义,它包含您要部署到主机(底层EC2实例)的Docker容器数组。

    当Elastic Beanstek扩展您的环境时,它会将Dockerrun文件中的配置应用到新实例。因此,如果您的示例正式生产环境扩展为具有三个实例,您最终会有第三个实例运行相同的两个容器。

    需要创建多少ELB

    根据留档,每个环境将有一个弹性负载均衡器:

    每个环境都有一个指向负载均衡器的CNAME(URL)。

    在上面提到的Dockerrun文件的containerDefinition部分中,可以定义容器的端口映射。因此,如果您的示例中有一个容器正在运行Nginx,则Dockerrun文件中的配置与此类似:

    "name": "nginx-proxy",
          "image": "nginx",
          "essential": true,
          "memory": 128,
          "portMappings": [
            {
              "hostPort": 80,
              "containerPort": 80
            }
          ],
    

    然后将此配置应用于运行容器配置的任何实例-当负载均衡器将请求路由到该特定实例时,它会转发到端口80上侦听的容器。

     类似资料:
    • 我正在使用aws elastic beanstalk托管我的dhango应用程序。我们需要设置应用程序的开发、阶段和产品环境。但每当我使用eb create命令时,它也会为新环境启动一个新的ec2实例。 可以在单个ec2实例中设置多个弹性beanstalk环境吗。此外,如果我想在其中一个实例中托管WordPress网站,我可以通过ssh登录到您的系统并将网站放在公共web目录中吗?

    • 我对亚马逊AWS服务非常陌生。我想知道是否有办法运行EC2的一个实例(比如Amazon Linux AMI ),然后将两个环境连接到这个实例。 特别是,我希望在单个EC2实例上运行PHP和Tomcat环境。 问题是,每次我在Elastic Beanstalk中创建新环境时,它似乎也会创建一个新的EC2实例。我是不是遗漏了什么? 我很感激任何关于此的提示。

    • 我知道ECS有EC2和fargate启动类型,它们对底层环境配置提供的控制不同。

    • 我在尝试将我的Godaddy域与AWS Elastic Beanstalk实例链接时遇到了这个问题。我发现了很多关于如何将EC2实例与Godaddy上的域链接的文档,但对于Elastic Beanstalk实例却没有。所以我最终得到了这个网址:

    • 我一直在努力将我的Django Web应用程序成功部署到AWS的Elastic Beanstalk。我能够在本地机器上从EB CLI部署我的应用程序,没有任何问题,直到我将container_commands配置文件列表添加到.ebextensions文件夹中。 以下是我的配置文件的内容: 我已经深入研究了日志,发现这些消息在 cfn-init-cmd.log是最有帮助的: 我不确定为什么它在这个