Karinoya Learning Room

Qualifications · Cloud / AI / Python Success Lab

Major AWS Services

Read the questions and explanations in English. The lectures (explanatory articles) are available in Japanese only.

View the Japanese version (with lectures) →

Q1 | EC2 and S3

Which correctly pairs the roles of Amazon EC2 and Amazon S3?

  1. EC2 provides virtual servers, and S3 stores objects
  2. EC2 runs function code, and S3 shares files
  3. EC2 stores objects, and S3 provides virtual servers
  4. EC2 shares files, and S3 runs function code
AnswerA. EC2 provides virtual servers, and S3 stores objects

EC2 is Amazon Elastic Compute Cloud, providing resizable compute capacity — that is, virtual servers. S3 is Amazon Simple Storage Service, storing any amount of data as objects. Swapping these two has long been a common mix-up, so it helps to recall the role from the spelled-out name. Running function code is Lambda's role, and sharing files is EFS's role.

Q2 | Lambda billing

Which correctly describes the billing model for AWS Lambda?

  1. You are billed only for the compute time you consume
  2. You are billed a fixed monthly amount based on the number of functions created
  3. You are billed based on reserved capacity even while code is not running
  4. You are billed only for the size of the code you uploaded
AnswerA. You are billed only for the compute time you consume

Lambda lets you run code without provisioning or managing servers, and you are billed only for the compute time you consume. No charge accrues while code is not running, which is the key difference from EC2, where cost accrues for as long as the instance keeps running. The number of functions or the size of the uploaded code itself is not the billing unit.

Q3 | Serverless

What is a characteristic common to services described as serverless?

  1. The customer decides the OS type and patch-application policy before execution
  2. There is no physical server anywhere carrying out the processing
  3. Processing runs only on a dedicated physical server the customer prepared
  4. The customer does not need to provision or manage servers
AnswerD. The customer does not need to provision or manage servers

Serverless does not mean there is no physical server; it means the customer does not need to provision, configure, or scale servers. Lambda is described as letting you "run code without provisioning or managing servers," and Fargate is described as removing the need to "provision, configure, or scale servers or clusters." The physical server exists on AWS's side, and deciding the OS type or patch policy is characteristic of a form like EC2.

Q4 | Fargate

Which correctly describes AWS Fargate?

  1. A pay-as-you-go compute engine for containers that requires no server management
  2. A managed service that runs Kubernetes clusters on AWS
  3. A mechanism where the customer chooses the instance type and count of virtual servers
  4. A mechanism that defines and runs a distributed process as a workflow
AnswerA. A pay-as-you-go compute engine for containers that requires no server management

Fargate is a serverless, pay-as-you-go compute engine for containers that removes the need to provision, configure, or scale servers or clusters, and is used as a launch type for ECS or EKS. Managed Kubernetes operation is EKS; choosing instance type and count yourself is the EC2 launch type; and defining steps as a workflow is Step Functions.

Q5 | ECS capacity

Regarding how to choose the underlying compute for running tasks in Amazon ECS, which statement is correct?

  1. With EC2 AWS manages the underlying compute, and with Fargate the customer manages instances
  2. With either Fargate or EC2, AWS manages instances
  3. With Fargate AWS manages the underlying compute, and with EC2 the customer manages instances
  4. With either Fargate or EC2, the customer manages instances
AnswerC. With Fargate AWS manages the underlying compute, and with EC2 the customer manages instances

The basic capacity choices for ECS are Fargate, which is serverless with AWS managing the underlying compute, and EC2, where the customer selects and manages the instance type and count. There are also ECS Managed Instances and, for on-premises, ECS Anywhere. Regardless of which one you choose, ECS is the service that places and scales containers; what changes is only who takes care of the underlying compute.

Q6 | EKS

What is the most appropriate reason for adopting Amazon EKS?

  1. To avoid the effort of building and operating Kubernetes yourself
  2. To offload periodic backups of a relational database
  3. To automatically distribute incoming traffic across multiple targets
  4. To deliver static web content from a location near users
AnswerA. To avoid the effort of building and operating Kubernetes yourself

EKS is Amazon Elastic Kubernetes Service, a managed service that lets you run Kubernetes on AWS without installing and operating a Kubernetes cluster yourself, and it is certified Kubernetes-conformant. Automating database operations is RDS's role, delivering content from a nearby location is CloudFront's role, and distributing traffic is Elastic Load Balancing's role.

