如何使用elasticbeanstalk设置自动缩放组运行状况检查类型

时间:2014-01-22 11:20:29

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

我已经为我的elasticbeanstalk应用程序设置了'Application Healthcheck URL'(aws:elasticbeanstalk:application),并且在晚上两台服务器开始未通过此检查。

似乎由elasticbeanstalk设置的自动调节组具有ec2的运行状况检查类型,这意味着服务器没有被终止和替换,只有2个服务器连接到负载均衡器。

如何使用elasticbeanstalk的配置设置将autoscaling组的运行状况检查类型更改为elb?我找不到任何记录的方法来改变这个值,但它必须是一个相当常见的要求。

由于

2 个答案:

答案 0 :(得分:27)

事实证明,答案在于将配置文件添加到.ebextensions目录。

AWS文档似乎不正确,或者至少不是最新的。

这里告诉您可以使用配置文件配置EB资源: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-resources.html

但它没有告诉你把配置文件放在哪里。要找到这一点,您需要点击链接: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html

第一个链接有助于告诉您可以配置的各种资源的名称。在我的情况下,我需要'AWSEBAutoScalingGroup'。但是它并没有告诉你资源类型标识符(Type)或可用属性是什么。它有一个指向'资源类型标识符'(http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/aws-template-resource-type-ref-aeb.html)的链接,但是没有提到那里的自动缩放或弹性beanstalk。

幸运的是,AWS论坛上的善良灵魂向我发送了一些有用文档的链接: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html

所以最后我能够创建我的配置文件,如下所示:

Resources:
    AWSEBAutoScalingGroup:
        Type: "AWS::AutoScaling::AutoScalingGroup"
        Properties:
            HealthCheckType: ELB
            HealthCheckGracePeriod: 600

现在这就像一个魅力!

答案 1 :(得分:1)

您可以创建自己的AutoScaling组并将其用于启动配置。

您还可以使用Elastic Beanstalk配置文件配置AutoScaling:

AWS Elastic Beanstalk: Customizing Environment Resources

<强>更新

  

我确实意识到您可以使用EB配置文件配置ASG,但是没有更改健康检查类型的选项

查看Configure the Health State of An Instance指南,它说您可以使用Elastic Load Balancer运行状况检查与AutoScaling。

默认情况下,Auto Scaling组通过定期检查Amazon EC2实例状态检查的结果来确定每个实例的运行状况。如果已将Auto Scaling组与Elastic Load Balancing负载均衡器关联,并且已选择使用Elastic Load Balancing运行状况检查,则Auto Scaling将通过检查Amazon EC2实例状态检查的结果来确定实例的运行状况。 Elastic Load Balancing实例运行状况检查。

创建AutoScaling组时,可以选择将ELB选为健康检查类型:

enter image description here

或者,如果您使用CreateAutoScalingGroup API调用:

  

<强> HealthCheckType
  您希望从亚马逊进行健康检查的服务   EC2或Elastic Load Balancer。有效值为EC2或ELB。

     

默认情况下,Auto Scaling运行状况检查使用Amazon的结果   EC2实例状态检查以确定实例的运行状况。对于   更多信息,请参阅Health Check