无法将使用 EB CLI 创建的 elasticbeanstalk 环境添加到 VPC:此环境不是 VPC 的一部分



首先,用例:我有一个大的Spring Boot单体,它伴随着一些较小的go服务,用于执行一些任务。目前,它们私有且简单地托管在同一台服务器上,因此可以使用本地主机进行内部通信。我正在考虑将其作为 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.

感谢帮助!

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

以下是有关字段的一些信息。

  • 输入专有网络ID:专有网络-abc123

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

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

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

是否希望负载均衡器是公共的?(对内部选择否((是/否(: ?

  • 对于面向互联网的应用程序,是

  • 对于内部应用,否

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

最新更新