1.2 IaaS层核心服务
云计算服务按照IaaS、PaaS和SaaS分层,PaaS层、SaaS层的服务都基于IaaS层的基础服务。IaaS层包括计算、存储和网络三大基础类服务,数据库类服务是基于三大基础类服务构建的PaaS层服务。
下面我们以AWS的服务体系为例进行介绍。图1.2给出了AWS典型服务分层。AWS基础的IaaS层核心服务如下。
·计算类服务:EC2(Elastic Compute Cloud,弹性计算云计算主机)服务。
·存储类服务:EBS(Elastic Block Store,弹性块存储)服务;S3(Simple Storage Service,简单对象存储服务);Glacier(冰川,AWS的归档存储)服务。
·网络类服务:VPC(Virtual Private Cloud,虚拟私有网络)服务;ELB(Elastic Load Balancing,弹性负载均衡)服务。
图1.2 AWS典型服务分层
1.2.1 计算类服务
EC2是AWS计算类核心的服务,也是整个AWS生态构建的基础。EC2是一项Web服务,可在云中提供安全、可调整大小的计算能力。EC2旨在使开发人员更容易进行用于Web的规模计算。用户通过在简单的Web服务界面进行很少的操作就能够很快获得EC2并配置容量。EC2提供了对计算资源的完全控制,并可以在AWS成熟的计算环境中运行。EC2将获取和启动新服务器实例(称为EC2实例)所需的时间减少到了数分钟,使得用户可以根据计算需求的变化快速地调整容量。EC2允许用户仅为实际使用的容量付费,提高了计算的经济性。
用户只需要进行如下操作即可使用EC2。
·选择一个预先配置的模板化AMI(Amazon Machine Image,亚马逊系统镜像),或者创建并选择一个包含本地应用程序、库、数据和相关配置设置的AMI,之后启动并运行AMI。
·在本地EC2实例上配置安全和网络访问权限。
·选择合适的EC2实例类型,然后使用Web服务API或提供的多种管理工具来启动、终止和监控AMI。
·确定是否要在多个位置运行、选择静态IP地址及将持久化块存储到EC2实例上。
·根据实际消耗的资源(如实例小时数或数据传输量)来付费。
EC2提供多种经过优化、适用于不同使用场景的实例类型。EC2实例类型由CPU、内存、存储和网络容量组成不同的组合,用户可以灵活地为自己的应用程序选择适当的资源组合。每种EC2实例类型都包括一种或多种实例大小,使用户能够扩展资源以满足目标工作负载的要求。EC2主要有如下实例类型。
·通用型。通用型实例提供计算、存储和网络三方面资源的平衡能力,可用于各种类型的工作负载。通用型实例非常适合以相同比例使用计算、存储和网络资源的应用程序,如Web服务器和代码存储库。
·计算优化型。计算优化型实例适用于对性能要求比较高的应用程序。计算优化型实例非常适合批处理工作负载、媒体转码、高性能Web服务器、高性能计算(HPC)、科学建模、专用游戏服务器和广告服务器引擎、机器学习推理和其他计算密集型应用程序。
·内存优化型。内存优化型实例旨在提高大型(需要大量内存的)数据集类工作负载的性能。
·加速计算型。加速计算型实例使用硬件加速器来执行浮点数计算、图形处理或数据模式匹配等功能,比在CPU上运行的软件更加高效。
·存储优化型。存储优化型实例用于需要对本地存储上的大型数据集进行高速连续读写访问的工作负载,每秒可以向应用程序交付数以万计的低延迟、随机I/O操作(IOPS)。
下面我们以典型的M5实例为例进行介绍。M5实例是当前新一代的通用型实例,提供了平衡的计算、内存和网络资源,是很多应用程序的理想之选。M5实例具有特点。
·最高配置为3.1GHz Intel Xeon® Platinum 8175的处理器,并配有功能丰富的Intel Advanced Vector Extension(AVX-512)指令集。
·拥有规模庞大的实例,最大实例为m5.24xlarge,提供最多96个vCPU和最大384GB内存。
·使用增强型网络,可提供最大为25Gbit/s的网络带宽。
·需要包含ENA和NVMe驱动程序HVM AMI的支持。
·由AWS Nitro系统(专用硬件和轻量级管理程序的组合)提供支持。
·通过物理连接到主机服务器的EBS或NVMe SSD提供的实例存储。
·可利用M5d实例,基于本地NVMe的SSD与主机服务器建立物理连接,提供与M5实例生命周期相一致的块存储。
M5实例和M5d实例提供了2~96个vCPU的多种选择,以及内存、本地或远程存储、网络带宽等各种规格的选择,具体如表1.1所示。
表1.1 AWS EC2 M5实例规格大小可选项
1.2.2 存储类服务
根据数据访问的性能和频次可以把数据分为热数据、温数据和冷数据,存储系统也可以相应地分为如下几种。
·热存储:典型服务如AWS的弹性块存储EBS。
·温存储:典型场景如AWS的对象存储S3。
·冷存储:典型场景如AWS的归档存储Glacier。
1.EBS
EBS提供了可与EC2实例一起使用的持久化块存储。EBS是网络连接的存储,独立于EC2实例而持续存在。在将EBS卷附加到EC2实例后,用户可以像使用物理硬盘驱动器一样使用EBS卷,通常通过所选择的文件系统对EBS卷进行格式化。
EBS还提供了创建卷时间点快照的功能,这些快照存储在S3中,可用作新EBS卷的起点,并可以保护数据,以实现长期持久性。可以使用同一卷时间点快照实例化任意数量的EBS卷;也可以在AWS不同区域之间复制这些快照,从而利用多个AWS区域进行地理扩展,这使得数据中心迁移和灾难恢复变得更加容易。
EBS适用于频繁更改且需要在EC2实例的生命周期之外持续存在的数据。EBS非常适合用作数据库、文件系统或需要直接访问原始块级存储的任何应用程序或实例(操作系统)的主存储。EBS提供了许多可让用户针对工作负载优化存储性能和成本的选项,这些选项分为两大类:用于事务性工作负载由固态驱动器(SSD)支持的存储,如数据库和启动卷(性能主要取决于IOPS);用于吞吐量密集型工作负载由硬盘驱动器(HDD)支持的存储,如大数据、数据仓库和日志处理(性能主要取决于MB/s)。
表1.2列出了EBS卷类型和案例。EBS提供了SSD和HDD两种介质的四种卷类型,默认卷类型为通用型SSD(gp2)。
表1.2 EBS卷类型和案例
2.S3
S3以非常低的成本为开发人员和IT团队提供了安全、持久、高度可扩展的对象存储。用户利用S3可以随时通过简单的Web服务界面从Web上的任何位置存储和检索任意数量的数据,也可以写入、读取和删除包含0~5TB数据的对象。S3具有高度可扩展性,允许多个独立的客户端或应用程序线程对数据进行并发读写访问。
S3提供了如下针对不同用例设计的存储类。
·Amazon S3标准版,用于通用存储频繁访问的数据。
·Amazon S3标准不频繁访问版(Standard-IA),用于长期访问频率较低的数据。
·Amazon Glacier,用于低成本存档数据。
S3有如下4种常见的使用模式。
(1)S3用于存储和分发静态Web内容和媒体。由于S3中的每个对象都有唯一的HTTP URL,因此可以直接由S3交付此内容。S3也可以用作CDN的原始存储。S3具有良好的弹性,特别适用于托管需要带宽,以应对Web内容的极端需求高峰问题。此外,因为不需要存储资源调配,所以S3可以很好地用于快速增长的网站,这些网站托管数据密集型用户生成的内容,如视频和照片共享站点。
(2)S3用于托管整个静态网站。S3提供了一种低成本、高可用和高度可扩展的解决方案,包括以JavaScript等格式存储的静态HTML文件、图像、视频和客户端脚本。
(3)S3用作计算和大规模分析的数据存储,如金融交易分析、点击流分析和媒体转码。基于S3的水平可扩展性,用户可以同时从多个计算节点访问数据,而不受单个链接的限制。
(4)S3用作高可用、高度可扩展且安全的解决方案,用于备份和存档关键数据。用户可以使用生命周期管理规则对S3中存储的数据进行管理,自动地将冷数据迁移至Amazon Glacier。用户还可以使用S3跨区域复制功能,自动f在不同区域的S3存储桶复制对象,从而提供灾难恢复解决方案,实现业务连续性。
相对于Internet延迟,同一数据中心服务器间的延迟可以忽略不计。同一区域的EC2访问S3是同一数据中心内的快速访问,不需要通过外部Internet进行。此外,S3的构建旨在扩展存储、请求和用户数量,以支持大量的Web规模应用程序。如果同时使用多个线程、应用程序或客户端访问S3,则S3扩展的总聚合吞吐量通常会远远超过任何单个服务器可以生成或使用的速率。
3.Glacier
Glacier是一项成本极低的存储服务,可为数据归档和在线备份提供高度安全、持久和灵活的存储。用户借助Glacier能够以低廉的价格可靠地存储数据。Glacier使用户可以将操作和扩展存储的管理负担转移到AWS,而不必考虑容量规划、硬件配置、数据复制、硬件故障检测和修复耗时的硬件迁移。
用户可以将数据作为档案存储在Glacier中。可以用单个文件作为一个档案上载,也可以组合多个文件作为一个档案上载。用户可以使用S3数据生命周期策略在Glacier和S3之间无缝移动数据。
Glacier支持许多场景,包括归档异地企业信息、媒体资产、研究和科学数据,以及执行数字保存和磁带替换。
Glacier旨在存储不经常访问且寿命长的数据。Glacier检索作业通常在3~5h完成。
1.2.3 网络类服务
数据中心的网络大体上分为如下三类。
·基础的物理承载网络,跟用户没有直接关系,因此没有必要暴露给用户。
·用于租户隔离的虚拟网络,如AWS的虚拟私有网络VPC。
·用于用户业务的应用级网络,如AWS的弹性负载均衡ELB。
1.VPC
用户借助VPC可以在AWS云中预置一个逻辑隔离的私有网,并且可以在该私有网中启动AWS资源。用户可以完全掌控自定义的虚拟网络环境,包括定义它的IP地址范围,为其创建子网、配置路由表和网络网关。用户VPC可以使用IPv4和IPv6,因而能够轻松安全地访问资源和应用程序。
用户可以轻松自定义VPC的网络配置。例如,用户可以为Web服务器创建一个能访问Internet的公有子网;也可以将后端系统(如数据库或应用程序服务器)安置在无Internet访问的私有子网中;还可以使用安全组和网络访问控制列表等多种安全层,对各个子网中EC2实例的访问进行控制。
VPC的功能总结如下。
·能够在AWS的可扩展基础设施中创建VPC,并可以选择任何私有IP地址范围。
·可以通过添加辅助IP地址范围来扩展VPC。
·可以将VPC的私有IP地址范围分割成一个或多个公有或私有子网,以便在VPC中运行应用程序和服务。
·可以使用网络控制列表控制进出各个子网的入站和出站访问。
·可以在S3中存储数据并设置权限,以便仅可从VPC内部访问这些数据。
·可以为VPC中的实例分配多个IP地址并为其连接多个弹性网络接口。
·可以将一个或多个弹性IP地址连接到VPC中的某个实例,以便直接从Internet访问该实例。
·可以将VPC与其他VPC相连,从而实现跨VPC访问其他VPC中的资源。
·可以通过VPC终端节点建立与AWS服务的私有连接,无须使用Internet网关、NAT或防火墙代理。
·可以为私有服务或由AWS PrivateLink提供支持的SaaS解决方案建立私有连接。
·可以使用AWS站点到站点VPN桥接VPC和现场IT基础设施。
·可以在EC2-Classic平台中启用EC2实例,以使私有IP地址与VPC中的实例进行通信。
·可以将VPC安全组与EC2-Classic中的实例进行关联。
·可以使用VPC Flow Logs来记录有关进出VPC网络接口的网络流量信息。
·支持VPC中的IPv4和IPv6。
·可以使用VPC流量镜像为EC2实例捕获和镜像网络流量。
·可以使用网络和安全设备(包括第三方产品)来阻止或分析入口和出口的流量。
2.ELB
ELB可以在多个目标(如EC2实例、容器、IP地址和Lambda函数)之间自动分配传入的应用程序流量。ELB既可以在单个可用区内处理不断变化的应用程序流量负载,也可以跨多个可用区处理此类负载。
ELB提供三种负载均衡器,它们均能实现自动扩展,并且具有高可用性和安全性,能让用户的应用程序获得容错能力。
·ALB(Application Load Balancer,应用负载均衡器)。ALB最适合HTTP和HTTPS流量的负载均衡,面向包括微服务和容器在内的现代应用程序架构,提供高网络层级请求的路由功能。ALB运行于单独的请求级别(第7层),可根据请求的内容将流量路由至VPC内的不同目标。
·NLB(Network Load Balancer,网络负载均衡器)。若要对需要极高性能的传输控制协议(TCP)、用户数据报协议(UDP)和传输层安全性(TLS)协议流量进行负载均衡,最适合使用NLB。NLB运行于连接层(第4层),可将流量路由至VPC内的不同目标,每秒能够处理数百万个请求,同时能保持超低延迟。NLB还对突发和不稳定的流量模式进行了优化。
·CLB(Classic Load Balancer,经典负载均衡器)。CLB同时运行于请求级别和连接级别,可在多个EC2实例之间提供基本的负载均衡。CLB适用于在EC2-Classic网络内构建的应用程序。
ELB主要具有如下功能。
·高可用性。ELB可以在单个可用区或多个可用区内的多个目标(如EC2实例、容器和IP地址)之间自动分配流量。
·运行状况检查。ELB可以检测无法正常运行的目标并停止向它们发送流量,同时将负载分散到其他正常运行的目标上。
·安全性。ELB可以使用VPC创建和管理与负载均衡器关联的安全组,以提供更多网络和安全选项;还可以创建内部(非面向Internet的)负载均衡器。
·TLS终止。ELB提供集成化证书管理和SSL/TLS解密,使用户可以灵活地集中管理负载均衡器的SSL设置,并从用户自定义的应用程序上卸载CPU密集型模块。
·第4层或第7层负载均衡。用户可以对HTTP/HTTPS应用程序执行负载均衡,以实现特定于第7层的功能;或者对依赖于TCP和UDP协议的应用程序执行严格的第4层负载均衡。
·运行监控。ELB支持对Amazon CloudWatch指标的集成和请求跟踪,可以实时监控应用程序的性能。
可以根据应用程序按需选择合适的负载均衡器。如果需要灵活管理应用程序,则应使用ALB;如果应用程序需要实现极致性能和静态IP,则应使用NLB;如果现有应用程序构建于EC2-Classic网络内,则应使用CLB。
1.2.4 IaaS层服务总结
云计算IaaS层服务是对硬件产品的封装,上层其他云计算服务基于IaaS层服务实现自身的功能。IaaS层服务涉及的底层软硬件技术如表1.3所示。
表1.3 IaaS层服务涉及的底层软硬件技术
续表