Karinoya 学习室

资格考试 · Cloud / AI / Python 合格实验室

AWS的主要服务

可以用简体中文阅读题目和解说。讲义(解说文章)仅有日文版。

查看日文版(含讲义) →

第1题 | EC2和S3

关于 Amazon EC2 与 Amazon S3 的角色组合,恰当的是哪一项?

  1. EC2 提供虚拟服务器,S3 存储对象
  2. EC2 执行函数代码,S3 共享文件
  3. EC2 存储对象,S3 提供虚拟服务器
  4. EC2 共享文件,S3 执行函数代码
正确答案A. EC2 提供虚拟服务器,S3 存储对象

EC2 即 Amazon Elastic Compute Cloud,提供可调整规模的计算能力,也就是虚拟服务器。S3 即 Amazon Simple Storage Service,将任意数量的数据作为对象进行存储。把这两者的角色互换的描述自古以来就很常见,需要能够从名称的拼写联想到各自的角色。执行函数代码的是 Lambda,共享文件的是 EFS。

第2题 | Lambda的计费

关于 AWS Lambda 的计费方式,恰当的是哪一项?

  1. 只按所消耗的计算时间进行计费
  2. 按创建的函数数量,每月收取固定费用
  3. 即使代码未执行,也会根据预留的容量进行计费
  4. 只按上传的代码容量进行计费
正确答案A. 只按所消耗的计算时间进行计费

Lambda 无需预置或管理服务器即可运行代码,只按所消耗的计算时间计费。代码未执行期间不会产生费用,这是它与只要在运行就会产生费用的 EC2 之间的重大区别。函数的数量或上传代码本身的容量并不是计费的单位。

第3题 | 无服务器

被称为无服务器(Serverless)的服务共有的特征是哪一项?

  1. 在执行之前由用户决定操作系统的种类和补丁应用方针
  2. 执行处理的物理服务器根本不存在
  3. 处理只在用户准备的专用物理服务器上运行
  4. 用户无需进行服务器的预置或管理
正确答案D. 用户无需进行服务器的预置或管理

无服务器并不意味着不存在物理服务器,而是指用户无需进行服务器的采购、配置和扩展。Lambda 被描述为「无需预置或管理服务器即可运行代码」,Fargate 被描述为「无需预置、配置和扩展服务器或集群」。物理服务器位于 AWS 一侧,由用户决定操作系统种类和补丁应用方针则是 EC2 这类形态的做法。

第4题 | Fargate

关于 AWS Fargate 的说明,恰当的是哪一项?

  1. 面向容器、无需服务器管理的按量计费执行引擎
  2. 在AWS上运营 Kubernetes 集群的托管服务
  3. 由用户选择虚拟服务器的实例类型和台数来使用的机制
  4. 将分布式处理的步骤定义为工作流并执行的机制
正确答案A. 面向容器、无需服务器管理的按量计费执行引擎

Fargate 是面向容器的无服务器按量计费计算引擎,无需预置、配置和扩展服务器或集群,可作为 ECS 或 EKS 的启动类型使用。Kubernetes 的托管运营是 EKS,由自己选择实例类型和台数的是 EC2 启动类型,将步骤定义为工作流的是 Step Functions。

第5题 | ECS的容量

关于 Amazon ECS 运行任务所依托基础设施的选择方式,恰当的描述是哪一项?

  1. 在 EC2 中由 AWS 管理基础设施,在 Fargate 中由用户管理实例
  2. 无论选择 Fargate 还是 EC2,都由 AWS 管理实例
  3. 在 Fargate 中由 AWS 管理基础设施,在 EC2 中由用户管理实例
  4. 无论选择 Fargate 还是 EC2,都由用户管理实例
正确答案C. 在 Fargate 中由 AWS 管理基础设施,在 EC2 中由用户管理实例

ECS 的容量选项基本上有两种:无服务器、由 AWS 管理基础设施的 Fargate,以及由用户选择并管理实例类型和台数的 EC2。此外还有 ECS Managed Instances,以及面向本地环境的 ECS Anywhere。无论选择哪一种,负责容器的部署和扩展的都是 ECS,不同的只是由谁来照看底层基础设施。

