问题标签 [autoscaling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3230 浏览

amazon-web-services - 从可用区中断中自动恢复?

如果可用区在 Amazon Web Services/EC2 中出现中断,是否有任何工具或技术可用于在不同的可用区中自动创建新实例?

我想我了解如何在可用区 (AZ) 中断的情况下进行自动故障转移,但是从中断中自动恢复(在新 AZ 中创建新实例)呢?那可能吗?

示例场景:

  1. 我们有一个三实例集群。
  2. ELB 轮询到集群的流量。
  3. 我们可以丢失任何一个实例,但不能丢失集群中的两个实例,但仍然可以正常工作。
  4. 由于 (3),每个实例位于不同的 AZ。称他们为 AZs A、B 和 C。
  5. 配置 ELB 健康检查,以便 ELB 可以确保每个实例都是健康的。
  6. 假设一个实例由于 AZ A 中的 AZ 中断而丢失。

此时,ELB 将看到丢失的实例不再响应运行状况检查,并将停止将流量路由到该实例。所有请求都将转到剩余的两个健康实例。故障转移成功。

恢复是我不清楚的地方。有没有办法自动(即无需人工干预)替换新 AZ(例如 AZ D)中丢失的实例?这将避免出现中断的可用区 (A),而不使用其中已经有实例的可用区(可用区 B 和 C)。

自动缩放组?

AutoScaling Groups 似乎是一个很有前途的起点,但我不知道他们是否能正确处理这个用例。

问题:

在 AutoScaling 组中,似乎没有办法指定替换死/不健康实例的新实例应在新 AZ 中创建(例如,在 AZ D 中创建,而不是在 AZ A 中创建)。这是真的吗?在 AutoScaling 组中,似乎没有办法告诉 ELB 删除失败的 AZ 并自动添加新的 AZ。是对的吗?

这些是 AutoScaling 组中的真正缺点,还是我遗漏了什么?

如果 AutoScaling Groups 无法做到这一点,是否有其他工具可以自动为我做到这一点?

2011 年 FourSquare、Reddit 和其他人因依赖单一可用区而陷入困境 ( http://www.informationweek.com/cloud-computing/infrastructure/amazon-outage-multiple-zones-a-smart-str/240009598 ) . 从那时起,工具似乎已经走了很长一段路。我对缺乏自动恢复解决方案感到惊讶。每家公司是否只是推出自己的解决方案和/或手动进行恢复?或者他们只是在掷骰子并希望它不会再次发生?

更新:

@Steffen Opel,感谢您的详细解释。Auto Scaling 组看起来更好,但我认为它们在与 ELB 一起使用时仍然存在问题。

假设我创建了一个 Auto Scaling 组,其最小值、最大值和期望值设置为 3,分布在 4 个可用区。Auto Scaling 将在 3 个不同的 AZ 中创建 1 个实例,第 4 个 AZ 留空。如何配置 ELB?如果它转发到所有 4 个 AZ,那将不起作用,因为一个 AZ 将始终拥有零个实例,而 ELB 仍会将流量路由到它。这将导致当流量进入空 AZ 时返回 HTTP 503。我过去曾亲身经历过。这是我之前看到的一个例子

这似乎需要手动将 ELB 的可用区更新为仅在其中运行实例的可用区。每次自动缩放导致不同的可用区组合时,都需要发生这种情况。是这样吗,还是我错过了什么?

0 投票
1 回答
395 浏览

amazon-web-services - AWS Auto Scaling 多个自定义 AMI?

我有几个正在运行的自定义 AMI,我想将它们作为一个组进行控制,即自动启动它们并在预定义的时间将它们拆除。它们是不同的 ami,而不是同一个 ami 的倍数。自动缩放 API 可以做到这一点吗?

0 投票
1 回答
1438 浏览

amazon-web-services - 使用 AWS Auto Scaling 终止实例?

使用 AWS 自动缩放的时间调度功能启动实例没有问题:

但是当我尝试安排这个实例被终止时,什么也没有发生:

我哪里错了?

谢谢史蒂芬。延迟不是问题,但我可能会在一天内尝试超过 4 个时间表!为了完整起见,这些是启动一个实例然后在几分钟后将其恢复所需的唯一步骤:

0 投票
0 回答
111 浏览

azure - 自动缩放应用程序块不增加/减少实例

我已经使用 Enterprise Library Autoscaling Block 实现了自动缩放,与教程中的描述非常相似。

因此,当我第一次为我的站点运行负载测试时,它会将实例计数增加一个。

当我再次运行负载时,CPU 使用率为 100%,但它并没有增加实例数。当 CPU 使用率为 0% 时,它不会减少实例计数。

那么这里有什么问题呢?

我有以下规则和服务 XML。规则 XML:

服务 XML:

0 投票
1 回答
130 浏览

java - CloudBees 和应用单元、实例和池

我试图了解以下之间的区别:

  • 一个应用单元
  • 一个应用实例;和
  • 应用程序池

例如,我如何知道何时适合为我的应用添加更多应用单元?还是添加更多实例?或者将它们的某个子集配置到一个池中?提前致谢!

0 投票
1 回答
212 浏览

amazon-web-services - 对 ec2 自动缩放实例的初始化错误做出反应

我有一个在 ELB 后面的 EC2 上运行的网络服务器,它使用 AWS AutoScale 进行扩展。当一个新实例启动时,它会从 git 存储库中获取最新的应用程序代码。

在初始化期间对任何错误做出反应的最佳方法是什么?

  • git 服务器可能无法启动/无法访问
  • 磁盘可能已损坏,git pull 存在错误(是的,这发生在我身上)
0 投票
1 回答
903 浏览

batch-file - .bat 脚本在执行 AWS Auto Scaling 命令之前终止

我对 Amazon Cloud Auto Scaling(和 AWS 一起)相当陌生。

我目前正在尝试编写一个 .bat 脚本,它将自动创建一个启动配置,然后是一个自动缩放器。目标是获得大约一周前由同事设置的图像。

我遇到的问题是,当我运行脚本时,没有执行启动配置命令之后的命令。

代码在这里:

我正在寻找帮助我调试此问题的建议。或有关如何解决它的建议。在“回声计时器完成”之后,我有一个创建自动缩放器的命令。但是,甚至没有执行“回声计时器完成”。控制台确实返回表明启动配置已创建:)

此外,当我将每个命令按顺序输入命令行时,每个命令都能完美执行。启动配置与自动缩放组一样创建。

0 投票
1 回答
456 浏览

ruby-on-rails - Heroku dyno 会影响外部 API 调用吗?

我有一个应用程序,每天对外部 API 进行数十万次调用(通过 HTTP 请求)。

我在 Heroku 应用程序上拥有的网络测功机数量是否会影响我每秒可以拨打的电话的速度或数量,或保存检索到的数据的能力?

0 投票
1 回答
1806 浏览

amazon-web-services - 针对 AWS CloudWatch 和 AutoScaling 中的特定 SQS 队列

我是 AWS AutoScaling 和 CloudWatch 的新手,并且在 windows 命令行上使用这两个 sdk。要么我试图做的事情是不可能的,要么教程中缺少信息,要么我完全理解断开连接。请帮我弄清楚是哪一个。

我已经使用 AWS 成功设置了与这些策略相关的启动配置、自动缩放器、策略和警报。但是,通过我学习过的所有教程以及网络上的示例,我还没有看到如何准确地指定我希望我的警报监控哪个队列的指标。

假设我在 Amazon Cloud 中有多个队列。如何指定在我的一个队列而不是其他队列上设置自动缩放和警报?

我遵循了这些教程:

  1. http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/US_BasicSetup.html
  2. 在http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-scale-based-on-demand.html中创建策略和警报部分
0 投票
1 回答
155 浏览

azure - Azure 自动缩放 (400) 错误请求

我尝试通过后面的代码增加我的实例数。

首先,我创建了一个 .cer 文件和 .pfx 文件,并将其上传到 .pfx 到云服务证书和 .cer 到设置 --> 管理证书。

在我的代码中使用 .cer 文件之后。我不太清楚这个上传文件是真的吗?

这是我的代码:

我正在检查我的虚拟机中的一些字段,并增加我的 currentInstanceCount 。

ChangeConfigurationBySlot 方法抛出异常:

远程服务器返回意外响应:(400) 错误请求。

我哪里错了?我无法理解。是关于方法参数还是错误的上传证书?

你有估计吗?

谢谢。