amazon-elastic-beanstalk - 无法将使用 EB cli 创建的 elasticbeanstalk 环境添加到 VPC:此环境不是 VPC 的一部分
问题描述
首先,用例:我有一个大型 Spring Boot 单体,它伴随着一些用于执行某些任务的小型 go 服务。目前,它们被私有地简单地托管在同一台服务器上,因此可以使用 localhost 进行内部通信。我正在考虑将它作为 ElasticBeanstalks 部署到 AWS,目前正在使用免费套餐来评估它。我希望 Spring Boot 应用程序是公开可见的,并且 Go 服务可用于 Spring Boot 应用程序但不向公众提供。我的印象是我想将它们部署为单独的 ElasticBeanstalk 环境,但将它们分配给同一个 VPC。如果这是错误的假设,请告诉我正确的假设!
如果那是我们想要的,那么这就是我当前的初始问题。我已经设置了 VPC(使用默认值)并在我的本地存储库中使用eb init
等eb create
来部署应用程序。当它部署并运行时,我进入Configuration
EB 的 AWS 控制台,然后网络部分简单地说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 中,您可以创建一个负载均衡器 asInternal
并创建另一个负载均衡器 as Internet facing
。
这是有关字段的一些信息。
输入VPC ID:vpc-abc123
是否要关联公共 IP 地址?(是/否):如果面向互联网,是的。这将为负载均衡器分配一个公共 IP 地址
输入以逗号分隔的 Amazon EC2 子网列表:? 您可以输入私有子网列表,无法直接从 Internet 访问私有子网,这就是为什么您创建面向公众的负载均衡器(用于面向 Internet 的应用程序)接收 Web 流量并转发到实例的原因。
输入以逗号分隔的 Amazon ELB 子网列表:?对于面向 Internet 的应用程序,您需要选择公共子网。对于内部应用,您需要选择私有子网
您希望负载均衡器公开吗?(为内部选择否)(是/否):?
对于面向 Internet 的应用程序,是
对于内部应用,否
输入以逗号分隔的 Amazon VPC 安全组列表:应为 VPC 创建安全性。换句话说,如果您检查安全组,您应该会看到您的 vpc id。
推荐阅读
- c++ - rtmidi 设置回调非静态成员函数
- php - 在函数循环中设置变量 在页面中使用
- typescript - 带有 DeclarationsMap 的 VSCode GoToDefinition
- python - 计算两列之间的出现次数
- php - 在 PHP file_get_contents() 调用中使用多个标头
- keycloak - Keycloak 中缺少基于 JS 的策略选项?
- javascript - 验证对象字段的最佳实践是什么?
- google-apps-script - 使用 Google Apps 脚本重命名 Google 表格中的文件名
- azure - WVD 管理员用户名更改不允许
- sql - 查找按 id 分组的“空”出现范围