第6题 | EKS

采用 Amazon EKS 的理由中,最恰当的是哪一项?

  1. 希望省去自行搭建和运营 Kubernetes 的工夫
  2. 希望将关系型数据库的定期备份工作交给对方处理
  3. 希望将收到的流量自动分流到多个目标
  4. 希望从靠近用户的位置分发静态Web内容
正确答案A. 希望省去自行搭建和运营 Kubernetes 的工夫

EKS 即 Amazon Elastic Kubernetes Service,是一项托管服务,无需自行安装和运营 Kubernetes 集群,就能在AWS上运行 Kubernetes,并通过了 Kubernetes 一致性认证。数据库运维自动化由 RDS 负责,从靠近用户的位置分发内容由 CloudFront 负责,流量分流由 Elastic Load Balancing 负责。

第7题 | 执行方式的选择

每天只会收到几次文件,希望在文件到达时才进行转换处理。为控制费用,恰当的架构是哪一项?

  1. 让 EC2 实例始终保持运行,按固定间隔执行处理
  2. 让 EC2 实例始终保持运行,手动启动处理
  3. 让 EKS 集群始终保持运行,按固定间隔执行处理
  4. 用 Lambda 编写处理逻辑,以文件到达为触发条件执行
正确答案D. 用 Lambda 编写处理逻辑,以文件到达为触发条件执行

Lambda 无需管理服务器即可运行代码,只按所消耗的计算时间计费,未执行期间不会产生费用。因此对于调用较为稀疏的处理,等待期间不产生费用的 Lambda 更有优势。让 EC2 或 EKS 集群始终保持运行的架构,在处理未运行的大部分时间里也会持续产生费用。

第8题 | EC2的控制

关于 Amazon EC2 特征的描述,恰当的是哪一项?

  1. 只对代码的执行时间计费,用户无需接触操作系统
  2. 可以完全控制计算资源,按使用量付费
  3. 以对象为单位存储数据,通过HTTP API进行读写
  4. 将工作流各阶段定义为状态,并按顺序执行
正确答案B. 可以完全控制计算资源,按使用量付费

EC2 是一项在云端提供安全且可调整规模的计算能力的服务,官方说明其按使用量付费,并可以完全控制计算资源。只对执行时间计费、无需接触操作系统的是 Lambda,以对象为单位存储的是 S3,将工作流定义为状态的是 Step Functions 的性质。控制范围越广,操作系统的管理也就相应留给用户,这一点也需要一并记住。

第9题 | ECS

关于 Amazon ECS 所承担的角色,恰当的是哪一项?

  1. 根据事件的发生,执行以函数形式编写的代码
  2. 在AWS上提供符合 Kubernetes API 的集群
  3. 对容器化应用程序进行部署、管理及规模调整
  4. 从虚拟服务器镜像启动任意数量的实例
正确答案C. 对容器化应用程序进行部署、管理及规模调整

ECS 即 Amazon Elastic Container Service,是一项全托管的容器编排服务,可以简化容器化应用程序的部署、管理和扩展。提供符合 Kubernetes 的集群是 EKS,启动虚拟服务器是 EC2,根据事件执行代码是 Lambda。ECS 与 EKS 都用于编排容器,区别在于是否使用 Kubernetes。

第10题 | ECS和EKS

关于 Amazon ECS 与 Amazon EKS 的区别,恰当的描述是哪一项?

  1. ECS 运行 Kubernetes,EKS 以AWS独有的方式编排容器
  2. EKS 运行 Kubernetes,ECS 以AWS独有的方式编排容器
  3. EKS 处理容器,ECS 只处理虚拟服务器镜像
  4. ECS 处理容器,EKS 只处理虚拟服务器镜像
正确答案B. EKS 运行 Kubernetes,ECS 以AWS独有的方式编排容器

EKS 是一项托管服务,无需自行安装和运营 Kubernetes 集群,就能在AWS上运行 Kubernetes,并通过了 Kubernetes 一致性认证。而 ECS 是AWS的全托管容器编排服务,并不以 Kubernetes 为前提。两者都是处理容器的服务,并非只处理虚拟服务器镜像。作为启动目标,两者都可以选择 Fargate。

