使用 Terraform 切换 Elastic Beanstalk 负载均衡器 off/on?

Toggle Elastic Beanstalk load balancer off/on with Terraform?

那么对于闲置的 EB(仅在开发期间使用),就像 EC2 可以缩小到 0 个实例一样,如何关闭负载均衡器(然后再打开)?是否可以使用 Terraform,以便检测到 ALB 的缺失并通过应用重新创建?

我已经在空闲时终止了 EB 下的 EC2 实例,但是我未使用的负载均衡器一直在给我充电!理想情况下,通过同时删除负载均衡器,我在空闲时间的成本为零。但是当我在需要时重新创建 ALB 时,Terraform 状态并未明确跟踪 ALB(它由 EB 环境管理),因此它不会被重新创建。

我知道Elastic Beanstalk environments can be created without load balancers。我希望 AWS "scalability" 除了重新创建整个 EB 环境 .

之外,还提供一种更清洁、更快速的方法来切换负载均衡器的存在

您可以暂时禁用所有需要付费的 Elastic Beanstalk 基础设施,让您可以免费暂停应用程序,直到您准备好重新打开它,而无需从头开始销毁和重新创建它。

通过 EB 环境配置:

  1. (暂时)降级Capacity
    • 来自:Environment type: load balancing, auto scaling
    • 至:Single-Instance Environment
  2. 删除单实例及其生成的静态ip
  3. 为了安全起见,请确保您的自动缩放组配置允许最多 0 个实例

就这样离开运行几个月,一分钱都不付...

然后,您可以快速将一切恢复原状:

  1. 重新打开负载平衡并确保自动缩放组具有非零实例计数。
  2. terraform refresh 导入自动缩放目标的新实例 ID
  3. 像往常一样继续使用 terraform(例如 planapply