Q7 | Choosing how to run it

A file arrives only a few times a day and needs to be converted only when it arrives. Which configuration minimizes cost?

  1. Run an EC2 instance continuously and process at fixed intervals
  2. Run an EC2 instance continuously and trigger the process manually
  3. Run an EKS cluster continuously and process at fixed intervals
  4. Write the processing in Lambda and trigger it on file arrival
AnswerD. Write the processing in Lambda and trigger it on file arrival

Lambda lets you run code with no server management, billed only for the compute time consumed, with no charge while it is not running. So for processing that is triggered sparsely, Lambda is favorable because no cost accrues during the idle waiting time. Configurations that keep an EC2 instance or an EKS cluster running continuously incur cost for the large stretches of time when no processing is happening.

Q8 | EC2 control

Which correctly describes a characteristic of Amazon EC2?

  1. You are billed only for code execution time, and you never need to touch the OS
  2. You get full control over the compute resource and pay only for what you use
  3. Data is stored as objects, read and written through an HTTP API
  4. Each stage of a workflow is defined as a state and executed in order
AnswerB. You get full control over the compute resource and pay only for what you use

EC2 is officially described as a service that provides secure, resizable compute capacity in the cloud, where you pay only for what you use and have full control over the compute resource. Being billed only for execution time and never touching the OS describes Lambda, storing data as objects describes S3, and defining a workflow as states describes Step Functions. The tradeoff for such broad control is that OS management remains with the customer, which is worth keeping in mind alongside it.

Q9 | ECS

Which role does Amazon ECS fulfill?

  1. Runs code written as functions in response to events
  2. Provides a Kubernetes API-conformant cluster on AWS
  3. Deploys, manages, and scales containerized applications
  4. Launches any number of instances from a virtual server image
AnswerC. Deploys, manages, and scales containerized applications

ECS is Amazon Elastic Container Service, a fully managed container orchestration service that makes it easy to deploy, manage, and scale containerized applications. Providing a Kubernetes-conformant cluster is EKS's role, launching virtual server instances is EC2's role, and running code in response to events is Lambda's role. ECS and EKS both group containers together, but they differ over whether Kubernetes is used.

Q10 | ECS vs. EKS

Which correctly describes the difference between Amazon ECS and Amazon EKS?

  1. ECS runs Kubernetes, and EKS groups containers using an AWS-proprietary approach
  2. EKS runs Kubernetes, and ECS groups containers using an AWS-proprietary approach
  3. EKS handles containers, and ECS handles only virtual server images
  4. ECS handles containers, and EKS handles only virtual server images
AnswerB. EKS runs Kubernetes, and ECS groups containers using an AWS-proprietary approach

EKS is a managed service that lets you run Kubernetes on AWS without installing and operating a Kubernetes cluster yourself, and it is certified Kubernetes-conformant. ECS, on the other hand, is AWS's own fully managed container orchestration service that does not presuppose Kubernetes. Both are services that handle containers, not services limited to virtual server images. As a launch target, both can also use Fargate.

Q11 | EBS and EFS

Which pairing correctly describes the properties of Amazon EBS and Amazon EFS?

  1. EBS connects as a block to a single EC2 instance, and EFS is shared from many EC2 instances
  2. Both EBS and EFS are premised on connecting to only a single EC2 instance
  3. Both EBS and EFS are premised on parallel sharing from many EC2 instances
  4. EBS is shared as files from many EC2 instances, and EFS connects as a block
AnswerA. EBS connects as a block to a single EC2 instance, and EFS is shared from many EC2 instances

EBS is a persistent block storage volume for use with EC2 instances, automatically replicated within an Availability Zone, and in principle attached to and used by a single instance. EFS is a file system for Linux workloads that grows and shrinks automatically and supports parallel shared access from thousands of EC2 instances. Sharing is a capability of EFS; it is not the case that both are for sharing, or that both are exclusively for a single connection.

Q12 | How S3 holds data

Which correctly describes how Amazon S3 holds data?

  1. Provided as a shared file system for Linux
  2. Provides fast in-memory reads and writes as a cache
  3. Block storage that connects to and is used by an EC2 instance
  4. Object storage that can store any amount of data
AnswerD. Object storage that can store any amount of data

