赞
踩
假设您负责公司资源的架构,并需要支持新网站。对于传统的本地资源,您必须执行以下操作:
相比之下,使用Amazon EC2实例,您可以使用虚拟服务器在AWS Cloud中运行应用程序:
通用实例提供计算、内存和网络资源的平衡。您可以将它们用于各种工作负载,例如:
计算优化实例对于受益于高性能处理器的计算绑定应用程序非常理想。与通用实例一样,您可以为web、应用程序和游戏服务器等工作负载使用计算优化实例。
然而,不同的是,计算优化应用程序是高性能web服务器、计算密集型应用程序服务器和专用游戏服务器的理想选择。对于需要在单个组中处理许多事务的批处理工作负载,还可以使用计算优化实例。
内存优化实例旨在为在内存中处理大型数据集的工作负载提供快速性能。在计算中,内存是一个临时的存储区域。它保存着中央处理单元(CPU)完成操作所需的所有数据和指令。在计算机程序或应用程序能够运行之前,它先从存储器加载到内存中。这个预加载过程使CPU可以直接访问计算机程序。
假设有一个工作负载需要在运行应用程序之前预加载大量数据。这个场景可能是一个高性能数据库,或者涉及到执行大量非结构化数据的实时处理的工作负载。在这些类型的用例中,考虑使用内存优化的实例。内存优化实例使您能够运行高内存需求的工作负载,并获得良好的性能。
与在cpu上运行的软件相比,加速计算实例使用硬件加速器或协处理器来更有效地执行某些功能。这些函数的示例包括浮点数计算、图形处理和数据模式匹配。
在计算机中,硬件加速器是一种可以加速数据处理的组件。加速计算实例非常适合图形应用程序、游戏流和应用程序流等工作负载。
存储优化实例是为需要对本地存储上的大型数据集进行高顺序读写访问的工作负载设计的。适合存储优化实例的工作负载示例包括分布式文件系统、数据仓库应用程序和高频在线事务处理(OLTP)系统。
在计算领域,IOPS (input/output operations per second)是衡量存储设备性能的指标。它表示设备在一秒钟内可以执行多少种不同的输入或输出操作。存储优化实例被设计为向应用程序提供数万个低延迟、随机IOPS。
您可以把输入操作看作是输入系统的数据,比如输入数据库的记录。输出操作是由服务器生成的数据。输出的一个例子可能是对数据库中的记录执行的分析。如果您的应用程序有较高的IOPS需求,那么存储优化的实例可以提供比其他没有针对这类用例进行优化的实例类型更好的性能。
按需实例非常适合短期的、不定期的、不能中断的工作负载。没有预付成本或最低合同适用。实例将持续运行,直到您停止它们,并且您只需为所使用的计算时间付费。
随需应变实例的示例用例包括开发和测试应用程序,以及运行具有不可预测使用模式的应用程序。对于持续一年或更长时间的工作负载,不建议使用On-Demand实例,因为使用Reserved Instances可以节省更多的成本。
AWS为包括Amazon EC2在内的多种计算服务提供储蓄计划。Amazon EC2储蓄计划通过承诺1年或3年的计算使用量,使您能够降低计算成本。这个期限的承诺导致节省高达**66%**的按需成本。
在承诺范围内的任何使用都按折扣计划费率收费(例如,每小时10美元)。任何超出承诺的使用将按定期按需收费。
在本课程的后面,您将回顾AWS成本管理器,这是一个工具,可以让您可视化、理解和管理您的AWS成本和使用情况。如果您正在考虑您的节约计划,AWS成本浏览器可以分析您的Amazon EC2使用情况在过去7天、30天或60天。AWS成本管理器还为节约计划提供定制的建议。这些建议根据之前亚马逊EC2的使用情况和1年或3年计划中每小时的承诺金额,估计你每月可以节省多少亚马逊EC2成本。
保留实例是应用于您帐户中按需实例的使用的计费折扣。您可以购买1年或3年期限的标准保留和可转换保留实例,以及1年期限的预定保留实例。你会意识到3年的选择可以节省更多的成本。
在保留实例期限的末尾,您可以继续使用Amazon EC2实例而不中断。然而,在您执行以下任一操作之前,您将被收取按需收费:
对于具有灵活的开始和结束时间或能够承受中断的工作负载,Spot实例是理想的。Spot实例使用未使用的Amazon EC2计算能力,并为您提供高达**90%**的按需价格的成本节省。
假设您有一个后台处理作业,可以根据需要启动和停止(例如客户调查的数据处理作业)。您希望在不影响业务整体操作的情况下启动和停止处理作业。如果您发出了一个Spot请求,并且Amazon EC2容量可用,那么您的Spot Instance就会启动。但是,如果您发出一个Spot请求,而Amazon EC2容量不可用,则在容量可用之前,该请求不会成功。不可用容量可能会延迟后台处理作业的启动。
启动一个Spot实例后,如果容量不再可用或对Spot实例的需求增加,您的实例可能会被中断。这可能不会对您的后台处理工作造成任何问题。但是,在前面的开发和测试应用程序的示例中,您很可能希望避免意外的中断。因此,选择适合这些任务的不同EC2实例类型。
专用主机是具有Amazon EC2实例容量的物理服务器,完全供您使用。
您可以使用现有的每个套接字、每个核心或每个vm的软件许可证来帮助维护许可证遵从性。您可以购买按需专用主机和专用主机预订。在所有涉及到的Amazon EC2选项中,专用主机是最昂贵的。
可伸缩性涉及只从需要的资源开始,通过向外或向内扩展,将架构设计为自动响应不断变化的需求。因此,你只需要为你所使用的资源付费。您不必担心计算能力不足来满足客户的需求。
如果您希望伸缩过程自动发生,您会使用哪个AWS服务?为Amazon EC2实例提供此功能的AWS服务是Amazon EC2 Auto Scaling。
如果您试图访问一个无法加载且经常超时的网站,则该网站可能收到了超出其处理能力的请求。这种情况类似于在咖啡店排着长队,只有一个咖啡师为顾客点菜。
Amazon EC2 Auto Scaling使您能够根据不断变化的应用程序需求自动添加或删除Amazon EC2实例。通过根据需要自动伸缩实例,您可以更好地了解应用程序的可用性。
在Amazon EC2 Auto Scaling中,您可以使用两种方法:dynamic scaling and predictive scaling
注:为了实现快速伸缩,可以同时使用动态伸缩和预测伸缩。
在云计算中,计算能力是一种编程资源,因此您可以采用更灵活的方法来解决可伸缩性问题。通过向应用程序添加Amazon EC2 Auto Scaling,您可以在必要时向应用程序添加新实例,并在不再需要时终止它们。
假设您准备在Amazon EC2实例上启动一个应用程序。在配置自动伸缩组的大小时,可以将Amazon EC2实例的最小数量设置为一个。这意味着,在任何时候都必须至少有一个Amazon EC2实例在运行。
在创建自动伸缩组时,可以设置Amazon EC2实例的最小数量。最小容量是创建Auto Scaling组后立即启动的Amazon EC2实例的数量。在本例中,Auto Scaling组的最小容量为一个Amazon EC2实例。
接下来,您可以在两个Amazon EC2实例上设置所需的容量,即使您的应用程序至少需要一个Amazon EC2实例才能运行。
注:如果您没有在自动伸缩组中指定所需的Amazon EC2实例数量,则所需的容量默认为您的最小容量。
在自动伸缩组中可以设置的第三种配置是最大容量。例如,您可以将Auto Scaling组配置为向外扩展以响应增加的需求,但最多只能扩展到四个Amazon EC2实例。
因为Amazon EC2 Auto Scaling使用Amazon EC2实例,所以当您使用这些实例时,您只需要为它们付费。您现在拥有了一个具有成本效益的体系结构,该体系结构在减少开支的同时提供了最佳的客户体验。
弹性负载平衡是AWS服务,它可以自动跨多个资源分配传入的应用程序流量,比如Amazon EC2实例。
一个负载均衡器作为一个单一的接触点,所有传入的网络流量到您的自动伸缩组。这意味着,当您添加或删除Amazon EC2实例以响应传入的通信量时,这些请求首先路由到负载均衡器。然后,请求分散到将处理它们的多个资源上。例如,如果您有多个Amazon EC2实例,那么Elastic Load Balancing会在多个实例之间分配工作负载,这样就不会有单个实例承担大量的工作负载。
尽管Elastic Load Balancing和Amazon EC2 Auto Scaling是两个独立的服务,但它们一起工作以确保在Amazon EC2中运行的应用程序能够提供高性能和可用性。
Low-demand period
下面是弹性负载平衡如何工作的示例。假设有几个顾客来到咖啡店并准备下订单。
如果只开放少量的注册,这符合需要服务的客户的需求。咖啡店不太可能有没有顾客的开放式收银台。在本例中,您可以将寄存器看作Amazon EC2实例。
High-demand period
一整天,随着顾客数量的增加,咖啡店会开放更多的收银台来容纳他们。在图中,Auto Scaling组表示这一点。
此外,咖啡店员工将客户导向最合适的注册,以便请求的数量可以均匀地分布在开放的注册中。您可以将这个咖啡店员工视为一个负载均衡器。
Amazon Simple Notification Service (Amazon SNS)是一种发布/订阅服务。出版商使用Amazon SNS主题向订阅者发布消息。这与咖啡店类似;收银员向调酒师提供咖啡单。
在Amazon SNS中,订阅者可以是web服务器、电子邮件地址、AWS Lambda函数或其他几个选项。
Publishing updates from a single topic
假设咖啡店有一份简报,其中包括其业务所有领域的更新。它包括优惠券、咖啡琐事和新产品等话题。所有这些主题被分组,因为这是一个单一的通讯。所有订阅该通讯的客户都能收到有关优惠券、咖啡琐事和新产品的更新信息。
一段时间后,一些客户表示,他们希望只收到他们感兴趣的特定主题的单独的时事通讯。咖啡店老板决定尝试这种方法。
Publishing updates from multiple topics
现在,咖啡馆不再为所有话题提供单一的时事通讯,而是将其分成三个独立的时事通讯。每一份简报都专注于一个特定的主题:优惠券、咖啡琐事和新产品。
订阅者现在只会立即收到他们订阅的特定主题的更新。
订阅者可以订阅单个主题或多个主题。例如,第一个客户只订阅优惠券主题,而第二个订阅者只订阅咖啡琐事主题。第三个顾客订阅了咖啡琐事和新产品主题。
Amazon简单队列服务(Amazon SQS)是一种消息队列服务。
使用Amazon SQS,您可以在软件组件之间发送、存储和接收消息,而不会丢失消息或要求提供其他服务。在Amazon SQS中,应用程序将消息发送到队列中。用户或服务从队列中检索消息,对其进行处理,然后将其从队列中删除。
例子:完成订单
假设咖啡店有一个订购过程,在这个过程中,收银员负责接收订单,咖啡师负责下订单。可以将收银员和咖啡师看作应用程序的两个独立组件。
首先,收银员拿一张订单并把它写在一张纸上。接下来,收银员把纸条交给咖啡师。最后,咖啡师把饮料端给顾客。
当下一个订单进来时,这个过程重复进行。只要收银员和咖啡师都协调好,这个过程就会顺利进行。如果收银员拿了一份订单,要把它送到咖啡师那里,但咖啡师正在休息或忙于另一份订单,会发生什么呢?收银员需要等到咖啡师准备好接受订单。这将导致订购过程的延迟,并要求客户等待更长的时间来接收他们的订单。
随着咖啡店越来越受欢迎,订餐队伍移动越来越慢,店主注意到目前的订餐过程既耗时又低效。他们决定尝试一种使用队列的不同方法。
例子:队列中的订单
回想一下,收银员和咖啡师是应用程序的两个独立组件。消息队列服务(如Amazon SQS)支持解耦应用程序互补之间的消息。
在本例中,流程的第一步与之前相同:客户向收银员下订单。
收银员将订单放入队列。你可以把它想象成一个在收银员和咖啡师之间起到缓冲作用的点餐板。即使咖啡师正在休息或忙于另一份订单,收银员也可以继续将新订单放入队列中。
接下来,咖啡师检查队列并检索订单。
咖啡师准备好饮料并把它递给顾客。
然后,咖啡师从队列中删除完成的订单。
当咖啡师准备饮料时,收银员可以继续接受新订单,并将他们添加到队列中。
在本模块的前面,您了解了Amazon EC2,这是一种允许您在云中运行虚拟服务器的服务。如果你想在Amazon EC2中运行应用程序,你必须做到以下几点:
术语“无服务器”意味着您的代码运行在服务器上,但您不需要提供或管理这些服务器。使用无服务器计算,您可以更多地专注于创新新产品和功能,而不是维护服务器。
无服务器计算的另一个好处是自动伸缩无服务器应用程序的灵活性。无服务器计算可以通过修改消耗单位(比如吞吐量和内存)来调整应用程序的容量。
AWS Lambda是一个用于无服务器计算的AWS服务。
AWS Lambda是一种服务,可以让您在不需要提供或管理服务器的情况下运行代码。
在使用AWS Lambda时,您只需支付所消耗的计算时间。收费只在代码运行时生效。您还可以为几乎任何类型的应用程序或后端服务运行代码,所有这些都无需进行任何管理。
例如,一个简单的Lambda函数可能涉及自动调整上传到AWS Cloud的图像的大小。在本例中,该函数在上传新图像时触发。
容器为您提供了一种标准的方式来将应用程序的代码和依赖项打包到单个对象中。您还可以将容器用于对安全性、可靠性和可伸缩性有基本需求的流程和工作流。
One host with multiple containers
假设公司的应用程序开发人员的计算机上有一个环境,这个环境与IT操作人员使用的计算机上的环境不同。开发人员希望确保无论部署如何,应用程序的环境都保持一致,因此他们使用了一种容器化的方法。这有助于减少调试应用程序和诊断计算环境差异所花费的时间。
Tens of hosts with hundreds of containers
在运行容器化应用程序时,重要的是要考虑可伸缩性。假设您必须管理数十台主机和数百个容器,而不是使用多个容器的单个主机。或者,您必须管理可能有数百个主机和数千个容器。在大的范围内,想象一下监视内存使用、安全性、日志记录等可能要花费多少时间。
Amazon Elastic Container Service (Amazon ECS)(Amazon ECS)是一个高度可伸缩的、高性能的容器管理系统,可以让您在AWS上运行和扩展容器化的应用程序。
Amazon ECS支持Docker容器。Docker是一个软件平台,可以让你快速构建、测试和部署应用程序。AWS支持使用开源Docker社区版和基于订阅的Docker企业版。使用Amazon ECS,您可以使用API调用来启动和停止启用docker的应用程序。
Amazon Elastic Kubernetes Service (Amazon EKS)是一个完全托管的服务,您可以使用它在AWS上运行Kubernetes。
Kubernetes是开源软件,它使您能够大规模地部署和管理容器化应用程序。一个庞大的志愿者社区维护着Kubernetes, AWS积极地与Kubernetes社区合作。随着Kubernetes应用程序的新特性和功能的发布,您可以轻松地将这些更新应用到Amazon EKS管理的应用程序中。
AWS Fargate是一个用于容器的无服务器计算引擎。它可以与Amazon ECS和Amazon EKS一起工作。
使用AWS Fargate时,您不需要提供或管理服务器。AWS Fargate为您管理服务器基础设施。您可以更多地关注于应用程序的创新和开发,并且只需为运行容器所需的资源付费。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。