如何在正在运行的应用程序上将弹性beanstalk经典负载均衡器转换为应用程序负载均衡器?

时间:2018-05-17 21:17:14

标签: elastic-beanstalk

我有几个EB应用程序,我想从经典转换为应用程序负载均衡器。在documentation中,似乎默认的方法是使用适当的负载均衡器从头开始创建新环境。考虑到我有许多环境变量和几个环境,我宁愿不必重建应用程序。有没有办法在已经运行的应用程序上切换负载均衡器?

2 个答案:

答案 0 :(得分:4)

除创建时间外,无法设置负载均衡器类型。您可以使用弹性beanstalk cli和aws cli来使用相同的配置和版本克隆应用程序。要运行已部署的应用程序版本:

aws elasticbeanstalk describe-environments --application-name ${APPLICATION_NAME} --environment-names ${SRC_ENV_NAME} | jq -r '.Environments | .[] |  .VersionLabel'

jq管道过滤掉json blob的其余部分。

之后,您可以使用以下方法保存当前应用程序的配置:

eb config save $SRC_ENV_NAME --cfg "${SRC_ENV_NAME}_save"

然后使用以下方法创建应用程序克隆:

eb create $NEW_ENV_NAME --elb-type application --cfg "${SRC_ENV_NAME}_save" --version $APP_VERSION

APP_VERSION是第一步中提取的字符串。

答案 1 :(得分:0)

这并不简单,但可以做到。

如果 Envivornment 名称对您很重要,那就有点棘手了。

这是它应该如何进行的步骤(使用网络控制台):

  1. 保存您要更改的环境的配置
  2. 从保存的配置中,生成一个新的环境(选择自定义设置) 2.1) 将 LB 类型更改为 Application 并为此填写所有必要信息
  3. 将原始环境中的 URL 交换到新环境中(检查一切是否与新环境一起工作,如果没有换回)

[仅当环境名称很重要时才需要步骤]

  1. 删除原始环境(现在没有接收流量并且有一个经典 LB)
  2. 等待原始名称从控制台中消失(这需要几个小时)
  3. 克隆生产环境,并为新环境提供原始环境名称
  4. 交换网址
  5. 完成!