人们如何通过亚马逊自动缩放组中的缩小来处理连接丢失的问题?

Pet*_*eld 6 amazon-web-services

据我了解,当Amazon自动伸缩组降级时,打开到终止实例的任何连接都将丢失-没有正常终止。

我想知道其他人如何处理这个问题。

我的想法是,连接的发起者应该处理失败,因为它应该能够处理实例失败而不是被故意终止的情况。

有什么想法吗?

谢谢,

皮特

Cod*_*Dan 1

我的方法是使用生命周期挂钩。它可以将终止过程中断一段时间(默认 1 小时)。

它被设计为在您的工作完成后恢复,但超时会导致黑客连接耗尽。

您可以选择将挂钩添加到处于此状态的 Auto Scaling 组实例,使其进入 Terminate:Wait 状态。此状态允许您在这些实例终止之前访问它们。

来源:http ://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/AutoScalingGroupLifecycle.html

缺点:通过 CLI 设置,但还不错。

如何做到这一点: http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/adding-lifecycle-hooks.html

创建 IAM 时,您将需要此策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "autoscaling:PutLifecycleHook",
        "autoscaling:DeleteLifecycleHook",
        "autoscaling:RecordLifecycleActionHeartbeat",
        "autoscaling:CompleteLifecycleAction",
        "autoscaling:DescribeAutoscalingGroups",
        "autoscaling:DescribeLifecycleHooks",
        "autoscaling:PutInstanceInStandby",
        "autoscaling:PutInstanceInService",
        "iam:AddRoleToInstanceProfile",
        "iam:CreateInstanceProfile",
        "iam:CreateRole",
        "iam:PassRole",
        "iam:ListInstanceProfiles",
        "ec2:Describe*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

祝你好运!