S3 is Amazon Simple Storage Service, object storage with excellent scalability and availability that can store and protect any amount of data. Block storage is EBS, a shared file system for Linux is EFS, and an in-memory cache is ElastiCache. The distinction among these three ways of holding data — object, block, and file — is the starting point for choosing AWS storage.

Q13 | Choosing shared storage

You want hundreds of EC2 instances to mount and read/write the same directory at the same time. Which is appropriate?

  1. Reference an Amazon ElastiCache node from each instance
  2. Mount an Amazon EFS file system from each instance
  3. Attach one Amazon EBS volume to each instance
  4. Place it in S3 Glacier Deep Archive and read/write from each instance
AnswerB. Mount an Amazon EFS file system from each instance

EFS is file storage whose capacity automatically grows and shrinks with the number of files and which supports parallel shared access from thousands of EC2 instances, so it fits the use case of mounting the same directory from many instances at once. EBS is block storage within an Availability Zone that is in principle attached to a single instance, giving each instance its own separate area. Glacier Deep Archive is an archival class designed for slow retrieval, and ElastiCache is an in-memory cache rather than a file system.

Q14 | EBS and the AZ

Within what scope is an Amazon EBS volume automatically replicated?

  1. Replicated across every contracted account
  2. Replicated within a single Availability Zone
  3. Replicated across multiple Regions
  4. Replicated across edge locations worldwide
AnswerB. Replicated within a single Availability Zone

EBS is persistent block storage for EC2 instances, automatically replicated within an Availability Zone, providing consistent, low-latency performance. Because of this single-AZ property, a separate mechanism is needed if availability across AZs is required. Replicating across Regions or delivering from edge locations is not EBS's role.

Q15 | Glacier

Which correctly describes the S3 Glacier storage classes?

  1. They can only store database backup files
  2. Stored data can be attached directly to EC2 as block storage
  3. There are classes that support immediate retrieval and classes that take time to retrieve
  4. They are archival classes, and all of them take the same amount of time to retrieve
AnswerC. There are classes that support immediate retrieval and classes that take time to retrieve

S3 Glacier is a group of archival storage classes: S3 Glacier Instant Retrieval for data that needs immediate retrieval, S3 Glacier Flexible Retrieval for long-term data accessed rarely, and S3 Glacier Deep Archive, which retrieves at the lowest cost over a period of hours. The design lets you choose a class based on the tradeoff between retrieval speed and cost, so retrieval time is not uniform. There is no restriction on the kind of data that can be stored, and it is not used by attaching it as block storage.

Q16 | Three categories

Which pairing correctly classifies S3, EBS, and EFS by the unit of data they handle?

  1. S3 is file, EBS is object, EFS is block
  2. S3 is block, EBS is object, EFS is file
  3. S3 is block, EBS is file, EFS is object
  4. S3 is object, EBS is block, EFS is file
AnswerD. S3 is object, EBS is block, EFS is file

S3 is object storage, EBS is block storage attached to EC2, and EFS is file storage for Linux workloads. It helps to think of objects as things moved in and out wholesale via an API, blocks as things that appear to the OS as a disk, and files as things that can be mounted and shared from multiple hosts — this framing makes it easier to choose confidently based on requirements.

Q17 | OS disk

Which would you use as the data storage disk for a database running on a single EC2 instance?

  1. Use an S3 Glacier Flexible Retrieval archive
  2. Use an Amazon CloudFront cache as a disk
  3. Attach an Amazon S3 bucket as a disk
  4. Attach an Amazon EBS volume to the instance
AnswerD. Attach an Amazon EBS volume to the instance

EBS is persistent block storage for use with EC2 instances that provides consistent, low-latency performance, making it well suited for use as an OS or database disk. S3 is object storage and does not attach a bucket as a block device. Glacier is an archival class designed for slow retrieval, and CloudFront is a CDN for speeding up delivery.

Q18 | Use cases for S3

Why is S3 chosen as a place to store static web content or backups?

  1. Because only one instance can connect to it, avoiding write conflicts
  2. Because data sits in memory, so it can be read and written without going through a disk
  3. Because it appears to the OS as a disk and can be connected directly to a business system as is
  4. Because it can store any amount of data and offers excellent scalability, availability, and security
AnswerD. Because it can store any amount of data and offers excellent scalability, availability, and security