第11题 | EBS和EFS

关于 Amazon EBS 与 Amazon EFS 性质的组合,恰当的是哪一项?

  1. EBS 以块形式连接到1台EC2,EFS 供多个EC2共享
  2. EBS 与 EFS 都以只连接到1台EC2实例为前提
  3. EBS 与 EFS 都以供多台EC2实例并行共享为前提
  4. EBS 以文件形式供多个EC2共享,EFS 以块形式连接
正确答案A. EBS 以块形式连接到1台EC2,EFS 供多个EC2共享

EBS 是供 EC2 实例使用的持久性块存储卷,在一个可用区内自动进行复制,原则上挂载到一个实例上使用。EFS 是面向 Linux 工作负载的文件系统,容量会自动伸缩,支持数千台 EC2 实例的并行共享访问。可以共享的是 EFS 一方,并不存在两者都面向共享、或都只能单独连接的情况。

第12题 | S3的数据形态

关于 Amazon S3 处理数据的方式,恰当的是哪一项?

  1. 以面向 Linux 的共享文件系统形式提供
  2. 以内存缓存形式提供高速读写
  3. 连接到 EC2 实例使用的块存储
  4. 可以存储任意数量数据的对象存储
正确答案D. 可以存储任意数量数据的对象存储

S3 即 Amazon Simple Storage Service,是一种可以存储、保护任意数量数据,在可扩展性和可用性方面表现优异的对象存储。块存储是 EBS,面向 Linux 的共享文件系统是 EFS,内存缓存是 ElastiCache。对象、块、文件这三种数据形态的区别,是选择AWS存储服务时的出发点。

第13题 | 共享方式的选择

希望让数百台EC2实例同时挂载同一目录进行读写。恰当的是哪一项?

  1. 让各实例分别引用 Amazon ElastiCache 的节点
  2. 从各实例挂载 Amazon EFS 文件系统
  3. 为各实例分别连接一块 Amazon EBS 卷
  4. 存放到 S3 Glacier Deep Archive,供各实例读写
正确答案B. 从各实例挂载 Amazon EFS 文件系统

EFS 是一种文件存储,容量会随文件的增减自动伸缩,并支持数千台 EC2 实例的并行共享访问,适合让多台实例同时挂载同一目录的用途。EBS 是可用区内的块存储,原则上只连接到一个实例,因此每个实例的存储区域是各自独立的。Glacier Deep Archive 是取出耗时较长的归档存储类别,ElastiCache 并非文件系统,而是内存缓存。

第14题 | EBS的可用区

关于 Amazon EBS 卷自动复制的范围,恰当的是哪一项?

  1. 在所签约的所有账户之间进行复制
  2. 在一个可用区内进行复制
  3. 跨越多个区域进行复制
  4. 复制到全球各地的边缘节点
正确答案B. 在一个可用区内进行复制

EBS 是面向 EC2 实例的持久性块存储,在一个可用区内自动复制,提供一致的低延迟性能。由于这种单一可用区的性质,如果需要跨可用区的可用性,就需要其他机制。跨区域复制以及通过边缘节点分发都不属于 EBS 的作用。

第15题 | Glacier

关于 S3 Glacier 存储类别的描述,恰当的是哪一项?

  1. 只能存储数据库的备份文件
  2. 存储的数据可以作为块存储直接连接到EC2
  3. 既有支持即时取出的类别,也有需要花费时间取出的类别
  4. 属于归档用类别,各类别的取出所需时间都相同
正确答案C. 既有支持即时取出的类别,也有需要花费时间取出的类别

S3 Glacier 是一组面向归档的存储类别,包括面向需要即时取出的数据的 S3 Glacier Instant Retrieval、面向极少访问的长期数据的 S3 Glacier Flexible Retrieval,以及以最低成本、耗时数小时取出的 S3 Glacier Deep Archive。其设计是根据取出速度与费用的权衡来选择类别,取出时间并非一律相同。可存储的数据种类没有限制,也不能作为块存储进行连接使用。

第16题 | 三种分类

