如何使用 Elastic Beanstalk 设置实例类型?

How to set the instance type with Elastic Beanstalk?

如何更改现有 Elastic Beanstalk 应用程序的实例类型?

目前我正在网页界面修改:

我尝试使用命令行工具更改它: eb setenv InstanceType=t2.medium

它没有抛出错误,但也没有更改实例类型。

setenv 命令用于更改环境变量。因此,您尝试的命令 bash 相当于:

export InstanceType=t2.medium

并没有真正为您的 beantalk 环境做任何事情。

您可以在创建过程中使用 -i 选项创建环境

eb create -i t2.micro

或者,您可以使用 eb config 编辑当前 运行 环境。这将打开一个文本编辑器。查找看起来像这样的部分:

aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    EC2KeyName: aws
    InstanceType: t1.micro

并将 t1.micro 编辑为 t2.micro。 (保存并退出)


但为了让您的生活更轻松,您可以将以下内容保存为 .elasticbeanstalk/saved_configs/default.cfg.yml,CLI 将在以后的所有创建中使用所有这些设置。

AWSConfigurationTemplateVersion: 1.1.0.0
OptionSettings:
  aws:elb:loadbalancer:
    CrossZone: true
  aws:elasticbeanstalk:command:
    BatchSize: '30'
    BatchSizeType: Percentage
  aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    EC2KeyName: aws
    InstanceType: t2.micro
  aws:elb:policies:
    ConnectionDrainingEnabled: true
  aws:autoscaling:updatepolicy:rollingupdate:
    RollingUpdateType: Health
    RollingUpdateEnabled: true
  aws:elb:healthcheck:
    Interval: '30'

更多脚本方式:

aws elasticbeanstalk update-environment --environment-name "your-env-name" --option-settings "Namespace=aws:autoscaling:launchconfiguration,OptionName=InstanceType,Value=t2.micro"

公认的解决方案在 2020 年对我不起作用。

截至今天(2020 年 2 月 26 日),在我的 .ebextensions/02_python.config 中,我必须在 option_settings 下添加以下内容:

option_settings:
  # ...

  aws:ec2:instances:
    InstanceTypes: 'm5.large'

参考:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.as.html#environments-cfg-autoscaling-namespace.instances