S3 is object storage that can store and protect any amount of data, with excellent scalability, availability, security, and performance, and AWS officially lists use cases such as web, mobile, backup, archive, IoT, and big data analytics. Appearing to the OS as a disk is a property of EBS, being restricted in principle to a single instance connection is also a property of EBS, and holding data in memory is a property of ElastiCache.

Q19 | EFS elasticity

Which correctly describes the capacity behavior of Amazon EFS?

  1. The capacity you can store is determined by the instance's memory size
  2. Capacity automatically grows and shrinks as files are added or removed
  3. You must detach it and rebuild it in order to increase capacity
  4. The capacity decided at creation time is fixed and cannot be changed later
AnswerB. Capacity automatically grows and shrinks as files are added or removed

EFS is a simple, scalable, elastic file system whose capacity automatically grows and shrinks as files are added and removed, eliminating the need for advance capacity planning. Fixing a decided capacity in advance, or rebuilding to expand it, reflects a block-storage way of thinking, and the connected instance's memory size does not determine capacity either. This elasticity is what makes it easy to use as a shared working area.

Q20 | Choosing where to archive

You want to store rarely referenced audit logs at the lowest possible long-term cost, on the assumption that retrieval taking a few hours is acceptable. Which is appropriate?

  1. Store them in the S3 Glacier Deep Archive class
  2. Create an Amazon EBS volume and write the logs there for storage
  3. Keep them loaded on an Amazon ElastiCache node
  4. Keep them in place on an Amazon EFS file system
AnswerA. Store them in the S3 Glacier Deep Archive class

S3 Glacier Deep Archive stores rarely accessed data at the lowest cost, with retrieval taking a period of hours, so it fits this condition. EBS and EFS are designed to preserve retrieval speed and tend to be expensive as a place for long-dormant data. ElastiCache is an in-memory cache and is not a mechanism for long-term storage in the first place. Deciding in advance how long a retrieval wait is acceptable is the guiding logic for choosing a storage class.

Q21 | RDS

Which management task does Amazon RDS automate?

  1. Provisioning hardware, applying patches, and taking backups
  2. Designing tables and columns, and deciding where to place indexes
  3. Verifying whether the content of stored data is correct
  4. Screen flow and input validation for a business application
AnswerA. Provisioning hardware, applying patches, and taking backups

RDS is a managed service that makes it easy to set up, operate, and scale a relational database in the cloud, automating management tasks such as hardware provisioning, database setup, patching, and backups. Designing tables and columns, deciding on indexes, building the application, and validating the correctness of the data content all remain the customer's job. Managed means the operational burden is handed off, not that design is handed off too.

Q22 | Aurora and RDS

Which correctly describes the relationship between Amazon Aurora and standard Amazon RDS?

  1. Aurora is part of RDS and manages an entire cluster rather than individual instances
  2. Aurora is a separate service from RDS, operated only through a dedicated console and API
  3. Aurora is part of RDS, but the customer applies patches and takes backups themselves
  4. Aurora is part of RDS, but it can only handle key-value data
AnswerA. Aurora is part of RDS and manages an entire cluster rather than individual instances

Aurora is part of Amazon RDS, the managed database service, and uses the same management console, CLI, and API operations for provisioning, patching, backup, recovery, and failure detection. The difference is the unit of management: standard RDS manages individual DB instances, whereas Aurora manages an entire cluster of DB servers kept in sync through replication. Aurora is a MySQL- and PostgreSQL-compatible relational database, not a key-value database.

Q23 | DynamoDB

Which correctly describes Amazon DynamoDB?

  1. Places data in memory and speeds up reads and writes by bypassing disk
  2. A NoSQL database supporting key-value and document data models
  3. A petabyte-scale data warehouse that answers analytical queries
  4. A relational database compatible with MySQL and PostgreSQL
AnswerB. A NoSQL database supporting key-value and document data models

DynamoDB is a key-value and document NoSQL database, a fully managed, multi-Region database delivering single-digit-millisecond performance at any scale. A data warehouse is Redshift, a relational database compatible with MySQL and PostgreSQL is Aurora, and reading and writing in memory is ElastiCache.

Q24 | Redshift

You want to aggregate several years' worth of historical data and analyze it from a BI tool. Which platform is appropriate?

  1. Put it in an Amazon SQS queue and aggregate while pulling items out in order
  2. Aggregate it while it stays in place on an Amazon EFS file system
  3. Place it in an Amazon Redshift data warehouse and aggregate there
  4. Aggregate it while it stays loaded on an Amazon ElastiCache cluster
