【问题标题】:Cannot add elasticbeanstalk environment created with EB cli to a VPC: This environment is not part of a VPC无法将使用 EB cli 创建的 elasticbeanstalk 环境添加到 VPC:此环境不是 VPC 的一部分
【发布时间】:2020-01-15 19:54:25
【问题描述】:

首先,用例:我有一个大型 Spring Boot 单体,它伴随着一些用于执行某些任务的小型 go 服务。目前,它们被私有地简单地托管在同一台服务器上,因此可以使用 localhost 进行内部通信。我正在考虑将它作为 ElasticBeanstalks 部署到 AWS,目前正在使用免费套餐来评估它。我希望 Spring Boot 应用程序是公开可见的,并且 Go 服务可用于 Spring Boot 应用程序但不向公众提供。我的印象是我想将它们部署为单独的 ElasticBeanstalk 环境,但将它们分配给同一个 VPC。如果这是错误的假设,请告诉我正确的假设!

如果那是我们想要的,那么这就是我当前的初始问题。我设置了 VPC(使用默认值)并在我的本地存储库中使用 eb initeb create 等来部署应用程序。当它部署并开始运行时,我在 EB 的 AWS 控制台中进入 Configuration,然后网络部分只是说 This environment is not part of a VPC.。我已经测试选择经典、应用程序和网络作为负载均衡器,但结果相同。我需要在eb create 期间做些什么吗?

我试过eb create --vpc,但老实说不知道要为所有提示填写什么:

Enter the VPC ID: xxxxxxxxxxxxxxxxx
Do you want to associate a public IP address? (Y/n): Y
Enter a comma-separated list of Amazon EC2 subnets: ?
Enter a comma-separated list of Amazon ELB subnets: ?
Do you want the load balancer to be public? (Select no for internal) (Y/n): ?
Enter a comma-separated list of Amazon VPC security groups: 

我应该寻找什么才能进入这里?我假设的 VPC ID 是我创建的 VPC 的 VPC ID,但我很难理解其余部分。如果我尝试简单地运行eb create --vpc.id <XXXXXXXXXXXXXXXXXX>,那么我会得到ERROR: ServiceError - Configuration validation exception: Invalid option value: 'internal' (Namespace: 'aws:ec2:vpc', OptionName: 'ELBScheme'): Internal load balancers are valid only in a VPC; however, your environment is currently not running in a VPC.

感谢帮助!

【问题讨论】:

    标签: amazon-elastic-beanstalk amazon-vpc vpc


    【解决方案1】:

    您的面向公众的应用程序不需要两个单独的 VPC。在同一个 vpc 中,您可以创建一个负载均衡器为Internal,并创建另一个负载均衡器为Internet facing

    这里是有关字段的一些信息。

    • 输入VPC ID:vpc-abc123

    • 是否要关联公共 IP 地址? (是/否): 如果面向互联网,是的。 这将为负载均衡器分配一个公共 IP 地址

    • 输入以逗号分隔的 Amazon EC2 子网列表:? 您可以输入私有子网列表,无法直接从 Internet 访问私有子网,这就是为什么您创建面向公众的负载均衡器(用于面向 Internet 的应用程序)接收 Web 流量并转发到实例的原因。

    • 输入以逗号分隔的 Amazon ELB 子网列表:? 对于面向 Internet 的应用程序,您需要选择公共子网。 对于内部应用,您需要选择私有子网

    您希望负载均衡器公开吗? (内部选择否)(是/否):?

    • 对于面向 Internet 的应用程序,是的

    • 内部申请,否

    输入以逗号分隔的 Amazon VPC 安全组列表:应为 VPC 创建安全性。换句话说,如果您检查安全组,您应该会看到您的 vpc id。

    【讨论】:

    • 谢谢!我不想添加多个 VPC,而是像您说的那样将多个环境添加到一个 VPC。但是,由于不完全了解子网等。如何选择 EC2 和 ELB 子网?你能提供一个例子吗?就我而言,我在同一个 VPC 中有 2 个 ELB 环境。一个应该面向公众,一个不应该,但我希望它们在同一个 VPC 中能够进行内部通信。如果我对他们两个都使用eb create --vpc,什么参数会起作用?
    • 假设 VPCId = vpc-1234,我有一个用于 VPC 的安全组,其 ID:sec-1234。然后面向公众:Enter the VPC ID: vpc-1234 Do you want to associate a public IP address? (Y/n): Y Enter a comma-separated list of Amazon EC2 subnets: ? Enter a comma-separated list of Amazon ELB subnets: ? Do you want the load balancer to be public? (Select no for internal) (Y/n): Y Enter a comma-separated list of Amazon VPC security groups: sec-1234
    • 和内部的Enter the VPC ID: vpc-1234 Do you want to associate a public IP address? (Y/n): n Enter a comma-separated list of Amazon EC2 subnets: ? Enter a comma-separated list of Amazon ELB subnets: ? Do you want the load balancer to be public? (Select no for internal) (Y/n): n Enter a comma-separated list of Amazon VPC security groups: sec-1234 我可以只选择两者相同的子网范围吗?我怎么知道哪些子网是私有的和公共的?我需要先创建它们吗?这里明显混乱:)
    • 对不起。如果子网没有到 Internet 的路由,则它是私有子网。私有子网无法访​​问 Internet,也无法从 Internet 访问。
    • 是的,您需要先创建子网。我会看看能不能给你找到一步一步的教程。
    猜你喜欢
    • 2017-10-27
    • 2015-07-20
    • 2018-02-28
    • 2014-11-14
    • 2020-10-06
    • 1970-01-01
    • 2020-09-21
    • 2020-03-15
    • 2020-11-29
    相关资源
    最近更新 更多