第十三章 边缘站点(Edge Location)

Lepiaoxue2022-10-21云计算183
AWS 全球基础设施的一大优势在于,它可以帮助您更好地服务客户。在选择区域时,要考虑的一项主要因素是与客户之间的距离。
从 IT 角度来讲,假设您有客户在孟买,他们需要访问您的数据,但数据却托管在东京区域。在这种情况下,您只需要在本地放置一份副本或在孟买缓存一份副本就可以了,而不需要让所有位于孟买的客户将请求发送到东京。在离世界各地客户更近的位置缓存数据副本,这就用到了内容分发网络,也就是 CDN 这个概念。
CDN (Content Delivery Network)很常用,AWS 上的 CDN 是 Amazon CloudFront。Amazon CloudFront 这项服务有助于将数据、视频、应用程序和 API,分发给世界各地的用户并且实现低延迟和高传输速度。Amazon CloudFront 是用分布在世界各地的边缘站点来加快与用户的通信速度,无论他们身处何处。
边缘站点与区域是分开的,所以您可以将内容从某个区域内推送到世界各地的多个边缘站点,以便加快通信和内容分发的速度。AWS 边缘站点不仅支持 CloudFront 而且还支持域名服务,也就是 Amazon Route 53。这项服务可以把用户可靠地、低延迟地路由到正确的 Web 服务位置。
如果您的公司想要在自己的数据中心使用 AWS 服务,您可以使用 AWS Outposts。AWS 会在您的数据中心内安置一个完全可以运行的迷你区域。这个区域是一个隔离的区域,归 AWS 所有,并由 AWS 负责运维。而您可以使用完整的 AWS 功能。这不是大多数客户需要的解决方案,但如果您遇到的具体问题只能在您自己的数据中心内解决,那么您就可以使用 AWS Outposts。
第一,区域是在地理位置上隔离的地区,在区域中,您可以使用企业运营所需要的各项服务。
第二,区域包含可用区,让您能够使用相隔数十英里的不同的数据中心,同时保持您的应用程序在逻辑上的统一。可用区可以帮助您实现高可用性和灾难恢复,而您无需承担任何额外的工作。
第三,AWS 边缘站点支持 Amazon CloudFront,可以让内容更接近用户,无论他们身处何处。边缘站点是一个地点,Amazon CloudFront 使用它将缓存的内容副本存储在更靠近客户的位置以加快分发速度。
与 AWS 服务交互的方式
如何使用AWS服务,或者说我们如何和这些服务进行交互?答案是 API。AWS 当中所有操作都是 API 调用。API 指的是应用程序接口(application programming interface),这意味着您可以通过预先确定的方式与 AWS 进行交互,您可以调用这些 API 来配置和管理您的 AWS 资源。
例如说可以启动一个 EC2 服务器也可以创建一个 Lambda 函数,其中每项操作都是对 AWS 某个 API 的调用。当然,您不需要自己开发调用 AWS API 的应用程序,我们提供了丰富的使用 API 的方法,包括管理控制台、命令行界面、SDK 开发工具包以及其他工具。比如说 AWS CloudFormation。
AWS 的管理控制台你(AWS Management Console)。AWS 控制台,基于浏览器提供的服务,通过控制台,您能够用更加直观的方式管理 AWS 的资源。对于初学者来说或者更进一步,对于人类用户来说非常有用。与之相对的,如果是代码或者应用程序,更多的会选择命令行或 SDK。控制台也适合用来构建测试环境或者查看 AWS 的账单,再或者,查看监控,以及与其他非技术资源相结合使用。
但是,当您的生产环境已经正式开始使用 EC2 服务器之后,您肯定不希望每次运维工作都依靠浏览器,通过鼠标键盘来完成,因为这样的方式相当低效而且几乎无法自动化。例如,为了创建一个 Amazon EC2 实例,您需要点击各种按钮,设置您想要的所有配置,然后启动您的实例。如果您稍后想启动另外一个 EC2 实例,您需要返回控制台再次进行一样的操作。此外,作为人类用户,我们手动完成对操作的错误率也并不低。当您手动执行每项操作时,您很容易会因为忘记选择某一个复选框或者出现拼写错误而出问题。尤其是同样的操作,您需要重复完成几十遍,甚至上百遍的时候。
解决此类问题的方法是编写脚本或者应用程序来解决这样的问题。这时候您的一个选择是 AWS 的命令行,也就是 CLI - AWS Command Line Interface ,命令行允许您在自己的电脑上通过命令的方式进行 API 调用。Windows、macOS 和 Linux 用户都可以使用 AWS CLI。 基于命令行,我们可以编写脚本来完成命令,这样既可以让一个操作重复运行很多次,也可以让自动化成为可能。例如,您可以编写一个脚本来创建一台 EC2 服务器,如果您想创建另外一个服务器,只需要重复运行这个脚本就可以了。您还可以让这些脚本按计划自动运行,或者通过一个进程触发来自动完成。
当我们需要持续不断地进行迭代和部署时,为了保证成功率,自动化非常重要。与 AWS 交互的第三种方式是软件开发工具包,就是 SDK - Software Development Kits软件开发工具包允许您通过各种编程语言与 AWS 进行交互,这让开发人员可以更轻松地使用 AWS 的各种资源和服务。通过命令行和 SDK,我们可以重复执行那些已经被确认过的操作,并且可以实现自动化,避免我们刚刚说过的手动带来的风险。
如何预置(Provision) AWS 资源
您可以通过 AWS 的控制台、命令行和软件开发包来管理您的 AWS 环境。比如说您如果想创建一台 EC2 服务器,可以登录控制台通过鼠标键盘进行操作。您也可以编写一些脚本,甚至干脆开发一款应用程序来执行这个工作。事实上您还有很多别的选择,比如说使用 AWS Elastic Beanstalk 或者 AWS CloudFormation 等工具来进行。
AWS Elastic Beanstalk
使用 AWS Elastic Beanstalk 时,您负责提供代码和配置设置,而 Elastic Beanstalk 会负责部署执行以下任务所需的资源:
  • 调整容量

  • 负载均衡

  • 自动扩展

  • 应用程序运行状况监控