AnswerC. Place it in an Amazon Redshift data warehouse and aggregate there

Redshift is a fully managed, petabyte-scale data warehouse service in the cloud that delivers fast query performance from existing SQL-based tools or BI applications regardless of dataset size. ElastiCache is an in-memory cache, EFS is a shared file system, and SQS is a message queue — none of these is a platform for aggregating and analyzing large volumes of data.

Q25 | Cache

Which is an appropriate benefit of introducing Amazon ElastiCache?

  1. It lets multiple EC2 instances share the same directory
  2. It can speed up analytical queries involving table joins and aggregation altogether
  3. It can significantly cut the cost of long-term backup storage
  4. It can speed up responses by retrieving from memory instead of going through disk
AnswerD. It can speed up responses by retrieving from memory instead of going through disk

ElastiCache is a service that makes it easy to deploy, operate, and scale an in-memory cache in the cloud, improving web application performance by retrieving information from a fast in-memory cache instead of relying on a disk-based database. Speeding up analytical queries is Redshift's job, reducing long-term storage cost is a job for S3 Glacier classes, and sharing a directory is EFS's job.

Q26 | Aurora's characteristics

Which is a characteristic of Amazon Aurora?

  1. The customer decides capacity up front and manually expands it whenever it runs short
  2. It stores data as key-value pairs and reads and writes without using SQL
  3. It has distributed, shared storage whose capacity grows automatically as needed
  4. It keeps storage cost lowest in exchange for retrieval taking a period of hours
AnswerC. It has distributed, shared storage whose capacity grows automatically as needed

Aurora is a fully managed, MySQL- and PostgreSQL-compatible relational database engine with a high-performance, distributed, shared storage subsystem, and its storage expands automatically as needed. There is no need to decide capacity up front and manually expand it. Storing data as key-value pairs is DynamoDB, and keeping storage cheap in exchange for retrieval taking time is an archival S3 Glacier class.

Q27 | Analytics vs. transactions

Which correctly describes the appropriate use of Amazon Redshift versus Amazon RDS?

  1. Both are data warehouses, differing only in the amount of data they can handle
  2. Redshift is suited to analytical aggregation, and RDS is suited to recording day-to-day transactions
  3. Both are NoSQL, differing only in the query language that can be used
  4. Redshift is suited to recording day-to-day transactions, and RDS is suited to analytical aggregation
AnswerB. Redshift is suited to analytical aggregation, and RDS is suited to recording day-to-day transactions

Redshift is a fully managed, petabyte-scale data warehouse service well suited to aggregating and analyzing large volumes of data from SQL-based tools or BI applications. RDS is a service that makes it easy to set up, operate, and scale a relational database, well suited to a business system reading and writing day-to-day transactions. Both are queried with SQL, which can make them look similar, but neither is NoSQL, and the difference is not merely one of data volume.

Q28 | Choosing a database

You want single-digit-millisecond responses, reading and writing one item at a time by key. Which platform is appropriate?

  1. An Amazon RDS relational database
  2. An Amazon Redshift data warehouse
  3. An Amazon EFS shared file system
  4. An Amazon DynamoDB NoSQL database
AnswerD. An Amazon DynamoDB NoSQL database

DynamoDB is a key-value and document NoSQL database that is officially described as delivering single-digit-millisecond performance at any scale. Redshift is a data warehouse well suited to aggregating and analyzing large volumes of data, RDS is a service for reading and writing under the relational model, and EFS is storage for sharing files — none of these is primarily aimed at this requirement.

Q29 | Where RDS fits

Which correctly describes Amazon RDS?

  1. A data warehouse that ingests and aggregates large volumes of data
  2. A database that stores data as key-value pairs and reads and writes without using SQL
  3. A service that places a cache in memory to speed up reads
  4. A service that makes it easy to build and operate a relational database
AnswerD. A service that makes it easy to build and operate a relational database

RDS is Amazon Relational Database Service, a managed service that makes it easy to set up, operate, and scale a relational database in the cloud. Storing data as key-value pairs is DynamoDB, an in-memory cache is ElastiCache, and aggregating large volumes of data is the job of the data warehouse Redshift. Note that Aurora is an engine offered as part of RDS.

Q30 | Managing Aurora

