AWS云计算实战(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-05 17:01:49

点击下载

作者:(德)安德烈亚斯·威蒂格(Andreas Wittig) 迈克尔·威蒂格(Michael Wittig)

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

AWS云计算实战

AWS云计算实战试读:

前言

当我们开始开发软件时,我们并不关心运维。我们编写代码,其他人负责部署和运维。这就意味着,软件开发和运维之间存在巨大的鸿沟。更重要的是,发布新功能往往意味着巨大的风险,因为我们无法针对基础设施所有的变更进行手动测试。当需要部署新功能时,每隔6个月我们就要经历一场噩梦。

时间流逝,我们开始负责一个产品。我们的目标是快速迭代,并且能够每周对产品发布新的功能。我们的软件要负责管理资金,因此,软件和基础设施的质量与创新能力一样重要。但是,缺乏灵活性的基础设施和过时的软件部署过程使这一目标根本无法实现。于是,我们开始寻找更好的方法。

我们搜索到了Amazon Web Services(AWS),它为我们提供了灵活、可靠的方式来构建和运行我们设计的应用程序。让我们的基础设施的每一部分实现自动化的可能性令人着迷。逐步地,我们尝试不同的AWS服务,从虚拟服务器到分布式消息队列。能够将运行SQL数据库或在负载均衡器上终止HTTPS连接这类任务外包的特性为我们节省了大量的时间。我们将节省下来的时间投入到实现整个基础设施的自动化测试和运维上。

技术方面并不是在向云转型过程中发生的唯一变化。一段时间后,软件架构从单体应用转变为微服务架构,软件开发与运维之间的鸿沟消失了。相反,我们围绕DevOps的核心原则——“谁构建,谁运维”——构建了我们的组织机构。

我们公司是首家在AWS上进行运营的德国银行。我们在这个云计算的旅程中学到了很多关于Amazon Web Services、微服务以及DevOps的知识。

今天,作为顾问,我们正致力于帮助我们的客户充分利用AWS。有趣的是,他们大多数都不关心怎样节省云计算的成本,相反,他们正在改变他们的组织,从AWS提供的创新空间中获益并领先于自己的竞争对手。

2015年1月,当我们受邀编写一本关于AWS的书时,感到非常惊讶。但是,在我们与Manning出版社的编辑第一次通电话之后,体会到了Manning出版社的专业水准,我们变得越来越有信心。我们喜欢读书以及传授和分享我们的知识,所以写一本书应该是一个完美的契合。

由于Manning出版社和MEAP读者的巨大支持,我们得以在9个月内完成了本书。我们喜欢我们自己、编辑和MEAP读者之间的循环反馈。可以说创建和改进作为本书一部分的所有示例是非常有趣的。资源与支持

本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。配套资源

本书提供如下资源:● 本书源代码。

要获得以上配套资源,请在异步社区本书页面中点击,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。提交勘误

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,点击“提交勘误”,输入勘误信息,点击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。关于异步社区和异步图书“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https:// www.epubit.com。“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。异步社区微信服务号致谢

写一本书是非常耗时的。我们投入了大量的时间,其他人也一样投入了大量的时间。我们认为时间是地球上最有价值的资源之一,我们要尊重帮助我们完成这本书的人们为此所花费的每一分钟。

感谢所有购买MEAP版本的读者,你们的信任激励我们完成这本书,而且你们还分享了自己对AWS的兴趣。感谢你们阅读这本书,希望你们能有所收获。

感谢所有在本书作者在线论坛上发表评论以及为改进这本书提供精彩反馈的人们。

感谢所有从第一页到最后一页提供了详细评论的审阅者,他们是Arun Allamsetty、Carm Vecchio、Chris Bridwell、Dieter Vekeman、Ezra Simeloff、Henning Kristensen、Jani Karhunen、Javier Muñoz Mellid、Jim Amrhein、Nestor Narvaez、Rambabu Posa、Scott Davidson、Scott M. King、Steffen Burzlaff、Tidjani Belmansour和William E. Wheeler。你们的建议帮助我们塑造了这本书,希望你们像我一样喜欢这本书。

我们也要感谢Manning出版社对我们的信任。这是我们写的第一本书,所以我们知道他们在承担极高的风险。我们要感谢Manning出版社以下工作人员的出色工作。● Dan Maharry,是你帮助我们在教授AWS的时候不要缺少重要的

步骤。感谢你如此耐心,容忍我们同样的错误犯好几次。我们也

想感谢Jennifer Stout和Susanna Kline在Dan度假的时候给予的帮

助。● Jonathan Thoms,是你帮助我们思考如何表达代码背后的思

想。● Doug Warren,是你检查了我们的代码示例是否按预期工作。● Tiffany Taylor,是你完善了我们的英语表达。我们知道你和我们

在一起工作会很不容易,因为我们的母语是德语,我们要感谢你

的努力。● Candace Gillhoolley和Ana Romac,是你们帮我们推广这本书。● Benjamin Berg,是你回答了我们关于写书的许多技术方面的问

题。● Mary Piergies、Kevin Sullivan、Melody Dolab以及所有其他幕后

工作者,是你们把粗糙的初稿变成了一本真正的书。

非常感谢Ben Whaley为本书作序。

还要感谢Christoph Metzger、Harry Fix和Tullius Walden Bank团队为我们提供了一个令人难以置信的工作场所,在这里通过将德国第一家银行的原有IT迁移到AWS上,我们获得了很多AWS技能。

最后但同样重要的是,我们要感谢我们生活中的一些重要的人,他们在我们写这本书时默默地支持我们。Andreas要感谢他的妻子Simone,Michael要感谢他的合伙人Kathrin在过去9个月的耐心和鼓励。关于本书

本书介绍了一些重要的AWS服务,以及如何组合它们以便充分利用Amazon Web Services。我们的大多数示例都使用典型的Web应用程序来展示要点。我们非常重视安全话题,所以本书遵循“最小特权”的原则,而且尽可能使用官方的AWS工具。

自动化贯穿于整本书,所以最终读者会很乐意使用自动化工具CloudFormation,来以自动化的方式设置自己所学到的知识,这将是读者能从本书中学到的最重要的技能之一。

本书将介绍3种类型的代码清单:Bash、JSON和Node.js/JavaScript。我们使用Bash创建小型的脚本,以自动方式与AWS进行交互;JSON用于以CloudFormation可以理解的方式描述基础设施;当需要编程来使用服务时,我们使用Node.js平台用JavaScript创建小型应用程序。

我们将Linux作为本书中虚拟服务器的操作系统。所有的示例尽可能地基于开源软件。路线图

第1章介绍云计算和AWS。我们将了解关键概念和基础知识,并创建和设置自己的AWS账户。

第2章将Amazon Web Services带入具体操作中。我们将轻而易举地进入复杂的云基础设施。

第3章是关于使用虚拟服务器的。这一章将借助一些实际的例子,讲解EC2服务的主要概念。

第4章会展示实现自动化基础设施的不同方法。通过使用3种不同的方法,我们将了解何谓“基础架构即代码”,这3种方法分别是终端、编程语言和称为CloudFormation的工具。

第5章会介绍将软件部署到AWS的3种不同方法。我们将使用每种工具以自动方式将应用程序部署到AWS。

第6章是关于安全性的。我们将学习如何使用私有网络和防火墙来保护自己的系统,还将学习如何保护自己的AWS账户。

第7章会介绍了提供对象存储服务的S3,以及提供长期存储服务的Glacier。我们将学习如何将对象存储集成到应用程序中以实现无状态服务器,并用以创建映像库的示例。

第8章是关于AWS提供的虚拟服务器的块存储的。如果计划在块存储上运行原有的软件,这是一个有趣的话题。我们还可以进行一些性能的测量,以了解AWS上可用的选项。

第9章会介绍RDS,这是一种为客户管理关系数据库系统(如PostgreSQL、MySQL、Oracle和Microsoft SQL Server)而提供的服务。如果客户的应用程序使用这种关系数据库系统,这就是实现无状态服务器架构的简单方法。

第10章会介绍DynamoDB,一个提供NoSQL数据库的服务。我们可以将该NoSQL数据库集成到应用程序中以实现无状态服务器。我们将在这一章中实现一个待办事宜应用的程序。

第11章是关于独立的服务器和完整的数据中心的基础知识的。我们将学习如何在同一个或另一个数据中心中恢复单个EC2实例。

第12章会介绍将系统解耦以增加可靠性的概念。我们将学习如何在AWS上的负载均衡器的帮助下实现同步解耦。异步解耦也是这一章内容的一部分,我们解释如何使用SQS(一种分布式队列服务)搭建容错系统。

第13章会展示如何使用所学的许多服务搭建容错的应用程序。在这一章中,我们将学习基于EC2实例设计容错Web应用程序所需的所有内容,默认情况下它们是不会容错的。

第14章的内容都是关于系统灵活性的。我们将学习如何根据调度或基于系统当前的负载来扩展基础结构的容量。代码的约定和下载

代码清单中或正文中的所有源代码都是等宽字体,以便与普通文本区分开。许多代码清单附带了代码注释,突出了重要的概念。在某些情况下,有编号的项目符号与代码清单后面的说明联系起来,有时我们需要将一行分成两行或更多,以适应页面。在我们的Bash代码中,我们使用了延续的反斜杠。在我们的JSON和Node.js/JavaScript代码中,➥这个符号表示一个人为换行符。

本书中的示例代码可从出版社的官方网站下载。关于作者

安德烈亚斯•威蒂格(Andreas Wittig)和迈克尔•威蒂格(Michael Wittig)作为软件工程师和顾问,专注于AWS以及Web应用程序和移动应用程序开发。他们与遍及全球的客户一同工作。他们一起将德国银行的整个IT基础设施迁移到了AWS。这在德国银行界算是首例。Andreas和Michael在分布式系统开发和架构、算法交易和实时分析方面具有专长。他们是DevOps模型的拥趸,且都是AWS认证的专业级AWS解决方案架构师(AWS Certified Solutions Architect,Professional Level)。关于封面插画

本书封面上的图片标题为“Paysan du Can-ton de Lucerne”,这是瑞士中部卢塞恩州的一名农民。这张照片摘自《Jacques Grasset de Saint-Sauveur》(1757—1810)1797年在法国出售的来自各国的服装服饰的图集《Costume deDifférent Pays》。每幅画都是经过精心绘制和手工上色的。

Grasset de Saint-Sauveur的图集丰富多彩,让我们生动地看到了世界各地的城市和地区在200多年前的文化差异。彼此隔绝,人们讲着不同的方言和语言。在街头或农村,通过人们的服装服饰很容易就能确定他们住在哪里,以及他们的身份和职位。

从那时起,我们的着装方式发生了变化,当时地域的多样化带来的着装上的丰富多彩已经渐渐消逝。现在很难分辨不同地域的居民,更别说不同城镇、不同地区或不同国家的居民了。也许我们已经用更多样化的个人生活交换了文化多样性——当然这是为了一个更多样化和快节奏的科技生活。

在很难分辨出一本计算机相关的图书的时候,Manning出版社以两个世纪前丰富多样的地域生活为基础,借用Grasset de Saint-Sauveur的图画作为书籍的封面,以此赞美计算机行业的创造性和主动性。第一部分AWS云计算起步

你有没有在Netflix上看过影片,在Amazon.com上买过小玩意,或者今天同步过Dropbox上的文件吗?如果有的话,你就已经在后台使用了Amazon Web Services(AWS)。截至2014年12月,AWS运营了140万台服务器,是云计算市场的大玩家。AWS的数据中心广泛分布于美国、欧洲、亚洲和南美洲。但云计算不只是由硬件和计算能力构成的,软件是每个云计算平台的一部分,能使客户体验到云平台的差异。信息技术的研究机构Gartner将AWS列为云计算基础设施即服务(IaaS)的魔力象限的领导者。算上2015年这已经是第四次了。这是因为,AWS平台上的创新速度以及服务的质量都是非常高的。

本书的第一部分将作为了解AWS的第一步,引导读者了解如何使用AWS来改善IT基础设施。第1章将介绍云计算和AWS,读者将了解关键概念和基础知识。第2章将介绍Amazon Web Service的具体操作,让读者轻松进入复杂的云基础设施。第1章什么是Amazon Web Services本章主要内容● Amazon Web Services概述● 使用Amazon Web Services的益处● 客户可以使用Amazon Web Services做什么的示例● 创建以及设置Amazon Web Services账户

Amazon Web Service(AWS)是一个提供Web服务解决方案的平台,它提供了不同抽象层上的计算、存储和网络的解决方案。客户可以使用这些服务来托管网站,运行企业应用程序和进行大数据挖掘。这里提到的术语Web服务,它的含义是可以通过Web界面来控制服务。Web界面可以由机器或人类通过图形用户界面来操作。其中最突出的服务是提供虚拟服务器的EC2,以及提供存储服务的S3。AWS上的服务可以配合工作,客户可以使用它们来复制现有的在企业内部部署的系统,或者从头开始设计新的设置。这些服务按使用付费定价模式收取服务费用。

AWS的客户可以选择不同的数据中心。AWS数据中心分布在美国、欧洲、亚洲和南美洲等。例如,客户可以在日本启动一个虚拟服务器,与在爱尔兰启动虚拟服务器是一样的。这使你能够为世界各地的客户提供全球性的基础设施服务。

所有客户都可以使用的AWS数据中心分布在德国、美国(西部1处、东部2处)、爱尔兰、日本、新加坡、澳大利亚和巴西。AWS使用了什么样的硬件AWS没有公开其数据中心所使用的硬件。AWS运行的计算、网络和存储的硬件的规模是巨大的。与使用品牌硬件设备的额外费用相比,它很可能使用商品化的硬件组件以节省成本。硬件故障的处理依靠真实的流程和软件。AWS还使用针对其使用场景而特别开发的硬件。一个很好的例子是英特尔Xeon E5-2666 v3 CPU。这款CPU经过优化为EC2 C4系列的虚拟服务器提供支持。

从更广泛的意义上讲,AWS就是所谓的云计算平台。1.1 什么是云计算

几乎目前每个IT解决方案都标有云计算或者云。一个时髦的词汇可能有助于产品销售,但在本书中却不适用。

云计算或云是针对IT资源的供应和消费的一个比喻。云中的IT资源对用户来说不直接可见,在这之间有多个抽象的层。云计算提供的抽象级别可能会因虚拟硬件与复杂的分布式系统而有所不同。资源可根据需要大量提供,并按使用付费。

下面是美国国家标准和技术研究所(NIST)对云计算的一个较为正式的定义:云计算是一种普适的、方便的、按需提供网络访问的可

配置的计算资源(如网络、服务器、存储、应用程序和服务)

的共享池模型,它能够以最少的管理工作量或与服务提供者

交互的方式快速进行分配和发布。

云计算通常被划分成以下几种类型。● 公有云——由某一机构、公司管理并对公众开放使用的云计

算。● 私有云——在单个的机构中通过虚拟化共享出来的IT基础设施。● 混合云——公有云和私有云的混合。

AWS提供的是公有云服务。云计算服务也有多种分类。● 基础设施即服务(IaaS)——提供计算、存储和网络功能等基

本资源,使用Amazon EC2、Google Compute Engine和

Microsoft Azure虚拟机这一类虚拟服务器。● 平台即服务(PaaS)——提供将定制的应用部署到云上的平

台,如AWS Elastic Beanstalk、Google App Engine和Heroku。● 软件即服务(SaaS)——结合了基础设施和软件并且运行在云

端,包括Amazon WorkSpaces、Google Apps for Work和

Microsoft Office 365这一类办公应用。

AWS产品阵容包含了IaaS、PaaS和SaaS。让我们更具体地了解一下AWS究竟可以做什么。1.2 AWS可以做什么

客户可以使用一个或多个服务组合在AWS上运行任何应用程序。本节中的示例将让读者了解AWS可以做什么。1.2.1 托管一家网店

John是一家中型电子商务企业的CIO。他的目标是为他们的客户提供一个快速可靠的在线商店。他决定由企业自行管理该网站。3年前他在数据中心租用了服务器。Web服务器处理来自客户的请求,数据库存储商品信息和订单。John正在评估他的公司如何利用AWS的优势将同样的设置运行在AWS上,如图1-1所示。图1-1 运行网店的对比:自建和运行在AWS上

John意识到有其他选择可以通过额外的服务来改进他在AWS上的设置。● 网店由动态内容(如产品及其价格)和静态内容(如公司标志)

等组成。通过区分动态内容和静态内容,John可以在内容分发

网络(CDN)上传递静态内容来减少他的Web服务器的负载并提

高性能。● John在AWS上使用了免维护的服务,包括数据库、对象存储和

DNS系统等。这使他免于管理系统的这些部分,降低了运营成本

并提高了服务质量。● 运行网店的应用程序可以安装在虚拟服务器上。John在旧的本

地服务器的上配置了多个较小的虚拟服务器,这不需要额外的费

用。如果这些虚拟服务器有一台发生故障,负载均衡器将向其他

虚拟服务器发送客户请求。这样的配置提高了网站的可靠性。

图1-2展示了John是如何利用AWS增强他们的网店的。

John启动了一个概念验证项目(POC),他发现这些Web应用程序可以迁移到AWS上,并且可以利用AWS上的服务来改进设计。图1-2 在AWS使用CDN使得Web商店获得更好的性能,用负载均衡器实现高可用性, 用托管的数据库来降低维护成本1.2.2 在专有网络内运行一个Java EE应用

Maureen是一家全球性企业的高级系统架构师。当公司的数据中心合同在几个月后即将到期的时候,她希望将部分业务应用程序迁移到AWS上,以降低成本并获得灵活性。她发现在AWS上运行企业应用程序是完全可行的。

为此,她在云中设定了一个虚拟网络,并通过虚拟专网(VPN)将其连接到网络。公司可以通过使用子网以及控制列表来管理网络流量,这样就可以满足访问控制和保护关键任务的数据。Maureen使用网络地址转换(NAT)和防火墙来控制互联网的流量。她将应用程序服务器安装在虚拟机(VM)上以运行Java EE应用程序。Maureen还考虑将数据存储在SQL数据库服务之中(如Oracle数据库企业版或Microsoft SQL Server EE版)中。图1-3解释了Maureen的架构。

Maureen已经成功地将本地数据中心与AWS上的私有网络连接起来。她的团队已经开始将第一个企业应用程序迁移到云端。图1-3 在企业网络和AWS的环境中运行Java EE应用1.2.3 满足法律和业务数据归档的需求

Greg负责管理一个小型律师事务所的IT基础设施。他的主要工作目标是以可靠、耐用的方式存储和归档所有数据。他运行了一个文件服务器,提供了在办公室内共享文件的功能。存储所有数据对他来说是一个挑战。● 他需要备份所有文件,以防止关键数据丢失。为此,Greg将数

据从文件服务器复制到另一个网络附加存储(network-attached

storage,NAS)上。为此他不得不再一次为文件服务器购买硬

件。文件服务器和备份服务器的位置距离很近,因此他无法满足

灾难恢复的要求,如从火灾或突发事件中恢复数据。● 为了满足法律和业务数据存档的需求,Greg需要能够长时间地

存储数据。将数据存储10年或更长时间是件很棘手的事情。

Greg使用了一个昂贵的归档解决方案。

为了节省资金并提高数据安全性,Greg决定使用AWS。他将数据传输到具有高可用特性的对象存储服务上。存储网关使得不需要购买和管理本地的网络附加存储和本地备份。一个虚拟的磁带机负责完成在所需的时间段内归档数据的任务。图1-4展示了Greg如何在AWS上实现这个使用场景,并将其与本地的解决方案进行比较。

Greg在AWS上存储和归档数据的新的解决方案很棒,因为能够明显地提高质量,并获得了扩展存储大小的可能性。图1-4 在专有环境和AWS下备份和归档数据1.2.4 实现容错的系统架构

Alexa是一名软件工程师,工作于一家创业企业。她知道墨菲定律适用于IT基础设施:任何可能出错的事情都会出错。Alexa正在努力构建一个容错系统,以防止运行中业务出现中断。她知道AWS上有两种类型的服务:容错服务和可以以容错方式运行的服务。Alexa构建了一个如图1-5所示的具有容错架构的系统。数据库服务提供复制和故障转移处理。Alexa使用了虚拟服务器充当Web服务器,这些虚拟服务器默认情况下不具有容错的特性。但是,Alexa使用了负载均衡器,并可以在不同的数据中心启动多台服务器以实现容错。

到目前为止,Alexa采用的方法已经在事故中保护了公司的系统。不过,她和她的团队总是在为各种系统失效做计划。

现在读者对AWS可以做什么应该有了一个广泛的了解。一般来说,客户可以在AWS上托管任何应用程序。下一节将介绍AWS提供的9个重要的好处。图1-5 在AWS上构建容错系统1.3 如何从使用AWS上获益

使用AWS最重要的优势是什么?你可能会说是节省成本。但省钱肯定不是唯一的优势。让我们看看你可以从使用AWS中获益的其他方法。1.3.1 创新和快速发展的平台

2014年,AWS在拉斯维加斯举办的年度会议re:Invent上宣布了500多项新的服务和功能。除此之外,几乎AWS每周都会有新功能和改进的发布。客户可以将这些新的服务和功能转化为针对自己的客户的创新解决方案,从而体现竞争优势。

re:Invent大会的与会者的数量从2013年的9 000人增加到2014年的13 500人。AWS的客户中有超过100万家企业和政府机构,在2014年第一季度的业绩沟通会上,该公司表示将继续聘请更多的人才谋求进一步的发展。在未来几年里,我们可以期待更多的新功能和新服务。1.3.2 解决常见问题的服务

如我们所了解的,AWS是一个服务平台。常见的问题,如负载均衡、队列、发送电子邮件以及存储文件等,都可以通过服务加以解决。而客户不需要“重新发明轮子”。客户的工作就是选择合适的服务来构建复杂的系统。然后,客户可以让AWS来管理这些服务,而自己则可以专注于所服务的客户。1.3.3 启用自动化

由于AWS提供了API,因此客户可以自动执行所有的操作:客户可以编写代码来创建网络,启动虚拟服务器集群或部署关系数据库。自动化提高了可靠性,并提高了效率。

系统拥有的依赖性越大,它就会变得更复杂。面对复杂的图形,人类可能很快就失去透视能力,而计算机可以应付任何大小的图形。客户应该集中精力于人类擅长的领域——描述系统的任务,而计算机则会了解如何解决所有这些依赖关系来创建系统。基于客户的蓝图在云平台上设置所需的环境可以通过基础设施即代码以自动化的方式来完成,关于这部分内容将在第4章介绍。1.3.4 灵活的容量(可扩展性)

灵活的容量的特性可以使客户免于做规划。客户可以从一台服务器扩展到数千台服务器。客户的存储容量可以从GB级别增长到PB级别。客户不再需要预测未来几个月和几年的容量需求。

如果你经营一家网店,则会有季节性流量的模式,如图1-6所示。想想白天与晚上、平日与周末或假期。如果你可以在流量增长时增加容量并在流量缩减时减少容量,那岂不是很好吗?这正是灵活容量的特性。你可以在几分钟之内启动新的服务器,然后在几小时后删除它们。图1-6 网店的季节性流量模式

云计算几乎没有容量的限制。客户不再需要考虑机架空间、交换机和电源供应,客户可以添加尽可能多的服务器。如果数据量增长,则始终可以添加新的存储容量。

灵活的容量也意味着客户可以关闭未使用的系统。在我们最近的一个项目中,测试环境只在工作日从上午7:00到下午8:00运行,这让我们的成本节省了60%。1.3.5 为失效而构建(可靠性)

大多数AWS服务都具有容错或高可用的特性。如果客户使用这些服务,可以免费获得可靠性。AWS支持客户以可靠的方式构建系统,它为客户提供了创建自己的容错系统所需的一切资源。1.3.6 缩短上市的时间

在AWS中,客户请求一个新的虚拟服务器。几分钟后,该虚拟服务器将被启动并可以使用。同样的情况也适用于任何其他AWS服务。客户可以按需使用它们。这使客户能够快速地将自己的基础架构调整以满足新的需求。

由于反馈循环更短,客户的开发过程将更快。客户可以消除各种限制,如可用的测试环境数量。如果客户需要一个更多资源的测试环境,可以创建并运行数小时。1.3.7 从规模经济中受益

在编写此书时,自2008年以来使用AWS的费用已经降至最初的1/42。● 在2014年12月,出站数据的传输费用降低了43%。● 在2014年11月,使用搜索服务的费用降低了50%。● 在2014年3月,使用虚拟服务器的费用降低了40%。

截至2014年12月,AWS运营了140万台服务器。所有与操作有关的过程都必须进行优化,以便在如此规模上运行。AWS规模越大,价格就会越低。1.3.8 全球化

客户可以将应用程序部署到尽可能接近自己的客户的地方。AWS在以下位置建有数据中心:● 美国(弗吉尼亚北部、加利福尼亚北部、俄勒冈);● 欧洲(德国、爱尔兰);● 亚洲(日本、新加坡);● 澳大利亚;● 南美(巴西)。

有了AWS,客户就可以在全球运营自己的业务。1.3.9 专业的合作伙伴

AWS符合以下合规性要求。● ISO 27001——全球性信息安全标准,由独立机构认证。● FedRAMP & DoD CSM——美国联邦政府和美国国防部云计算安

全标准。● PCI DSS Level 1——支付卡行业(PCI)的数据安全标准(DSS),用以保护持卡人的数据安全。● ISO 9001——全球范围内使用的标准化质量管理方法,并由独

立和认证机构认证。

如果你还不相信AWS是专业的合作伙伴,那么你应当知道AWS已经承担了Airbnb、Amazon、Intuit、NASA、Nasdaq、Netflix和SoundCloud等重要的任务。

在下一节我们将详细阐述成本效益。1.4 费用是多少

AWS的账单类似于电费账单。服务根据用量收费。客户需要支付运行虚拟服务器的时间、从对象存储库使用的存储空间(以GB为单位)或正在运行的负载均衡器的数量。服务按月开具发票。每项服务的定价是公开的,如果要计算计划中每月的成本,可以使用“AWS简单月度计算器”(AWS Simple Monthly Calculator)来估算。1.4.1 免费套餐

在注册后的前12个月内客户可以免费使用一些AWS服务。免费套餐的目的是让客户能够对AWS进行实验并获得一些经验。下面是免费套餐中包含的内容。● 每月运行Linux或者Windows小型虚拟服务器750 h(大约1个

月)。这意味着客户可以整个月运行一个虚拟服务器,也可以同

时运行750个虚拟服务器1 h。● 每月750 h(大约1个月)的负载均衡器。● 具有5 GB存储空间的对象存储。● 具有20 GB存储空间的小型数据库,包括备份。

如果超出了免费套餐的限制,就要开始为使用的资源支付费用,而不再另行通知。客户将在月底收到一张账单。在开始使用AWS之前,我们将向读者展示如何监控成本。如果免费套餐在一年后结束,读者将为所使用的所有资源付费。

客户还可以获得一些额外的好处,详情参见http://aws.amazon.com/free。本书尽可能多使用免费套餐的资源,并清楚地说明何时需要额外的不在免费套餐之内的资源。1.4.2 账单样例

如前所述,客户可能会被以下几种方式计费。● 按使用时间计费——如果客户使用服务器的时间是61 min,通常

会计算为2 h。● 按流量计费——流量以吉字节(GB)或者请求数量来衡量。● 按存储用量计费——可以按照配置的容量(例如,50 GB的卷,

不管使用了多少)或者实际用量(例如,使用了2.3 GB)。

还记得在1.2节提过的网店的例子吗?图1-7展示了这家网店使用AWS的示意图,并添加了有关各个部分的计费信息。图1-7 网店的例子

假设你的网店在1月开始启动,并且你决定开展营销活动以提高下个月的销售额。幸运的是,你可以在2月将网店的访问人数增加5倍。正如你所了解的,你必须根据使用情况支付AWS。表1-1展示了你的1月和2月的账单。访客人数从10万人增加到50万人,月收入从142.37美元增加到538.09美元,涨幅是3.7倍。因为你的网店必须处理更多流量,所以你必须为更多的服务(如CDN、Web服务器和数据库)付费。其他服务,如静态文件的存储,因为没有增加更多的用量,所以价格保持不变。表1-1 如果网店访客的数量增加,AWS的账单将如何变化服  务1月用量2月用量2月费用增加(美元)(美元)网站访客10万人50万人2 600万条请13 100 万条CDN求,25 GB流请求125 GB113.3190.64量流量使用50 GB的使用50 GB的静态文件1.500.00存储存储748 h+250 748 h+50 GB20.301.60负载均衡器GB流量流量1台服务器4台服务器=2 Web服务器204.96153.72=748 h992 h数据库(748 小型服务器大型服务器170.66128.10h)+20 GB存储+20 GB存储流量(出站到51 GB255 GB22.8618.46互联网流量)1 000万条请DNS200万条请求4.503.20求538.09395.72总成本

使用AWS,客户可以实现流量和成本之间的线性关系,而其他机会正等待客户使用这个定价模式。1.4.3 按使用付费的机遇

AWS按使用付费的定价模式创造了新的机会。客户不再需要对基础设施进行前期投资。客户可以根据需要启动服务器,并且只支付每小时使用时间的费用,客户可以随时停止使用这些服务器,而不必再为此付费。客户不需要对自己将使用多少存储进行预先承诺。

一台大型服务器的成本大致与两个较小的服务器之和相同。因此,客户可以将系统分成几个较小的部分,因为服务器成本是相同的。这种容错的能力不仅适用于大公司,而且还可用于较小预算的场景。1.5 同类对比

AWS不是唯一的云计算提供商。微软和谷歌也有云计算的产品。

OpenStack则有不同,因为它是开源的,由包括IBM、HP和Rackspace在内的200多家公司共同开发。这些公司中的每一家都使用OpenStack来运行自己的云计算产品,有时候这些公司会用到闭源的附件。你可以根据OpenStack来运行自己的云,但是将失去1.3节中所描述的大部分好处。

在云计算供应商之间进行比较并不是一件容易的事,因为缺少太多的开放标准。像虚拟网络和消息队列这样的功能实现的方式差异很大。如果客户知道自己需要什么具体功能,可以比较细节并做出决定;否则,AWS将是客户最好的选择,因为在找到能够解决自己的问题的方法中,AWS的机会是最高的。

以下是云计算服务提供商一些常见的功能:● 虚拟服务器(Linux和Windows);● 对象存储;● 负载均衡器;● 消息队列;● 图形用户界面;● 命令行接口。

更有趣的一个问题是,云计算服务提供商有何不同?表1-2比较了AWS、Azure、Google Cloud Platform和OpenStack。表1-2 AWS、Microsoft Azure、Google Cloud Platform和OpenStack的不同AWSAzureGoogle OpenStCloud ackPlatform服务的数大部分一些满足少数量位置分布有(依的数量赖(每个位OpenSt9133置有多个ack服数据中务提供心)者)公共的公共的标准公共的标准标准(ISO 27001、(ISO 27001、有(依(ISO HIPAA、HIPAA、赖27001、FedRAMP、FedRAMP、Open 合规性HIPAASOC),IT SOC),ISO Stack服、Grundschutz(德27018(云隐务提供FedRAM国)、G-私)、G-者)P、Cloud(英国)Cloud(英国)SOC)Android、浏览器Java、Android、iOS、(JavaScript)、浏览器Java、.NET、iOS、Java、.(JavaScNode.NET、Node.ript)、.—SDK语言js(JavaScript)js(JavaScript)NET、、PHP、、PHP、PHP、Python、RubyPython、Ruby、PythonGo高级,与高级,与GoogleMicrosoft生态链与开发过中级,与特定的—生态链程的融合生态无关接(如.NET开接(如发)Android)有(可块存储同时被有(可同时被多(连接的多个虚有个虚拟服务器使没有网络存拟服务用)储)器使用)有(依有(MySQL、有(Azure SQL 赖PostgreSQL、有关系数据Data Base、OpenStOracle Data (MySQLMicrosoft SQL ack服库Base、Microsoft )Server)务提供SQL Server)者)NoSQL 有(专有(专有)有(专有)没有数据库有)DNS有没有有没有虚拟网络有有没有有发布/订有(专有,JMS有(专阅消息服有(专有)没有库可用)有)务机器学习有有有没有工具部署工具有有有没有私有数据有有有没有中心集成

在我看来,AWS是目前可用的、成熟的云计算平台。1.6 探索AWS服务

用于计算、存储和联网的硬件是AWS云计算的基础。AWS在硬件上运行软件服务来提供云服务,如图1-8所示。Web界面、API充当AWS服务和应用程序之间的接口。图1-8 AWS云由可通过API访问的硬件和软件服务组成

客户可以通过图形用户界面、使用SDK以编程的方式手动发送请求至API,以实现对服务的管理。为此,客户可以使用诸如管理控制台、基于Web的用户界面或命令行工具等工具。虚拟服务器有其特殊性,例如,客户可以通过SSH连接到虚拟服务器,并获得管理员访问权限。

这意味着客户可以在虚拟服务器上安装所需的任何软件。其他服务,如NoSQL数据库服务则是通过API提供其功能,细节被隐藏到幕后。图1-9展示了管理员在虚拟服务器上安装定制的PHP Web应用程序,并管理所依赖的服务,如PHP Web应用程序使用的NoSQL数据库。图1-9 管理运行在虚拟服务器以及所依赖的服务上的定制应用

用户将HTTP请求发送到虚拟服务器。在此虚拟服务器有安装Web服务器与定制的PHP Web应用程序。Web应用程序需要与AWS服务进行通信,以便响应用户的HTTP请求。例如,Web应用程序需要从NoSQL数据库查询数据、存储静态文件和发送电子邮件。Web应用程序和AWS服务之间的通信由API处理,如图1-10所示。

一开始,客户可能会惊讶于AWS提供的服务的数量。下面对AWS服务的分类将有助于客户找到所需要的服务。● 计算服务提供了计算能力以及内存。客户可以启动虚拟服务器并

使用它们来运行应用程序。● 应用服务为常见的使用场景提供解决方案,如消息队列、主题以

及检索大量数据以集成到应用中。● 企业服务提供独立的解决方案,如邮件服务器和目录服务。● 部署和管理服务作用于迄今所提到的服务。这个服务可以帮助客

户授予或者撤销对云资源的访问、虚拟服务系统的监控以及部署

应用程序。● 存储服务被用来搜集、保存和归档数据。AWS提供了不同的存

储选项:对象存储或者用于虚拟服务器的网络附加存储方案。● 当需要管理结构化数据时,数据库存储比其他存储方案有一些优

势。AWS提供了关系数据库和NoSQL数据库服务。● 网络服务是AWS的基本组成部分。客户可以定义一个私有的网

络并使用高度集成的DNS服务。图1-10 定制的Web应用使用AWS服务来处理HTTP请求

要知道我们所列出的仅仅是最重要的服务的类别。其他服务当然也是可用的,同样可以支持客户运行自己的应用程序。

现在我们看一看AWS服务的细节,了解一下如何与这些服务进行交互。1.7 与AWS交互

当客户与AWS进行交互以配置或者使用AWS服务的时候,客户就会调用API。这里提到的API是AWS的入口,如图1-11所示。

接下来,我将给读者提供调用API的可用工具的全貌。读者可以比较这些工具的能力,它们可以帮助你自动完成每日的工作。图1-11 与AWS API交互的工具1.7.1 管理控制台

客户可以使用基于Web的管理控制台实现与AWS的交互。通过这个方便的图形用户界面,客户可以手动控制AWS。这个管理控制台支持每一种现代Web浏览器(Chrome、Firefox、Safari 5以上版本、IE 9以上版本),如图1-12所示。图1-12 管理控制台

如果你正在尝试AWS,那么这个管理控制台就是最好的起点。它能够帮你获得不同服务的全貌并快速取得成功。管理控制台也是为了开发、测试而设置云基础设施的比较好的方式。1.7.2 命令行接口

客户可以通过命令行启动虚拟服务器、设置存储并且发送邮件。使用这个命令行接口(CLI),可以控制AWS的一切,如图1-13所示。图1-13 命令行接口

CLI通常用于自动执行AWS上的任务。如果客户想通过持续集成服务器(如Jenkins)的帮助自动化基础设施的某些部分,则CLI是该任务的正确工具。CLI提供了访问API的便捷方式,并可以将对API的多个调用整合到一个脚本中。

客户甚至可以通过将多个CLI调用链接起来,以实现基础设施的自动化。CLI可用于Windows、Mac和Linux,还有一个适用于PowerShell的版本。1.7.3 SDK

有时客户需要从自己的应用程序中调用AWS。使用SDK,客户可以使用自己喜欢的编程语言将AWS集成到应用程序逻辑中。AWS为以下环境提供了SDK:● Android;● Node.js(JavaScript);● 浏览器(JavaScript);● PHP;● iOS;● Python;● Java;● Ruby;● .NET;● Go。

SDK通常用于将AWS服务集成到应用程序中。如果客户正在进行软件开发,并希望集成AWS服务(如NoSQL数据库或推送通知服务),那么SDK就是该任务的正确选择。某些服务(如队列和主题订阅)必须在应用程序中使用SDK。1.7.4 蓝图

蓝图是包含所有服务和依赖关系的对于系统的描述。蓝图并没有说明实现所描述的系统所必需的步骤或顺序。图1-14展示了如何将蓝图转移到正在运行的系统中。图1-14 使用蓝图实现基础设施自动化

如果你必须控制许多或复杂的环境,可以考虑使用蓝图。蓝图将帮你自动化云中基础设施的配置。例如,你可以使用蓝图来设置虚拟网络并在该网络中启动不同的服务器。

蓝图免除了客户的大部分工作负担,因为客户不再需要担心系统创建期间的依赖关系——蓝图将整个流程自动化。我们将在第4章中了解有关自动化基础设施的更多信息。

现在是开始创建自己的AWS账户并在所有这些理论之后探索AWS实践的时候了。1.8 创建一个AWS账户

在开始使用AWS之前,客户需要创建一个账户。AWS账户是客户拥有的所有资源的一个篮子。如果多个人需要访问该账户,客户可以将多个用户添加到一个账户下面。默认情况下,客户的账户将有一个root用户。要创建一个账户,客户需要提供以下内容:● 一个电话号码,以验证客户的身份;● 一张信用卡,以支付客户的账单。使用原有账户可以吗在使用本书中的示例时,读者可以使用现有的AWS账户。在这种情况下,使用可能不在免费套餐的范围之内,可能需要支付费用。此外,如果读者在2013年12月4日之前创建了现有的AWS账户,那么应该创建一个全新的AWS账户,否则在尝试运行本书的示例时可能会遇到遗留问题的麻烦。1.8.1 注册

注册的流程包括以下5个步骤。(1)提供登录凭据。(2)提供联系信息。(3)提供支付信息的细节。(4)验证身份。(5)选择支持计划。

将所使用的浏览器指向AWS官方网站,然后单击“创建免费账户”按钮。1.提供登录凭据

注册页面,为客户提供了两个选择,如图1-15所示。客户可以使用Amazon.com账户创建账户,也可以重新开始创建账户。如果创建新账户,请按照下面的步骤;否则,请跳到第5步。

填写电子邮件地址,点击“继续”,创建登录凭据。我们建议选择一个强大的密码来防止误用。

我们建议密码的长度为16字节,包括数字和符号。如果有人可以访问你的账户,这就意味着他们有可能破坏你的系统或者窃取你的数据。图1-15 创立一个AWS账号:注册页2.提供联系信息

下一步需要提供联系信息,如图1-16所示。填写完所需的全部内容,然后继续下一步。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载