Skip to content
BytePatterns

SAP-C02 · Domain 4: Accelerate Workload Migration and Modernization · 20% of the exam

Task 4.4: Determine opportunities for modernization and enhancements.

What to change once it runs on AWS: decoupling with queues, events and workflows, serverless functions, containers, and purpose-built databases such as DynamoDB, Aurora Serverless and ElastiCache.

Study it

Sample questions

Try each one before opening the answer. Every option is explained, with the AWS documentation page that proves it.

Question 1 · choose 3

After a rehost, a monolith on EC2 still runs a nightly cron job that builds reports, resizes every uploaded image inside the web request, and handles a five-step order fulfillment process in one long-running thread that loses progress on restarts. The company wants to modernize these three parts without managing servers. Which changes should it make? (Choose THREE.)

  1. ARun the report job as a Lambda function or ECS task started by an Amazon EventBridge Scheduler schedule
  2. BMove the monolith to a larger EC2 instance so that the cron job and image work finish faster
  3. CResize images in a Lambda function invoked by Amazon S3 event notifications when an upload lands in the bucket
  4. DKeep the fulfillment thread but restart the instance every night so that progress is never lost
  5. ERun the cron job on an EC2 instance in an Auto Scaling group with a minimum and maximum of one
  6. FModel the fulfillment process as an AWS Step Functions state machine with retries for each step
Show the answer and why
  • ARun the report job as a Lambda function or ECS task started by an Amazon EventBridge Scheduler schedule

    Correct

    EventBridge Scheduler starts targets such as Lambda functions and ECS tasks on a cron-style schedule, so no server has to run cron.

  • BMove the monolith to a larger EC2 instance so that the cron job and image work finish faster

    Incorrect

    A larger instance still keeps all three jobs inside the server that the company wants to stop managing.

  • CResize images in a Lambda function invoked by Amazon S3 event notifications when an upload lands in the bucket

    Correct

    S3 event notifications can invoke a Lambda function for each new object, which moves image processing out of the web request.

  • DKeep the fulfillment thread but restart the instance every night so that progress is never lost

    Incorrect

    Restarting does not save progress; it causes exactly the loss the company wants to avoid.

  • ERun the cron job on an EC2 instance in an Auto Scaling group with a minimum and maximum of one

    Incorrect

    An Auto Scaling group of one replaces a failed instance, but the company would still manage a server for a scheduled job.

  • FModel the fulfillment process as an AWS Step Functions state machine with retries for each step

    Correct

    Step Functions coordinates multi-step workflows, keeps the state of each execution and retries failed steps, so progress survives failures.

Schedules, events and workflows each have a serverless home: EventBridge Scheduler, S3 events to Lambda, and Step Functions.

Question 2 · choose 1

A modernized order service publishes an event for every order. New consumers keep appearing: a Step Functions workflow for orders over 10,000 USD, a partner's SaaS HTTP API that needs OAuth authorization and rate limiting, and an analytics account in the same organization. The order team does not want to change its code for each new consumer. Which integration service fits best?

  1. AOne Amazon SQS standard queue that every consumer polls, each deleting the messages that it needs to process
  2. BDirect HTTPS calls from the order service to each consumer, with a new call added whenever a consumer appears
  3. CAn Amazon EventBridge event bus with one rule per consumer, an API destination for the partner and a cross-account target
  4. DA self-managed Apache Kafka cluster on EC2 instances, with a separate topic that the producer writes for each consumer
Show the answer and why
  • AOne Amazon SQS standard queue that every consumer polls, each deleting the messages that it needs to process

    Incorrect

    A received message becomes invisible to other consumers so that only one of them processes it, so several consumers would compete for the same events instead of each getting a copy.

  • BDirect HTTPS calls from the order service to each consumer, with a new call added whenever a consumer appears

    Incorrect

    Every new consumer means a code change in the order service, which is what the team wants to avoid.

  • CAn Amazon EventBridge event bus with one rule per consumer, an API destination for the partner and a cross-account target

    Correct

    EventBridge rules filter events by content and route them to targets such as Step Functions, API destinations that handle authorization and invocation rate limits, and event buses in other accounts.

  • DA self-managed Apache Kafka cluster on EC2 instances, with a separate topic that the producer writes for each consumer

    Incorrect

    The producer would write to a topic per consumer, and the company would run the brokers, which adds work instead of removing it.

Content-based routing to many kinds of targets, including SaaS APIs and other accounts, without touching the producer is EventBridge.

Question 3 · choose 1