Which correctly describes day-to-day operations of an Aurora cluster?

  1. Backup and recovery procedures must be built by the customer from scratch
  2. A separate management instance dedicated to Aurora must be stood up for operations
  3. Operations can only be performed at the level of individual instances, not the cluster
  4. Patching and backups can be performed from the same console and API as RDS
AnswerD. Patching and backups can be performed from the same console and API as RDS

Aurora is offered as part of RDS, and provisioning, patching, backup, recovery, and failure detection can all be performed using the same management console, CLI, and API operations. There is no need to stand up a separate management instance, nor does the customer need to build these procedures themselves. The difference from standard RDS, which manages individual DB instances, is that Aurora treats the entire cluster as the unit of management.

Q31 | SQS and SNS

Which pairing correctly describes the properties of Amazon SQS and Amazon SNS?

  1. SQS handles delivery to topics, and SNS handles accumulation into queues
  2. Both SQS and SNS are mechanisms where a single destination pulls out held messages
  3. SQS handles accumulation into queues, and SNS handles delivery to topics
  4. Both SQS and SNS are mechanisms for delivering a single item to many destinations at once
AnswerC. SQS handles accumulation into queues, and SNS handles delivery to topics

SQS is a point-to-point service that holds messages in a queue, typically pulled out by a single consumer polling it. SNS is a pub/sub service where publishers send messages to a topic that are pushed simultaneously to multiple subscribers. Swapping the two is a classic mix-up, and it is not the case that both deliver in the same way. It helps to remember the direction: a queue is a place a receiver goes to fetch from, and a topic is a sender that pushes out.

Q32 | FIFO queue

Which is a property of an Amazon SQS FIFO queue?

  1. Order sent is preserved, and a message is processed exactly once
  2. Order sent is not preserved, but duplicate delivery alone does not occur
  3. Order sent is preserved, but the same message may arrive multiple times
  4. Neither order sent nor number of processing times is guaranteed
AnswerA. Order sent is preserved, and a message is processed exactly once

SQS has standard queues and FIFO queues. Standard queues provide at-least-once delivery, so the same message can arrive more than once. FIFO queues provide exactly-once processing and order preservation, so the order sent is preserved and each message is processed exactly once. For workflows where order and avoiding loss matter, a FIFO queue is the choice.

Q33 | Fan-out

Which is the correct way to assemble what is called the fan-out pattern?

  1. One SNS topic delivering simultaneously to multiple SQS queues
  2. One SQS queue forwarding directly to multiple SQS queues
  3. One SNS topic read in turn by multiple SNS topics
  4. One SQS queue read in turn by multiple SNS topics
AnswerA. One SNS topic delivering simultaneously to multiple SQS queues

SNS pushes a message sent to a topic simultaneously to multiple subscribers, and an SQS queue can be specified as a subscriber. This shape, from one SNS topic to multiple SQS queues, is the fan-out pattern officially presented as the standard approach. A queue is a receiving end, not a delivery source, so the direction never runs from queue to topic.

Q34 | Notification destinations

Which correctly describes the destinations that can be specified as Amazon SNS subscribers?

  1. You can only specify human-facing destinations such as email or SMS
  2. You can only specify EC2 instances within the same account
  3. You can specify app-side destinations such as SQS and Lambda, as well as human-facing destinations such as email
  4. You can only specify app-side destinations such as SQS or Lambda
AnswerC. You can specify app-side destinations such as SQS and Lambda, as well as human-facing destinations such as email

SNS subscriber types are organized into two groups: A2A, meaning app-to-app destinations such as SQS, Lambda, HTTP(S), and Data Firehose; and A2P, meaning app-to-person destinations such as email, mobile push, and SMS. It is not limited to either one, nor is it a mechanism limited to EC2 instances as destinations. This breadth is why SNS is used both for notifying people and for connecting applications.

Q35 | Workflow

What does AWS Step Functions work with?

  1. A list of key-value pairs held in an in-memory cache
  2. A state machine representing a multi-step processing flow
  3. Rules that decide the versioning and retention period of stored objects
  4. Rules that distribute an incoming request across multiple targets
AnswerB. A state machine representing a multi-step processing flow

Step Functions is a service that lets you create workflows, i.e., state machines, enabling the building of distributed applications, process automation, microservices orchestration, and data or machine learning pipelines. Each step is called a state, and a running instance is called an execution. Distributing traffic is Elastic Load Balancing's job, storing objects is S3's job, and caching key-value pairs is ElastiCache's domain.