按处理数据的单位对 S3、EBS、EFS 进行分类,恰当的组合是哪一项?

  1. S3 为文件,EBS 为对象,EFS 为块
  2. S3 为块,EBS 为对象,EFS 为文件
  3. S3 为块,EBS 为文件,EFS 为对象
  4. S3 为对象,EBS 为块,EFS 为文件
正确答案D. S3 为对象,EBS 为块,EFS 为文件

S3 是对象存储,EBS 是连接到EC2的块存储,EFS 是面向 Linux 工作负载的文件存储。可以整理为:对象是通过API整体存取的形式,块是从操作系统看来像磁盘一样的形式,文件是可从多台主机挂载共享的形式,这样按需求选择时就不容易迷惑。

第17题 | 操作系统磁盘

在1台EC2实例上运行的数据库,用作数据存储磁盘的应该是哪一项?

  1. 使用 S3 Glacier Flexible Retrieval 的归档
  2. 将 Amazon CloudFront 的缓存用作磁盘
  3. 将 Amazon S3 的存储桶作为磁盘连接
  4. 将 Amazon EBS 卷连接到实例
正确答案D. 将 Amazon EBS 卷连接到实例

EBS 是供 EC2 实例使用的持久性块存储卷,提供一致的低延迟性能,适合用作操作系统或数据库的磁盘。S3 是对象存储,并不具备将存储桶作为块设备连接的机制。Glacier 是取出耗时较长的归档类别,CloudFront 是用于加速分发的CDN。

第18题 | S3的用途

静态Web内容或备份的存放选择 S3 的理由是哪一项?

  1. 因为可连接的实例仅限1台,不会发生改写冲突
  2. 因为数据存放在内存中,无需经过磁盘即可读写
  3. 因为可以像磁盘一样被操作系统识别,可直接连接到业务系统
  4. 因为可以存储任意数量的数据,且在扩展性、可用性和安全性方面表现优异
正确答案D. 因为可以存储任意数量的数据,且在扩展性、可用性和安全性方面表现优异

S3 是一种可以存储和保护任意数量数据、在可扩展性、可用性、安全性和性能方面表现优异的对象存储,官方列举的用途包括Web、移动、备份、归档、物联网和大数据分析等。像磁盘一样被操作系统识别的是 EBS,以连接到1个实例为原则的也是 EBS,将数据放在内存中的则是 ElastiCache 的性质。

第19题 | EFS的伸缩

关于 Amazon EFS 容量的描述,恰当的是哪一项?

  1. 可存储的容量由实例的内存量决定
  2. 容量会随文件的增减自动伸缩
  3. 增加容量时,需要先卸载后重新创建
  4. 创建时确定的容量是固定的,之后无法更改
正确答案B. 容量会随文件的增减自动伸缩

EFS 是一种简单、可扩展且具备弹性的文件系统,添加或删除文件时容量会自动伸缩,无需事先设计容量。先确定容量并将其固定,或为了扩容而重新创建,都是块存储的思路,连接的实例的内存量也不会决定容量。这种伸缩性正是它便于用作共享工作区域的原因。

第20题 | 保存方式的选择

希望以「极少查阅、可接受花费数小时取出」为前提,用最低成本长期保存审计日志。恰当的是哪一项?

  1. 保存到 S3 Glacier Deep Archive 类别
  2. 创建 Amazon EBS 卷,将日志写入其中保存
  3. 保留在 Amazon ElastiCache 的节点上保存
  4. 保留在 Amazon EFS 文件系统中保存
正确答案A. 保存到 S3 Glacier Deep Archive 类别

S3 Glacier Deep Archive 是以最低成本保存极少访问的数据、取出需耗时数小时的归档类存储类别,符合这一条件。EBS 和 EFS 的设计都以保持取出速度为前提,用作长期休眠数据的存放地往往成本偏高。ElastiCache 是内存缓存,本来就不是用于长期保存的机制。先确定能接受多长的取出等待时间,是选择存储类别的思路。

第21题 | RDS

