是否有 AWS 实例正常运行时间计算器?

Is there an AWS Instance Uptime Calculator?

A​​mazon 发布了 SLA,但是在设计弹性多可用区和多区域系统时是否可以计算整体正常运行时间(如呈现给用户的那样)?

例如,在同一区域的 3 个不同可用性区域中使用 ELB 的 3 个 EC2 实例与在 2 个不同区域中使用 4 个 EC2 实例的正常运行时间可能是多少?

那么当我们添加 RDS 实例、Route 53、Cloudfront 等时,可能的影响是什么(正面和负面)?

其他因素,例如 RDS 故障切换时间、云端缓存等,理想情况下应该是计算输入的一部分。

或者 - 假设一个区域为 99.9x% 和两个区域为 99.99x% 的数字是否更好?

编辑 - 我正在尝试计算 "well designed web-facing AWS solution" 的可能停机时间(对于 all/majority 用户)。理想情况下,我会喜欢 AWS 定价工具(或采用定价工具输出)之类的东西来计算每月或超过一年的可能停机时间。这样我就可以计算不同设计的成本和风险,例如RDS 是否真的需要多可用区,每月额外支付 100 美元以上。

计算系统的理论正常运行时间很困难,因为您需要确定 'uptime' 的确切含义。

例如,如果出现网络中断,导致您的某些用户可以访问系统,但有些用户不能访问系统,那么整个系统是否会被视为 'down'?

还有一个区别:

  • SLA 在未达到特定性能水平时提供一些退款
  • 以一定水平的正常运行时间为目标的架构设计(例如"Amazon S3 is designed to provide 99.999999999% durability of objects over a given year")
  • 给定时间段内的实际表现

使用多个可用区是一个很好的设计决策,因为影响一个可用区的中断不应影响另一个可用区。但是,没有关于 AZ 正常运行时间的公开声明。 (事实上​​ ,整个可用区没有任何历史中断,但有时一个可用区内的单个服务可能会受到问题的影响。)

也不需要使用多个区域来实现更高的正常运行时间,因为可用区就是为此目的而设计的。但是,一些组织确实选择使用多个区域(例如,当飓风桑迪威胁到美国东海岸时)。

大多数 AWS 服务旨在处理故障。例如,Amazon Route 53 有一个 "100% Available" SLA,因为它存在于全球 50 多个位置。

底线:如果您设计的解决方案至少使用两个可用区并考虑到故障(例如 Amazon RDS 中的多可用区模式,将数据存储在 Amazon 中S3 在 AZ 之间自动复制),那么您将拥有一个应该能够处理大多数故障的高可用性架构。实际上,将系统设计为高可用性比计算理论百分比要好。