An internal approval application was migrated to a provisioned Amazon RDS for MySQL instance. It is used only during business hours on weekdays and is idle at night and on weekends, yet the database runs and is billed around the clock. The company wants to pay for database compute only while the application is used, with no code changes beyond a new connection string. Which option meets these requirements?

  1. ABuy a three-year Reserved Instance for the current RDS for MySQL DB instance
  2. BMove the data to Amazon DynamoDB in on-demand capacity mode and pay per request instead
  3. CMove to a larger Aurora provisioned instance so that queries finish faster
  4. DMigrate to Aurora MySQL Serverless v2 with a 0 ACU minimum so that it pauses when idle
Show the answer and why
  • ABuy a three-year Reserved Instance for the current RDS for MySQL DB instance

    Incorrect

    A reservation lowers the hourly rate but still pays for every hour, including nights and weekends.

  • BMove the data to Amazon DynamoDB in on-demand capacity mode and pay per request instead

    Incorrect

    DynamoDB would bill per request, but moving from MySQL to DynamoDB means rewriting the data access code.

  • CMove to a larger Aurora provisioned instance so that queries finish faster

    Incorrect

    A larger provisioned instance runs and is billed around the clock, so idle hours still cost money.

  • DMigrate to Aurora MySQL Serverless v2 with a 0 ACU minimum so that it pauses when idle

    Correct

    Aurora Serverless v2 can scale down to zero ACUs and pause automatically when there are no connections, then resume when the application connects again.

Idle most of the week and MySQL-compatible: Aurora Serverless v2 with automatic pause at zero capacity.

Question 4 · choose 1

Analysts run occasional ad hoc SQL queries on log files through a permanent Hadoop cluster that sits idle most of the week. The logs are already in S3. Which modernization removes the idle cluster?

  1. AMove the cluster to larger instances with more disks
  2. BQuery the logs in place with Amazon Athena
  3. CLoad the logs into an RDS database
  4. DKeep the cluster but stop it on weekends
Show the answer and why
  • AMove the cluster to larger instances with more disks

    Incorrect

    A bigger cluster is still idle most of the week.

  • BQuery the logs in place with Amazon Athena

    Correct

    Athena analyzes data directly in S3 using standard SQL for ad hoc queries.

  • CLoad the logs into an RDS database

    Incorrect

    A database adds loading work and an always-on instance.

  • DKeep the cluster but stop it on weekends

    Incorrect

    The cluster would still run idle on weekdays.

Occasional SQL on data in S3 needs no cluster: use Athena.

Question 5 · choose 1

After a migration, a retailer's order system runs on Amazon Aurora MySQL. Every night, scripts on an EC2 instance extract changed rows and load them into Amazon Redshift, where analysts join orders with marketing data. The analysts now want new orders in Redshift within seconds of commit. The data team wants to stop building and running ETL pipelines, and analytic queries must not run against the production Aurora cluster. Which modernization meets these requirements?

  1. AExport Aurora snapshots to Amazon S3 as Parquet and query the files from Redshift with Redshift Spectrum
  2. BReplace the scripts with an AWS Glue ETL job that copies changed rows into Redshift every 15 minutes
  3. CCreate an Aurora zero-ETL integration from the order cluster to the Redshift warehouse that the analysts use
  4. DUse Redshift federated queries that read the Aurora order tables at the time each analytic query runs
Show the answer and why
  • AExport Aurora snapshots to Amazon S3 as Parquet and query the files from Redshift with Redshift Spectrum

    Incorrect

    Snapshot exports write Parquet files that Spectrum can read, which suits archives and periodic analysis, but each export reflects one point in time, so the data is never seconds old.

  • BReplace the scripts with an AWS Glue ETL job that copies changed rows into Redshift every 15 minutes

    Incorrect

    Glue is a serverless data integration service, which suits jobs that need transformations, but it is still an ETL pipeline for the team to run, and a 15-minute schedule misses the seconds target.

  • CCreate an Aurora zero-ETL integration from the order cluster to the Redshift warehouse that the analysts use

    Correct

    A zero-ETL integration is a fully managed replication that makes data written to the Aurora cluster available in Redshift in near real time, without pipelines for the team to build or maintain. The analysts then query the copy in Redshift.

  • DUse Redshift federated queries that read the Aurora order tables at the time each analytic query runs

    Incorrect

    Federated queries read live data, but Redshift pushes subqueries down to the operational database, so every analytic query adds load to the production Aurora cluster.

