AWS应用弹性架构设计与可用性提升
1. 弹性架构概述
弹性是指应用程序避免故障并在故障发生时快速恢复的能力。应用程序实现的弹性程度与前期设计投入的精力以及运营成本成正比。在进行AWS部署架构设计之前,需要确定实际所需的弹性程度。应用程序的弹性通常用可用性来量化,即应用程序按预期运行的时间百分比。
应用程序的可用性在很大程度上取决于其所使用的AWS资源(包括网络、计算和存储)的可用性。即使是AWS资源也无法保证100%的可用性,因此规划和处理这些不可避免的故障对应用程序的可用性有着重大影响。
2. 可用性计算
可用性是衡量应用程序可靠性的常用指标,它表示应用程序按预期运行的时间百分比。一般来说,我们希望应用程序的可用性非常高,达到99%或更高。以下是不同可用性百分比对应的每年不可用时间:
| 可用性百分比 | 不可用时间 |
| ---- | ---- |
| 99% | 3天15小时39分钟 |
| 99.9% | 8小时45分钟 |
| 99.95% | 4小时22分钟 |
| 99.99% | 52分钟 |
| 99.999% | 5分钟 |
可用性有时也用“几个9”来表示,例如“2个9”是99%,“3个9”是99.9%等。
3. 传统应用与云原生应用的可用性差异
3.1 传统应用
传统应用是为在传统Linux或Windows服务器上运行而编写的。在AWS上部署此类应用,需要在一个或多个EC2实例上运行。如果应用使用数据库,可以在EC2实例上运行和管理自己的数据库软件,或者使用AWS托管的等效服