作为 Amazon RDS 自动化的管理工作,恰当的是哪一项?

  1. 硬件的准备、补丁应用、备份
  2. 表和列的设计,以及索引应建在何处的决定
  3. 已保存数据内容是否正确的校验
  4. 业务应用程序的画面跳转与输入校验
正确答案A. 硬件的准备、补丁应用、备份

RDS 是一项让在云端搭建、运营和扩展关系型数据库变得容易的托管服务,能自动完成硬件的资源准备、数据库的搭建、补丁应用、备份等管理工作。而表和列的设计、索引的判断、应用程序的构建、数据内容的合理性,这些仍然留给用户负责。所谓托管,是把运维的麻烦交给对方,而不是连设计也一并交出去。

第22题 | Aurora和RDS

关于 Amazon Aurora 与标准 Amazon RDS 关系的描述,恰当的是哪一项?

  1. Aurora 是 RDS 的一部分,管理的不是单个实例而是整个集群
  2. Aurora 是与 RDS 不同的独立服务,只能通过专用的控制台和API操作
  3. Aurora 是 RDS 的一部分,但补丁应用和备份需要用户自行完成
  4. Aurora 是 RDS 的一部分,能处理的数据仅限于键值型
正确答案A. Aurora 是 RDS 的一部分,管理的不是单个实例而是整个集群

Aurora 是托管数据库服务 Amazon RDS 的一部分,通过相同的管理控制台、CLI、API操作来完成资源准备、补丁应用、备份、恢复和故障检测。区别在于管理的单位:标准 RDS 管理的是单个数据库实例,而 Aurora 管理的是由复制同步的数据库服务器组成的整个集群。Aurora 是与 MySQL、PostgreSQL 兼容的关系型数据库,并非键值型。

第23题 | DynamoDB

关于 Amazon DynamoDB 的说明,恰当的是哪一项?

  1. 将数据放在内存中,不经过磁盘从而加快读写
  2. 支持键值型和文档型的 NoSQL 数据库
  3. 作为PB级数据仓库响应分析查询
  4. 与 MySQL 和 PostgreSQL 兼容的关系型数据库
正确答案B. 支持键值型和文档型的 NoSQL 数据库

DynamoDB 是一种支持键值型和文档型的 NoSQL 数据库,是一项全托管、支持多区域的数据库服务,能在任意规模下提供个位数毫秒级的性能。数据仓库是 Redshift,与 MySQL、PostgreSQL 兼容的关系型数据库是 Aurora,内存中的读写由 ElastiCache 负责。

第24题 | Redshift

希望汇总多年的历史数据并进行统计,再通过BI工具进行分析。恰当的基础设施是哪一项?

  1. 放入 Amazon SQS 的队列中依次取出进行统计
  2. 保留在 Amazon EFS 的文件系统中进行统计
  3. 放入 Amazon Redshift 的数据仓库中进行统计
  4. 保留在 Amazon ElastiCache 的集群中进行统计
正确答案C. 放入 Amazon Redshift 的数据仓库中进行统计

Redshift 是云端的全托管PB级数据仓库服务,无论数据集大小如何,都能从现有的基于SQL的工具或BI应用程序中获得快速的查询性能。ElastiCache 是内存缓存,EFS 是共享文件系统,SQS 是消息队列,都不是承担海量数据统计和分析的基础设施。

第25题 | 缓存

引入 Amazon ElastiCache 所能获得的效果,恰当的是哪一项?

  1. 能够让多台EC2实例共享同一个目录
  2. 能够统一加快包含表连接和汇总在内的分析用查询
  3. 能够大幅降低长期保存备份的费用
  4. 能够通过从内存获取而不经过磁盘来加快响应
正确答案D. 能够通过从内存获取而不经过磁盘来加快响应

ElastiCache 是一项能够在云端轻松部署、运营和扩展内存缓存的服务,通过从高速的内存缓存中获取信息、而不依赖基于磁盘的数据库,从而改善Web应用程序的性能。加快分析用查询的是 Redshift,降低长期保存费用的是 S3 Glacier 的存储类别,共享目录的是 EFS 负责的内容。

第26题 | Aurora的特点

