【问题标题】:How to change elastic beanstalk environment type from load-balanced to single instance如何将弹性 beanstalk 环境类型从负载平衡更改为单实例
【发布时间】:2021-02-01 18:14:06
【问题描述】:

我有一个使用负载平衡器的弹性 beanstalk 环境。它也有一个 http 到 https 的配置。我想将环境类型从负载平衡更改为单实例(因为我意识到我没有大量使用该应用程序并且成本很高)。我尝试通过转到配置设置、容量设置并从负载均衡器选项切换到单实例选项来做到这一点。 首先,我收到一条警告“迁移到单实例环境会替换您当前的所有实例并降低您的容量。”使用此代码。 aws:elasticbeanstalk:environment:EnvironmentType "LoadBalanced" => "SingleInstance"

然后它失败并出现此错误 Service:AmazonCloudFormation, Message:Template format error: Unresolved resource dependencies [AWSEBV2LoadBalancer] in the Resources block of the template

我的 ebextensions 文件夹中唯一的文件是带有此代码的 http 到 https 配置文件

Resources:
 AWSEBV2LoadBalancerListener:
  Type: AWS::ElasticLoadBalancingV2::Listener
  Properties:
    LoadBalancerArn:
      Ref: AWSEBV2LoadBalancer
    Port: 80
    Protocol: HTTP
    DefaultActions:
      - Type: redirect
        RedirectConfig:
          Host: "#{host}"
          Path: "/#{path}"
          Port: "443"
          Protocol: "HTTPS"
          Query: "#{query}"
          StatusCode: "HTTP_301"

然后是“未能部署配置”

【问题讨论】:

  • 我不久前尝试过这样做。 Here 是单实例 SSL 的最佳教程。麻烦可能不值得付出代价。此外,如果您有其他应用,您可以使用共享负载均衡器(2020 年 10 月发布)

标签: amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

如果您切换到单实例,您将没有 ALB。这意味着您不能在您的 ebextnations 中使用 AWS::ElasticLoadBalancingV2::Listener,您必须重新考虑整个 HTTPS 处理。

基本上,您必须修改您的 EB 以自行处理 HTTPS。如果您使用来自 ACM 的 SSL 证书,则必须从第三方(而不是 AWS)获得新的证书,因为 ACM 证书无法在您的单实例 EB 环境中使用

【讨论】:

    猜你喜欢
    • 2015-08-02
    • 2021-04-01
    • 2020-03-19
    • 2014-09-29
    • 2011-03-16
    • 2017-09-21
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多