全球基础设施和可靠性

发布时间 2023-08-17 18:16:23作者: Donaver

AWS 全球基础设施

选择区域

在为您的服务、数据和应用程序确定合适的区域时,需要考虑以下四项业务因素。

遵守数据治理和法律要求

根据您的公司和位置,您可能需要在特定区域运行数据。例如,如果您的公司需要所有数据都位于英国境内,您就需要选择伦敦区域。

有些公司不需要遵守特定于位置的数据法规,因此您可能需要更多地关注其他三项因素。

于客户的距离

选择靠近客户的区域可以帮助您更快地向客户发送内容。例如,您的公司总部位于华盛顿特区,但您的许多客户都居住在新加坡。您可以考虑在离公司总部较近的弗吉尼亚北部区域运行基础设施,并在新加坡区域运行应用程序。

区域内的可用服务

有时,最近的区域可能不支持您想要为客户提供的所有功能。AWS 经常通过创建新服务和扩展现有服务中的功能来进行创新。但是,在全球范围内提供新服务有时需要 AWS 按区域依次架设物理硬件。

假设您的开发人员想要构建一个使用 Amazon Braket(AWS 量子计算平台)的应用程序。截至本课程开课之日,Amazon Braket 尚未在世界各地的每个 AWS 区域提供,因此您的开发人员必须在已经提供这项服务的某个区域使用这项服务。

定价

假设您正在考虑同时在美国和巴西运行应用程序。根据巴西的税收制度,与俄勒冈区域相比,在圣保罗区域运行相同工作负载的成本可能会增加 50%。您稍后将会详细了解一些决定定价的因素,但现在只需要知道,服务的成本可能会因区域而有所不同。

可用区

image-20230817173902335

可用区是指一个区域内的单个数据中心或一组数据中心。可用区彼此相隔数十英里。这个距离足够近,可以在可用区之间实现低延迟(请求内容与接收内容之间的时间)。但是,如果区域内的某个部分发生灾难,这个距离又足够远,可以降低多个可用区受到影响的几率。

在多个可用区中运行 Amazon EC2 实例

步骤1 - 在单个可用区中运行 Amazon EC2 实例

image-20230817173909931

假设您在加利福尼亚北部区域的单个 Amazon EC2 实例上运行应用程序。该实例在 us-west-1a 可用区中运行。如果 us-west-1a 发生故障,您就会丢失实例。

步骤2 - 在多个可用区中运行 Amazon EC2 实例

image-20230817173915590

最佳做法是在一个区域内的至少两个可用区中运行应用程序。在本示例中,您可以选择在 us-west-1b 中运行第二个 Amazon EC2 实例。

步骤3 - 可用区发生故障

image-20230817173920435

如果 us-west-1a 发生故障,您的应用程序仍然可以在 us-west-1b 中运行。

边缘站点

边缘站点是一个地点,Amazon CloudFront 使用它将缓存的内容副本存储在更靠近客户的位置以加快分发速度。

image-20230817173926399

来源

假设您公司的数据存储在巴西,而您有客户居住在中国。要向这些客户提供内容,您无需将所有内容移至中国的某个区域。

边缘站点

您可以在靠近中国客户的边缘站点本地缓存副本,而不需要客户从巴西获取数据。

客户

当位于中国的客户请求您的某个文件时,Amazon CloudFront 会从边缘站点的缓存中检索文件,然后将文件分发给客户。文件来自中国附近的边缘站点而不是巴西的原始来源,因此文件可以更快地分发给客户。

如何预置 AWS 资源

与 AWS 服务交互的方式

AWS管理控制台

AWS 管理控制台是一种基于 Web 的界面,用于访问和管理 AWS 服务。您可以快速访问最近使用过的服务,也可以按名称、关键词或首字母缩略词搜索其他服务。控制台包含向导和自动化工作流程,可以简化完成任务的流程。

您还可以使用 AWS 控制台移动应用程序来执行监控资源、查看警报和获取账单信息等任务。您可以同时使用多个身份登录 AWS 控制台移动应用程序。

AWS命令行界面

发出 API 请求时,为了节省时间,您可以使用 AWS 命令行界面 (AWS CLI)。借助 AWS CLI,您可以直接从一个工具中的命令行中控制多项 AWS 服务。Windows、macOS 和 Linux 用户都可以使用 AWS CLI。

通过 AWS CLI,您可以通过脚本自动执行服务和应用程序执行的操作。例如,您可以使用命令来启动 Amazon EC2 实例、将 Amazon EC2 实例连接到特定的 Auto Scaling 组等。

软件开发工具包

用于访问和管理 AWS 服务的另一个选项是软件开发工具包 (SDK)。软件开发工具包让您能够通过专为编程语言或平台设计的 API 更轻松地使用 AWS 服务。借助软件开发工具包,您可以通过现有应用程序使用 AWS 服务,也可以创建将在 AWS 上运行的全新应用程序。

为了帮助您开始使用软件开发工具包,AWS 针对每种受支持的编程语言都提供了相关文档和示例代码。受支持的编程语言包括 C++、Java 和 .NET 等。

AWS Elastic Beanstalk

使用 AWS Elastic Beanstalk 时,您负责提供代码和配置设置,而 Elastic Beanstalk 会负责部署执行以下任务所需的资源:

  • 调整容量

  • 负载均衡

  • 自动扩展

  • 应用程序运行状况监控

AWS CloudFormation

借助 AWS CloudFormation,您可以将基础设施视为代码。这意味着您可以通过编写代码来构建环境,而不是使用 AWS 管理控制台来单独预置资源。

AWS CloudFormation 能够以安全、可重复的方式预置资源,让您能够频繁构建基础设施和应用程序,而无需执行手动操作或编写自定义脚本。它可以确定管理堆栈时要执行的适当操作,并在检测到错误时自动回滚更改。

其他资源

请查看以下资源,详细了解全球基础设施和可用性模块中探讨的概念。