关于 Amazon Aurora 的特点,恰当的是哪一项?

  1. 由用户预先确定容量,不足时每次都手动扩容
  2. 以键值对的形式保存数据,无需使用SQL即可读写
  3. 拥有分布式共享存储,容量会根据需要自动扩展
  4. 取出需要数小时,但能将保存费用压到最低
正确答案C. 拥有分布式共享存储,容量会根据需要自动扩展

Aurora 是一款与 MySQL、PostgreSQL 兼容的全托管关系型数据库引擎,拥有高性能的分布式共享存储子系统,存储会根据需要自动扩展,无需预先确定容量再手动扩容。以键值对形式保存的是 DynamoDB,以耗时取出换取最低保存费用的是 S3 Glacier 面向归档的存储类别。

第27题 | 分析与交易

关于 Amazon Redshift 与 Amazon RDS 的使用区分,恰当的是哪一项?

  1. 两者都是数据仓库,区别只在于能处理的数据量
  2. 用于分析的汇总适合 Redshift,日常交易的记录适合 RDS
  3. 两者都是 NoSQL,区别只在于可用于查询的语言
  4. 日常交易的记录适合 Redshift,用于分析的汇总适合 RDS
正确答案B. 用于分析的汇总适合 Redshift,日常交易的记录适合 RDS

Redshift 是全托管的PB级数据仓库服务,适合从基于SQL的工具或BI应用程序中对海量数据进行汇总和分析。RDS 是让关系型数据库的搭建、运营和扩展变得容易的服务,适合业务系统读写日常交易数据的用途。两者都用SQL查询,看起来相似,但都不是 NoSQL,区别也不仅仅在于数据量。

第28题 | 数据库的选择

希望以个位数毫秒的响应速度,按键逐条进行读写。恰当的基础设施是哪一项?

  1. Amazon RDS 的关系型数据库
  2. Amazon Redshift 的数据仓库
  3. Amazon EFS 的共享文件系统
  4. Amazon DynamoDB 的NoSQL数据库
正确答案D. Amazon DynamoDB 的NoSQL数据库

官方说明 DynamoDB 是支持键值型和文档型的 NoSQL 数据库,能在任意规模下提供个位数毫秒级的性能。Redshift 适合海量数据的汇总与分析,是数据仓库;RDS 负责关系模型下的读写;EFS 是负责文件共享的存储,都不是以此条件为首要目标的基础设施。

第29题 | RDS的定位

关于 Amazon RDS 的说明,恰当的是哪一项?

  1. 汇入海量数据进行统计的数据仓库
  2. 以键值对形式保存,无需使用SQL即可读写的数据库
  3. 放置内存缓存以加快读取速度的服务
  4. 让关系型数据库的搭建与运营变得容易的服务
正确答案D. 让关系型数据库的搭建与运营变得容易的服务

RDS 即 Amazon Relational Database Service,是一项让在云端搭建、运营和扩展关系型数据库变得容易的托管服务。以键值对形式保存的是 DynamoDB,内存缓存是 ElastiCache,海量数据的汇总由数据仓库 Redshift 负责。另外,Aurora 是作为 RDS 的一部分提供的引擎。

第30题 | Aurora的管理

关于 Aurora 集群日常运维的描述,恰当的是哪一项?

  1. 备份和恢复的流程需要用户自行搭建
  2. 需要另外搭建 Aurora 专用的管理实例,再从那里进行操作
  3. 只能按单个实例操作,无法按集群操作
  4. 可以从与 RDS 相同的控制台和API进行补丁应用和备份
正确答案D. 可以从与 RDS 相同的控制台和API进行补丁应用和备份

Aurora 作为 RDS 的一部分提供,可以通过相同的管理控制台、CLI、API操作来完成资源准备、补丁应用、备份、恢复和故障检测。不需要另外搭建管理用实例,这些流程也无需用户自行搭建。与标准 RDS 管理单个数据库实例不同,Aurora 以整个集群作为管理单位,这是两者的区别所在。

第31题 | SQS和SNS