AWS Elastic Beanstalk 是一种服务可以帮助您创建和管理基于 EC2 的环境,您不需要亲自构建架构当中的网络、EC2 实例、扩展和 ELB 等等这些资源。您可以将您的应用程序代码和所需的配置提供给 Elastic Beanstalk 服务,然后这个服务会接受这些信息,并且为您构建环境。您还可以保存相关环境的配置,当您需要的时候可以轻松地再次部署他们。通过 AWS Elastic Beanstalk,您不必单独配置和管理包括 EC2、网络、ELB 等等的这些基础设施。同时您仍然可以控制这些底层资源,这样您就可以专注于您的业务逻辑,而非管理基础设施。
AWS CloudFormation
AWS CloudFormation 能够以安全、可重复的方式预置资源,让您能够频繁构建基础设施和应用程序,而无需执行手动操作或编写自定义脚本。它可以确定管理堆栈时要执行的适当操作,并在检测到错误时自动回滚更改。
可以使用 AWS CloudFormation 来帮助您创建自动化和可重复的部署。AWS CloudFormation 是用基础设施即代码的工具 (IAC - infrastructure as code)。它允许您使用基于 JSON 或 YAML 的文本文档,以声明的方式来定义 AWS 的各种资源,这种文档我们称之为 CloudFormation 模版。通过声明,您只需要定义您想构建的各种资源,CloudFormation 引擎会帮助您构建所需的资源。
此外,CloudFormation 并不局限于以 EC2 为基础的这些解决方案。它支持绝大多数 AWS 的资源,包括存储、数据库、网络和机器学习等等。在 CloudFormation 模板中定义您的资源后,CloudFormation 引擎将解析模板并根据您的定义调用 AWS 的 API 完成资源的创建。您可以在多个账户或多个区域当中去运行同一个 CloudFormation 模板,它可以帮助您在这些账户或区域中创建相同的环境,通过自动化的方式大幅降低人为错误的概率。
总的来说呢,AWS 的控制台是一个手动工具,它可以为用户带来直观的效果,非常适合初学者使用。如果您希望引入自动化,您可以使用终端结合命令行,通过脚本的方式和 AWS 进行交互。对于运维的同学,这种方式更加合适。您也可以选择软件开发工具包,编写应用程序来实现您和 AWS 之间的交互。这种方式更加适合开发的同学。您也可以根据情况来选择 AWS Elastic Beanstalk,或者 AWS CloudFormation 等管理工具来部署您的环境。


版权归乐飘雪所有!

本文链接:http://lepiaoxue.com/post/19.html

相关文章

第一章 AWS云计算简介

第一章 AWS云计算简介

AWS 为每个企业都提供了非常广泛的服务,从基本要素,例如计算、存储和网络安全工具;到复杂的解决方案,例如区块链、机器学习或人工智能;以及机器人开发平台,再到非常专业的工具集,例如视频制作管理系统和可...

第三章 云计算优势

第三章 云计算优势

企业为什么选择云计算来满足业务需求:将前期费用变成可变支出前期费用(Upfront expense)是指您在使用数据中心、物理服务器和其他资源之前需要为其投入的费用。可变支出(Variable exp...

第五章 Amazon EC2

第五章 Amazon EC2

Amazon Elastic Compute Cloud (Amazon EC2)Amazon Elastic Compute Cloud (Amazon EC2) 可以通过 Amazon...

第六章 Amazon EC2 实例类型

第六章 Amazon EC2 实例类型

每种实例类型都归属于一个实例系列,并针对特定类型的任务进行了优化。实例类型提供了 CPU、内存、存储和网络容量的不同组合,使您能够灵活地为应用程序选择适当的资源组合。EC2 中不同的实例系列分别为通用...

第八章 EC2的扩展/Scaling

第八章 EC2的扩展/Scaling

AWS 的另一个主要优势——可扩展性和弹性。换句话说就是容量如何基于业务需求增长和缩减。本地数据中心面临的困境:如果您的企业和世界上 99% 的企业一样,那么您的客户工作负载也会随着时间而变化。也许变...

第九章 利用 Elastic Load Balancing 引导分配流量

第九章 利用 Elastic Load Balancing 引导分配流量

这一理念同样适用于您的 AWS 环境。当您的多个 EC2 实例都运行同一个程序来达到相同的业务目标时,一个请求进来,这个请求如何知道要往哪个 EC2 实例呢?您怎样才能确保工作负载均匀地分布在各个 E...