Purpose-built stores should each do their own job: Aurora takes the orders and Redshift serves the analytics. Zero-ETL integration connects them with a managed, near real-time replication, which removes the nightly scripts and keeps analytic work off the production cluster. Federated queries meet the freshness goal only by loading the source database, and the Glue and snapshot options cannot reach seconds.

Question 6 · choose 1

A company has 150 .NET Framework applications on Windows servers and wants to modernize them to run on Linux to cut licensing costs, with tooling that helps transform the code. Which option fits?

  1. AAWS Transform for .NET to port them to cross-platform .NET
  2. BRehost the Windows servers to EC2 unchanged with the same licenses
  3. CMove the Windows servers to Dedicated Hosts
  4. DRun the applications in Lambda without changes
Show the answer and why
  • AAWS Transform for .NET to port them to cross-platform .NET

    Correct

    AWS Transform can modernize .NET applications to Linux-ready cross-platform .NET.

  • BRehost the Windows servers to EC2 unchanged with the same licenses

    Incorrect

    Rehosting keeps the Windows licenses the company wants to drop.

  • CMove the Windows servers to Dedicated Hosts

    Incorrect

    Dedicated Hosts change licensing options but keep Windows.

  • DRun the applications in Lambda without changes

    Incorrect

    .NET Framework applications need porting before they run on Linux.

Porting .NET Framework to Linux is supported by AWS Transform.

Question 7 · choose 1

Nightly ETL scripts on a self-managed server move and reshape data from several sources into an S3 data lake, and the server fails as volumes grow. The team wants a serverless data integration service. Which service fits?

  1. AAmazon EC2 Auto Scaling for the script server
  2. BAWS Glue
  3. CAmazon RDS read replicas
  4. DAmazon CloudFront
Show the answer and why
  • AAmazon EC2 Auto Scaling for the script server

    Incorrect

    The team would still run the servers.

  • BAWS Glue

    Correct

    Glue is a serverless data integration service to discover, prepare, move and integrate data from multiple sources.

  • CAmazon RDS read replicas

    Incorrect

    Read replicas copy one database; they do not run ETL across sources.

  • DAmazon CloudFront

    Incorrect

    CloudFront delivers content; it does not transform data.

Serverless ETL into a data lake is AWS Glue.

Question 8 · choose 1

A support chat was rehosted to AWS. About 20,000 customers' browsers poll an API every second for new messages, and the polling now dominates the application's load and cost. In the modernization, each agent's reply must be pushed to the right customer's browser over a persistent connection using the browser's standard WebSocket support, the chat logic must stay in Lambda functions, and the team will not run servers or a fleet that holds open connections. Which design meets these requirements?

  1. AGive each customer an SQS queue and have the browser read it with long polling of up to 20 seconds per request
  2. BCreate an API Gateway WebSocket API with Lambda integrations that reply to a customer through its @connections callback URL
  3. CPut an Application Load Balancer with WebSocket support in front of an Auto Scaling group of Node.js chat servers
  4. DCreate an SNS topic per conversation and subscribe each customer's browser to it as an HTTPS endpoint
Show the answer and why
  • AGive each customer an SQS queue and have the browser read it with long polling of up to 20 seconds per request

    Incorrect

    Long polling reduces empty responses for SQS consumers, but the browsers would still poll, now with AWS credentials to reach the queues, and nothing is pushed over a persistent connection.

  • BCreate an API Gateway WebSocket API with Lambda integrations that reply to a customer through its @connections callback URL

    Correct

    WebSocket APIs are bidirectional, so services can push data to clients without a client request each time. A backend such as a Lambda function sends a message to one connected client with a POST to its @connections callback URL, and API Gateway holds the connections.

  • CPut an Application Load Balancer with WebSocket support in front of an Auto Scaling group of Node.js chat servers

    Incorrect

    Application Load Balancers support WebSockets natively, so this would push messages over persistent connections, but the EC2 fleet holding the connections is the server fleet the team will not run.

  • DCreate an SNS topic per conversation and subscribe each customer's browser to it as an HTTPS endpoint

    Incorrect

    SNS delivers each notification as an HTTP POST request to a public HTTP or HTTPS endpoint, which must be a service that accepts those requests. A customer's browser cannot receive them.

The constraints are server push over a browser WebSocket, logic in Lambda, and no connection-holding fleet. SQS long polling is still polling, an ALB with WebSockets needs servers, and SNS cannot deliver to browsers. An API Gateway WebSocket API keeps the connections while Lambda functions push messages to specific clients through @connections.

Practise domain 4 →Practise all domains →