关于 Amazon SQS 与 Amazon SNS 性质的组合,恰当的是哪一项?

  1. SQS 负责向主题分发,SNS 负责向队列积累
  2. SQS 和 SNS 都是由一个目的地取出所保存消息的机制
  3. SQS 负责向队列积累,SNS 负责向主题分发
  4. SQS 和 SNS 都是将一条消息同时送达多个目的地的机制
正确答案C. SQS 负责向队列积累,SNS 负责向主题分发

SQS 是将消息保存在队列中,通常由一个消费者轮询取出的点对点服务。SNS 是发布者向主题发送消息,由多个订阅者同时以推送方式接收的发布订阅服务。把两者互换的描述是典型的混淆,也并非两者的分发方式相同。可以按方向记忆:队列是接收方前来取用的存放处,主题是发送方主动推送的分发角色。

第32题 | FIFO队列

关于 Amazon SQS 的FIFO队列的性质,恰当的是哪一项?

  1. 保证发送顺序,消息只被处理一次
  2. 不保证发送顺序,但不会发生重复投递
  3. 保证发送顺序,但同一条消息可能会送达多次
  4. 发送顺序和处理次数均不在保证范围之内
正确答案A. 保证发送顺序,消息只被处理一次

SQS 有标准队列和FIFO队列两种,标准队列是至少一次(at-least-once)投递,因此同一条消息可能会送达多次。FIFO队列具备恰好一次(exactly-once)处理和顺序保证,能保持发送顺序并只处理一次。在顺序和防止丢失很重要的工作流中,会选择FIFO队列。

第33题 | 扇出模式

作为被称为扇出(fan-out)模式的架构搭建方式,恰当的是哪一项?

  1. 从一个SNS主题同时向多个SQS队列分发
  2. 从一个SQS队列直接转发到多个SQS队列
  3. 一个SNS主题由多个SNS主题依次读取
  4. 一个SQS队列由多个SNS主题依次读取
正确答案A. 从一个SNS主题同时向多个SQS队列分发

SNS 会将发送到主题的消息同时以推送方式分发给多个订阅者,订阅者可以指定为SQS队列。这种从一个SNS主题分发到多个SQS队列的形式,正是官方作为经典模式给出的扇出模式。队列是接收方而非发送方,因此不会出现队列去读取主题的方向。

第34题 | 通知目的地

关于可作为 Amazon SNS 订阅者指定的目的地,恰当的说明是哪一项?

  1. 只能指定Email、SMS等送达给人的目的地
  2. 只能指定同一账户内的EC2实例
  3. 既可以指定SQS、Lambda等应用侧目的地,也可以指定Email等面向人的目的地
  4. 只能指定SQS、Lambda等应用侧目的地
正确答案C. 既可以指定SQS、Lambda等应用侧目的地,也可以指定Email等面向人的目的地

SNS 的订阅者类型可以整理为两类:SQS、Lambda、HTTP(S)、Data Firehose 等指向应用间(A2A)的目的地,以及Email、移动推送、SMS等指向人(A2P)的目的地。并不限于其中一种,也不是只能以EC2实例为目的地的机制。正是这种广泛性,使得 SNS 既可用于面向人的通知,也可用于应用间的协作。

第35题 | 工作流

作为 AWS Step Functions 所处理的对象,恰当的是哪一项?

  1. 存放在内存缓存中的键值对列表
  2. 表示由多个阶段构成的处理流程的状态机
  3. 决定所保存对象的版本号和保存期限的规则
  4. 将收到的请求分流到多个目标的规则
正确答案B. 表示由多个阶段构成的处理流程的状态机

Step Functions 是一项创建工作流(即状态机)的服务,可用于构建分布式应用程序、实现流程自动化、编排微服务、构建数据和机器学习流水线。其中每个步骤称为state,正在执行的实例称为execution。流量的分流由 Elastic Load Balancing 负责,对象的保存由 S3 负责,键值对的缓存是 ElastiCache 的领域。

第36题 | APIGateway

作为 Amazon API Gateway 所承担的角色,恰当的是哪一项?

  1. 成为接收后端访问请求的前门
  2. 将后端运行的处理本身作为容器来执行
  3. 将静态内容缓存到边缘节点
  4. 将统一的保护规则应用到多个账户
正确答案A. 成为接收后端访问请求的前门