Q36 | API Gateway

Which role does Amazon API Gateway fulfill?

  1. Acts as the front door that accepts access to a backend
  2. Runs the backend processing itself as a container
  3. Caches static content at edge locations
  4. Applies a common set of protection rules across multiple accounts at once
AnswerA. Acts as the front door that accepts access to a backend

API Gateway is a service for creating, publishing, maintaining, monitoring, and securing REST, HTTP, and WebSocket APIs at any scale, functioning as the front door for access to backends such as workloads on EC2, Lambda, or any web application. Running the processing itself is the backend's job, applying protection rules centrally across accounts is AWS Firewall Manager's job, and caching at the edge is CloudFront's role.

Q37 | Event bus

Which correctly describes an Amazon EventBridge event bus?

  1. A state machine that defines each stage of a process as a state and advances through them in order
  2. A queue that holds messages in order, pulled out by a single destination
  3. A router that routes events from many sources to many targets
  4. A front door that accepts API requests and relays them to a backend
AnswerC. A router that routes events from many sources to many targets

EventBridge is a serverless service that connects application components together using events, handling event ingestion, filtering, transformation, and delivery. An event bus is a router that routes events from many sources to many targets. A queue is described by SQS, a state machine by Step Functions, and a front door by API Gateway.

Q38 | Scheduled execution

You want a mechanism, managed with cron expressions, that triggers processing at fixed times. Which is appropriate?

  1. Place a message in an Amazon SQS standard queue and let it wait
  2. Create a WebSocket API in Amazon API Gateway
  3. Register a subscriber on an Amazon SNS topic and have it listen
  4. Register a schedule in Amazon EventBridge Scheduler
AnswerD. Register a schedule in Amazon EventBridge Scheduler

EventBridge Scheduler is a mechanism for managing recurring and one-time invocations using cron expressions or rate expressions, so scheduled invocation at fixed times is handled here. SQS is a queue that holds messages for a receiver to pull out, SNS is pub/sub delivery to subscribers, and API Gateway is a service for publishing and relaying APIs — none of these is aimed at time-based invocation.

Q39 | Loose coupling

You want to decouple order acceptance from a time-consuming downstream process so the acceptance side is not kept waiting. Which is appropriate?

  1. Run the acceptance-side processing on EC2, and run the downstream process on the same EC2 too
  2. Have the acceptance side place items into an SQS queue, from which the downstream process pulls them and proceeds
  3. Have the acceptance side call the downstream process directly and wait for a response
  4. Combine the acceptance side and the downstream process into one program run in sequence
AnswerB. Have the acceptance side place items into an SQS queue, from which the downstream process pulls them and proceeds

SQS is a secure, durable, highly available, hosted queue service that lets you integrate and decouple distributed software systems and components. The acceptance side can respond as soon as it has placed a message into the queue, and the downstream process can pull it out and proceed at its own pace, so a delay on one side does not readily stop the other. In a direct-call or single-program configuration, a delay in the downstream process becomes waiting time for the acceptance side.

Q40 | Choosing how to deliver

You want to deliver a single inventory update simultaneously to three processes: aggregation, notification, and audit. Which is appropriate?

  1. Create one SQS queue and have the process that pulls an item forward it to the other two
  2. Create one SQS queue and have all three processes pull from the same queue
  3. Create three SQS queues and have the source of the update send to each one, three times in turn
  4. Have one SNS topic delivered to by having three SQS queues subscribe to it
AnswerD. Have one SNS topic delivered to by having three SQS queues subscribe to it

SNS pushes a message sent to a topic simultaneously to multiple subscribers, and an SQS queue can be specified as a subscriber, so delivering one event to three processes calls for the fan-out pattern of an SNS topic with multiple SQS queues. If three processes share one queue, typically once any one of them pulls an item out, the others cannot receive it. Having the source send three times, or having the receiving process forward it on, means the sender has to be modified every time a destination is added, which is not loose coupling.

Practice: answer the questions on this page

This practice tool asks questions in random order (it works when JavaScript is enabled). You can still read all the questions and explanations above without it.

* The explanations are information for study purposes. Exam scope and systems change from year to year, so always check the official announcements of the organization that administers the exam.

This page is a translation of the Japanese original. If the translation and the original differ, the Japanese version takes precedence. View the Japanese original