【问题标题】:AWS: Elastic Beanstalk and Auto Scaling (When Out of Memory)AWS:Elastic Beanstalk 和 Auto Scaling(内存不足时)
【发布时间】:2019-05-09 06:14:39
【问题描述】:

我将 Elasticbeanstalk 用于我的微服务架构。我想设置一个负载均衡器,一旦我的内存耗尽 100% 而我看不到任何指标,它就可以启动另一个实例。

另一个问题:一个实例可以在多长时间内被剥离。

如果有其他解决这个问题的方法,请告诉我。

【问题讨论】:

  • 您最初是使用负载均衡器还是将 EB 设置为单个实例?
  • 我最初设置了单个实例,然后对其进行了更新。现在我正在重建环境。
  • 那应该负责创建负载均衡器,现在您应该能够在 CloudWatch 上创建一个指标,用于监控 RAM 使用情况并使用该指标进行自动缩放。创建指标只是使用 CloudWatch API (docs.aws.amazon.com/AWSRubySDK/latest/AWS/CloudWatch/…) 定期发布指标数据。
  • 不是自动旋转新的吗?

标签: amazon-web-services load-balancing autoscaling amazon-elastic-beanstalk


【解决方案1】:

当您设置 Beanstalk 环境时,您可以将其选择为负载平衡或单实例(您也可以随时更改此设置)。在环境的配置中,您可以选择扩展和缩减指标,但是您不会在列表中看到任何与内存相关的指标。

您可以设置 CloudWatch 警报来触发负载均衡器扩展和缩减事件,但正如@Stefan 所述,您实际上需要创建与内存相关的指标来执行此操作,因为它们默认不存在。

您可以使用部署包内的 .ebextensions 文件夹中的配置文件来执行此操作,该文件每 n 分钟写入 CloudWatch。

您必须授予您的 Beanstalk IAM 角色权限才能使用内联策略写入 CloudWatch。

然后您将开始在 CloudWatch 中查看内存指标,因此可以使用它们来扩大和缩小规模。

.config 文件的 YAML 如下所示(您可能不需要所有这些指标):

packages:
  yum:
    perl-DateTime: []
    perl-Sys-Syslog: []
    perl-LWP-Protocol-https: []
    perl-Switch: []
    perl-URI: []
    perl-Bundle-LWP: []
sources: 
  /opt/cloudwatch: https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip
  
container_commands:
  01-setupcron:
    command: |
      echo '*/5 * * * * root perl /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl `{"Fn::GetOptionSetting" : { "OptionName" : "CloudWatchMetrics", "DefaultValue" : "--mem-util --disk-space-util --disk-path=/" }}` >> /var/log/cwpump.log 2>&1' > /etc/cron.d/cwpump
  02-changeperm:
    command: chmod 644 /etc/cron.d/cwpump
  03-changeperm:
    command: chmod u+x /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl
option_settings:
  "aws:autoscaling:launchconfiguration" :
    IamInstanceProfile : "aws-elasticbeanstalk-ec2-role"
  "aws:elasticbeanstalk:customoption" :
    CloudWatchMetrics : "--mem-util --mem-used --mem-avail --disk-space-util --disk-space-used --disk-space-avail --disk-path=/ --auto-scaling"

链接:

Troubleshooting CPU and Memory Issues in Beanstalk

How to monitor memory on Beanstalk

How to add permissions to IAM role

Example .config file which includes setting up CloudWatch triggers

【讨论】:

    猜你喜欢
    • 2016-12-08
    • 2015-05-04
    • 2015-09-05
    • 2020-05-13
    • 2016-05-05
    • 2014-04-05
    • 2018-04-16
    • 2018-04-17
    • 2015-11-17
    相关资源
    最近更新 更多