API Gateway 是一项可在任意规模下创建、发布、维护、监控和保护REST、HTTP、WebSocket API的服务,作为通往EC2上运行的工作负载、Lambda、任意Web应用程序等后端访问的前门发挥作用。执行处理本身的是后端一侧,统一应用保护规则的是 AWS Firewall Manager,在边缘进行缓存的是 CloudFront 的角色。

第37题 | 事件总线

关于 Amazon EventBridge 事件总线的说明,恰当的是哪一项?

  1. 将处理的各个阶段定义为状态、按顺序推进的状态机
  2. 按顺序保存消息、由一个目的地取出的等待队列
  3. 将来自众多来源的事件路由到众多目标的路由器
  4. 接收API请求并中转到后端的前门
正确答案C. 将来自众多来源的事件路由到众多目标的路由器

EventBridge 是一项使用事件连接应用程序各组件的无服务器服务,负责事件的接收、过滤、转换和分发。事件总线是将来自众多来源的事件路由到众多目标的路由器。等待队列是 SQS,状态机是 Step Functions,前门则是 API Gateway 的说明。

第38题 | 定时执行

希望用 cron 表达式管理在固定时刻启动处理的机制。恰当的是哪一项?

  1. 在 Amazon SQS 的标准队列中放入消息并等待
  2. 在 Amazon API Gateway 中创建 WebSocket API
  3. 在 Amazon SNS 的主题中注册订阅者并等待
  4. 在 Amazon EventBridge Scheduler 中注册计划
正确答案D. 在 Amazon EventBridge Scheduler 中注册计划

EventBridge Scheduler 是通过 cron 表达式或 rate 表达式来管理定时执行和一次性执行的机制,因此按固定时刻启动的需求由它来处理。SQS 是保存消息、供接收方取出的队列,SNS 是向订阅者分发的发布订阅服务,API Gateway 是发布并中转API的服务,都不是以按时刻启动为目的的机制。

第39题 | 松耦合

希望将订单受理与耗时的后续处理分离开来,使受理一方不必等待。恰当的是哪一项?

  1. 将受理方的处理放在EC2上,后续处理也在同一EC2上执行
  2. 受理方放入SQS队列,后续处理取出后再推进
  3. 受理方直接调用后续处理,并等待返回响应
  4. 将受理方和后续处理整合到同一程序中按顺序执行
正确答案B. 受理方放入SQS队列,后续处理取出后再推进

SQS 是一项安全、具备高耐久性和高可用性的托管队列服务,用于集成分布式软件系统和组件,实现松耦合。受理方在将消息放入队列的那一刻就能返回响应,后续处理可以按自己的速度取出并推进,因此一方的延迟不容易拖累另一方。直接调用或整合成一个程序的架构,会让后续处理的延迟直接变成受理方的等待时间。

第40题 | 分发方式的选择

希望将一次库存更新同时送达汇总、通知、审计这3项处理。恰当的是哪一项?

  1. 创建1个SQS队列,由取出的处理转发给其余2项
  2. 创建1个SQS队列,让3项处理从同一队列中取出
  3. 创建3个SQS队列,由更新的发生方依次分别发送3次
  4. 让1个SNS主题被3个SQS队列订阅,进行分发
正确答案D. 让1个SNS主题被3个SQS队列订阅,进行分发

SNS 会将发送到主题的消息同时以推送方式分发给多个订阅者,订阅者可以指定为SQS队列,因此要将一次事件分发给3项处理,可以使用SNS主题加多个SQS队列构成的扇出模式。如果让3项处理共用1个队列,通常一旦其中一个取出,其余就无法再取得。由发生方发送3次,或由接收到的处理再转发的架构,每增加一个目的地都要修改发送方,无法实现松耦合。

练习:做本页的题目

这是随机出题的练习工具(在启用 JavaScript 时运行)。即使不使用此工具,也可以阅读上方的全部题目和解说。

※ 解说是供学习用的信息。考试的出题范围和制度每年可能变化,请务必确认主办机构的官方公告。

本页面译自日文原文。如译文与原文内容不一致,以日文版为准。 查看日文原文