Courseiva

CCNA Data Operations and Support Questions

75 of 360 questions · Page 2/5 · Data Operations and Support · Answers revealed

76
MCQeasy

A data engineer runs a Spark job on Amazon EMR that reads data from Amazon S3 and writes results back to S3. The job fails with an 'S3AccessDenied' error. The engineer verifies that the IAM role attached to the EMR cluster has s3:GetObject and s3:PutObject permissions on the relevant buckets. What is the MOST likely cause of the error?

A.S3 Transfer Acceleration is not enabled on the bucket.
B.EMRFS consistent view is not configured.
C.The S3 bucket is in a different AWS Region than the EMR cluster.
D.The IAM role does not have s3:ListBucket permission on the bucket.
AnswerD

EMR requires ListBucket permission to access objects in the bucket.

Why this answer

The IAM role attached to the EMR cluster must have the s3:ListBucket permission on the bucket to allow the Spark job to enumerate objects when reading from S3. Without this permission, even with s3:GetObject and s3:PutObject, the job fails with an 'S3AccessDenied' error because the S3 list operation is required for directory listing and file discovery.

Exam trap

The trap here is that candidates often assume GetObject and PutObject are sufficient for S3 read/write operations, overlooking that the ListBucket permission is required for directory listing and file discovery in Spark jobs.

How to eliminate wrong answers

Option A is wrong because S3 Transfer Acceleration is a feature for faster uploads over long distances and is not required for basic read/write operations; its absence does not cause an access denied error. Option B is wrong because EMRFS consistent view is a consistency mechanism for eventually consistent S3 buckets, not a permission or access control feature; its absence would not produce an S3AccessDenied error. Option C is wrong because while cross-region access can cause latency or additional costs, it does not inherently cause an access denied error as long as the IAM role has the correct permissions and the bucket policy allows cross-region access.

77
MCQeasy

A data engineer receives an alert that a Kinesis Data Stream has a 'WriteProvisionedThroughputExceeded' error. The stream has 5 shards with 1 MB/s write capacity per shard. The producer application is sending data at 8 MB/s sustained. What should the engineer do to resolve the issue?

A.Reduce the record size to below 1 MB per record.
B.Enable enhanced fan-out on the stream.
C.Increase the number of shards from 5 to 10.
D.Use Kinesis Firehose as an intermediary to buffer data.
AnswerC

More shards increase the total write capacity, matching the 8 MB/s requirement.

Why this answer

The 'WriteProvisionedThroughputExceeded' error indicates that the total write throughput to the Kinesis Data Stream exceeds the provisioned capacity. With 5 shards, each offering 1 MB/s write capacity, the total write capacity is 5 MB/s. The producer is sending 8 MB/s, which is above this limit.

Increasing the number of shards to 10 raises the total write capacity to 10 MB/s, accommodating the sustained 8 MB/s throughput and resolving the throttling.

Exam trap

The trap here is that candidates confuse write-side throttling with read-side limitations, leading them to choose enhanced fan-out (a read-side optimization) instead of scaling shards to increase write capacity.

How to eliminate wrong answers

Option A is wrong because reducing record size below 1 MB does not address the throughput limit; the error is about aggregate write throughput exceeding shard capacity, not individual record size limits. Option B is wrong because enhanced fan-out is a feature for increasing read throughput (up to 2 MB/s per shard per consumer) and does not affect write capacity or resolve write-side throttling. Option D is wrong because Kinesis Firehose is a delivery service that reads from a Kinesis stream; it cannot buffer data before it is written to the stream, so it does not solve the write throughput exceedance at the producer side.

78
MCQmedium

A data engineer is troubleshooting a Kinesis Data Analytics application that processes streaming data. The application is falling behind, and the metric 'MillisBehindLatest' is consistently above 60000. The source Kinesis stream has 10 shards, and the application uses a Flink application with default parallelism. What is the MOST likely cause of the lag?

A.The sink (destination) is throttling writes.
B.The Flink application parallelism is set to 1.
C.The Kinesis stream has too few shards.
D.The retention period of the Kinesis stream is too short.
AnswerB

Default parallelism of 1 causes a single consumer to process all shards.

Why this answer

In Kinesis Data Analytics with Flink, the default parallelism is 1. With 10 shards in the source Kinesis stream, a single parallel task must read from all shards, creating a bottleneck and causing the 'MillisBehindLatest' metric to be consistently high (above 60000). Option A is wrong because while a throttling sink can cause backpressure, the question specifically states the application is falling behind and the metric is high, which is more directly explained by insufficient parallelism.

Option C is wrong because 10 shards is typically sufficient; the issue is how they are consumed. Option D is wrong because the retention period does not affect the lag metric; it only controls how long data is stored.

79
MCQhard

A company uses Amazon Kinesis Data Analytics for Apache Flink to process streaming data. The application reads from a Kinesis data stream and writes results to an S3 bucket. The application is consistently running out of memory and failing. The operator has already increased the Parallelism and TaskManager memory. What is the next BEST step to troubleshoot?

A.Change the processing mode from exactly-once to at-least-once
B.Reduce the number of shards in the source stream
C.Enable Apache Flink metrics in Amazon CloudWatch to monitor heap and checkpoint details
D.Increase the buffer timeout for the S3 sink
AnswerC

Detailed metrics help identify root cause of OOM.

Why this answer

Enabling Apache Flink metrics in Amazon CloudWatch provides visibility into heap usage, checkpoint sizes, and backpressure, which can help diagnose the root cause of memory failures. After increasing parallelism and TaskManager memory without success, the next best step is to monitor these metrics to identify the specific bottleneck. Option A changes processing semantics from exactly-once to at-least-once, which can reduce overhead but does not help diagnose the memory issue and may alter data delivery guarantees.

Option B reduces the number of shards in the source stream, which decreases throughput and might not address the underlying memory consumption. Option D increases the buffer timeout for the S3 sink, which could accumulate more data in memory before writing, potentially worsening the memory problem.

80
MCQeasy

A data engineer notices that an Amazon RDS for PostgreSQL instance's CPU utilization is consistently above 90% during business hours. The database is used for reporting queries. Which action should be taken FIRST to improve performance?

A.Enable Multi-AZ deployment for automatic failover.
B.Enable Performance Insights and review slow queries.
C.Create a read replica to offload reporting queries.
D.Increase the instance size to a larger instance class.
AnswerB

Identifying and optimizing slow queries reduces CPU usage.

Why this answer

The first step in diagnosing high CPU utilization on an RDS for PostgreSQL instance used for reporting queries is to identify the root cause. Enabling Performance Insights provides a detailed view of database load, wait events, and SQL query performance, allowing the data engineer to pinpoint slow or inefficient queries that are consuming CPU resources. Without this diagnostic data, any other action would be premature and could lead to unnecessary cost or complexity.

Exam trap

The trap here is that candidates often jump to scaling solutions (like increasing instance size or adding a read replica) without first diagnosing the root cause, but AWS emphasizes observability and optimization before capacity changes.

How to eliminate wrong answers

Option A is wrong because enabling Multi-AZ deployment improves availability and failover, not performance; it does not reduce CPU utilization or address query performance issues. Option C is wrong because creating a read replica offloads read traffic but does not fix the underlying inefficient queries that are causing high CPU on the source instance; the replica would also suffer from the same workload if queries are poorly optimized. Option D is wrong because increasing the instance size may temporarily mask the problem by providing more CPU capacity, but it does not resolve the root cause of inefficient queries and incurs higher costs without guaranteeing sustained performance improvement.

81
MCQmedium

A data pipeline using AWS Glue ETL jobs is failing intermittently with the error 'Rate exceeded' when writing to an Amazon Redshift cluster. Which action is MOST effective to resolve this issue?

A.Increase the timeout of the Glue ETL job to allow more time for retries.
B.Disable workload management (WLM) concurrency scaling in Redshift.
C.Enable auto-tuning on the Redshift cluster and use concurrency scaling.
D.Change the output file format from Parquet to CSV to reduce write size.
AnswerC

Auto-tuning with concurrency scaling dynamically adds capacity to handle increased write requests.

Why this answer

Enabling auto-tuning on the Redshift cluster and using concurrency scaling dynamically adds cluster capacity to absorb spikes in write requests, directly addressing the 'Rate exceeded' error. This error typically occurs when the Glue ETL job's write throughput exceeds the cluster's current capacity, and concurrency scaling provides additional query queues to handle the load without manual intervention.

Exam trap

The trap here is that candidates often confuse 'Rate exceeded' with a timeout issue and choose to increase the job timeout (Option A), failing to recognize that the error is a capacity constraint on the Redshift side, not a duration issue.

How to eliminate wrong answers

Option A is wrong because increasing the Glue ETL job timeout only allows more time for retries but does not resolve the underlying rate limit; the job will still fail if the Redshift cluster cannot accept writes at the required rate. Option B is wrong because disabling WLM concurrency scaling would reduce the cluster's ability to handle concurrent write operations, making the rate limit issue worse. Option D is wrong because changing the output file format from Parquet to CSV does not reduce the write size significantly (Parquet is already compressed) and does not address the rate limit; the error is about throughput capacity, not file size.

82
MCQhard

A company uses a DynamoDB table with on-demand capacity for a gaming application. During a new game launch, the table experienced throttling errors. The engineer checks CloudWatch metrics and sees that the 'ConsumedWriteCapacityUnits' exceeded the 'ProvisionedWriteCapacityUnits' (on-demand uses the table's previous peak). The application is writing at 50,000 WCU but the table's peak was 30,000 WCU. What should the engineer do to resolve throttling?

A.Add a DynamoDB Accelerator (DAX) cluster in front of the table.
B.Increase the number of partitions by splitting the partition key.
C.Contact AWS Support to pre-warm the table for higher throughput.
D.Switch the table to provisioned capacity and set WCU to 50,000.
AnswerC

Pre-warming increases the table's initial throughput limit to handle spikes.

Why this answer

DynamoDB on-demand capacity automatically scales based on traffic but has a maximum throughput limit determined by the table's previous peak usage. When a new peak exceeds this limit, throttling occurs until the table adapts. Contacting AWS Support to pre-warm the table raises the initial throughput limit, allowing higher bursts immediately.

Option B is incorrect because increasing partition count does not directly increase the overall throughput limit; it affects distribution of throughput. Option A is incorrect because DAX is a caching layer that improves read performance, not write throughput. Option D is incorrect because switching to provisioned capacity would require setting WCU to 50,000, but this changes the billing model and may still require a limit increase; pre-warming is the direct solution for on-demand throttling.

83
Multi-Selectmedium

A data engineer is troubleshooting an AWS Glue ETL job that fails with the error: 'An error occurred while calling o123.pyWriteDynamicFrame. Access Denied when writing to S3 bucket: my-bucket'. The job uses a Glue service role named 'GlueServiceRole'. Which TWO actions should the engineer take to resolve the issue? (Choose TWO.)

Select 2 answers
A.Disable S3 Block Public Access on the bucket.
B.Grant the GlueServiceRole permission to write to the AWS Glue Data Catalog.
C.Check if the S3 bucket policy denies access from the GlueServiceRole.
D.Verify that the IAM policy attached to GlueServiceRole includes s3:PutObject on the bucket.
E.Ensure the Glue job is in the same VPC as the S3 bucket.
AnswersC, D

Bucket policy may override IAM permissions.

Why this answer

The error message indicates an access denied when writing to S3, which can be caused by a bucket policy that explicitly denies the Glue service role's access, even if the IAM policy allows it. Option D is correct because the IAM policy attached to GlueServiceRole must include the s3:PutObject permission on the specific bucket to allow the Glue job to write data.

Exam trap

The trap here is that candidates may confuse S3 access errors with network or VPC issues, but S3 is a global service and access is governed by IAM and bucket policies, not VPC placement.

84
MCQeasy

A data engineer is troubleshooting a failed AWS Glue ETL job that reads from Amazon S3 and writes to Amazon Redshift. The job fails with the error: 'ERROR: Cannot insert a duplicate key into unique index'. The Redshift table has a primary key on the 'id' column. The data in S3 contains multiple records with the same 'id'. The engineer needs to ensure that only the latest record for each 'id' is loaded into Redshift. The data has a 'timestamp' column. Which approach should the engineer take?

A.Use the 'dropDuplicates' transformation in the Glue ETL script, ordering by 'timestamp' descending to keep the latest record for each 'id'.
B.Set the write mode to 'overwrite' in the Glue job to replace the entire Redshift table.
C.Load data into a staging table in Redshift and then use a MERGE operation to insert only new records.
D.Disable primary key constraints on the Redshift table before loading.
AnswerA

This removes duplicate IDs while preserving the most recent record.

Why this answer

Using the AWS Glue 'dropDuplicates' transformation on the 'id' column, ordering by 'timestamp' descending, will remove duplicate 'id' values, keeping the latest record. This is the direct approach within the Glue ETL script. Option B is incorrect because using 'overwrite' mode would replace the entire Redshift table, which would discard existing data and is not a targeted solution for handling duplicates.

Option C is incorrect because loading into a staging table and using MERGE requires additional setup and is not directly part of the Glue ETL script, making it less efficient for the stated requirement. Option D is incorrect because disabling primary key constraints only defers the duplicate key error, and it would compromise data integrity rather than properly deduplicating records.

85
Multi-Selecthard

A data engineer is designing an ETL pipeline that uses AWS Glue to process data from an Amazon DynamoDB table and write results to an S3 bucket in Parquet format. The pipeline must handle schema changes in the source DynamoDB table. Which THREE steps should the engineer take to ensure the pipeline handles schema evolution? (Choose THREE.)

Select 3 answers
A.Use Glue's 'recast' transformation to handle type changes.
B.Set the Glue crawler to update the table's schema in the Data Catalog.
C.Convert the Parquet output to CSV to avoid schema constraints.
D.Partition the data by date and delete old partitions.
E.Use Spark's 'mergeSchema' option when writing to S3.
AnswersA, B, E

recast can change data types to match the target schema.

Why this answer

Options A, B, and E are correct. Option A: Glue's 'recast' transformation can handle type changes by converting data types as needed. Option B: Setting the Glue crawler to update the table's schema in the Data Catalog ensures that new columns or changes in the source DynamoDB table are reflected.

Option E: Using Spark's 'mergeSchema' option when writing to S3 allows Parquet files to have differing schemas, enabling schema evolution. Option C is incorrect because converting Parquet to CSV does not help with schema evolution and may introduce data loss or inefficiency. Option D is incorrect because partitioning by date and deleting old partitions is a data retention strategy, not a schema evolution technique.

86
MCQeasy

A company stores sensitive data in Amazon S3. To meet compliance requirements, they need to ensure that any data older than 1 year is automatically moved to a lower-cost storage class. Which S3 feature should they use?

A.S3 Replication
B.S3 Lifecycle policies
C.S3 Glacier
D.S3 Intelligent-Tiering
AnswerB

Lifecycle policies can transition objects to lower-cost storage classes based on age.

Why this answer

S3 Lifecycle policies allow you to define rules to automatically transition objects between storage classes based on age. Option B is correct. Option A is incorrect because S3 Replication is used to replicate objects across buckets, not to transition storage classes.

Option C is incorrect because S3 Glacier is a storage class, not a feature that automates transitions. Option D is incorrect because S3 Intelligent-Tiering automatically moves data between access tiers based on usage, not on a fixed age threshold like 1 year.

87
Multi-Selecteasy

A data engineer is setting up a data pipeline to ingest streaming data from an IoT fleet. The data must be processed in near real-time and stored in Amazon S3 for analytics. Which THREE AWS services should the engineer consider using?

Select 3 answers
A.Amazon EMR
B.Amazon Kinesis Data Firehose
C.AWS Lambda
D.AWS Glue
E.Amazon Kinesis Data Streams
AnswersB, C, E

Delivers streaming data to S3.

Why this answer

The correct services are Amazon Kinesis Data Streams (option E) for real-time data ingestion, AWS Lambda (option C) for near real-time processing, and Amazon Kinesis Data Firehose (option B) for delivering data to S3. Options A and D are incorrect because Amazon EMR is a big data processing framework not optimized for real-time streaming ingestion, and AWS Glue is primarily a batch ETL service.

88
MCQmedium

A data engineer is monitoring a Redshift cluster that is experiencing slow query performance. The cluster has 4 dc2.large nodes. The engineer notices that disk space usage is at 85% across all nodes. Which action would MOST likely improve query performance?

A.Change the table design to use DISTKEY and SORTKEY.
B.Enable compression on all columns.
C.Increase the number of nodes to 8.
D.Run the VACUUM command to reclaim space.
AnswerC

Adding nodes increases disk capacity and I/O throughput, reducing disk pressure and improving query performance.

Why this answer

At 85% disk usage on dc2.large nodes, the cluster is approaching the threshold where Redshift begins to automatically offload data to Amazon S3, causing significant performance degradation due to increased I/O and network latency. Adding more nodes (option C) increases both compute capacity and total disk space, reducing per-node disk pressure and allowing the cluster to keep more data local for faster query execution.

Exam trap

The DEA-C01 exam often tests the misconception that VACUUM or table design optimizations can resolve capacity-related performance issues, when in fact the immediate root cause is disk pressure triggering S3 offloading, which only scale-out or resize can fix.

How to eliminate wrong answers

Option A is wrong because while DISTKEY and SORTKEY improve query performance by reducing data shuffling and scan ranges, they do not address the immediate bottleneck of high disk usage causing offloading to S3. Option B is wrong because enabling compression reduces storage footprint and I/O, but it is already likely applied or requires a full table reload; it does not solve the immediate capacity issue at 85% usage. Option D is wrong because VACUUM reclaims space from deleted rows and sorts data, but it does not increase total disk capacity; at 85% usage, the fundamental problem is insufficient storage, not fragmentation.

89
MCQmedium

A data engineer uses Amazon EMR to run a Spark job that reads from S3 and writes to HDFS on the cluster. The job fails with an 'OutOfMemoryError: Java heap space' error in the executors. Which parameter adjustment should be made to resolve this?

A.Increase spark.default.parallelism
B.Increase spark.sql.shuffle.partitions
C.Increase spark.executor.memory
D.Increase spark.driver.memory
AnswerC

This directly increases the heap size available to each executor.

Why this answer

The 'OutOfMemoryError: Java heap space' in executors indicates that the executor memory is insufficient for the data being processed. Increasing spark.executor.memory allocates more heap space to each executor, directly addressing the issue. Option A (spark.default.parallelism) controls the number of tasks, not memory.

Option B (spark.sql.shuffle.partitions) affects shuffle partitions but does not increase memory. Option D (spark.driver.memory) is for the driver, not executors.

90
MCQhard

A company uses AWS DMS to migrate a 2 TB Oracle database to Amazon RDS for PostgreSQL. The migration completes successfully, but data validation shows some tables have missing rows. The task is configured for ongoing replication using change data capture (CDC). What is the MOST likely cause of the missing rows?

A.Source database archive log retention period too short
B.Large objects (LOBs) not supported by the target
C.Source tables missing primary keys
D.Insufficient storage on the DMS replication instance
AnswerC

Without primary keys, DMS cannot track changes for CDC, leading to missing rows.

Why this answer

If a table lacks a primary key, DMS cannot uniquely identify rows for CDC, leading to missed changes. Option A is wrong because the endpoint connection is valid (migration completed). Option B is wrong because CDC captures changes from redo logs, not the source database directly.

Option D is wrong because DMS supports large objects with proper configuration.

91
MCQeasy

A data engineer has set up an AWS Lambda function that processes files uploaded to an S3 bucket. The function is triggered by S3 event notifications. However, the function is not being invoked when a file is uploaded. The engineer checks the Lambda function's CloudWatch Logs and finds no execution logs. What should the engineer check FIRST?

A.Check the Lambda function's code for errors.
B.Verify that the Lambda function's IAM role has permissions to read from S3.
C.Verify that the S3 bucket has an event notification configured for the Lambda function.
D.Check if the Lambda function is attached to a VPC.
AnswerC

Without event notification, S3 will not invoke the function.

Why this answer

The correct first step is to verify the S3 event notification configuration (Option C). Since there are no execution logs in CloudWatch, the Lambda function is not being triggered at all. This indicates a problem with the trigger mechanism, not with the function's code, permissions, or network configuration.

Option A (checking code) is premature because code errors would appear in logs after invocation. Option B (IAM role) affects what the function can do during execution, not whether it is invoked. Option D (VPC) affects network access but does not prevent triggering.

Therefore, the S3 bucket's event notification must be checked to ensure it is correctly set up to invoke the Lambda function.

92
MCQmedium

A company uses Amazon Redshift for its data warehouse. A data engineer notices that queries are running slowly and the system's disk space is nearly full. The engineer runs the STV_PARTITIONS view and sees that many slices have high 'tossed' counts. What does this indicate, and what should the engineer do?

A.The tossed rows are permanent and cannot be reclaimed; the engineer should perform a deep copy to a new table.
B.The tossed rows indicate that the sort key is not optimal; redefining the sort key will reduce tossed rows.
C.The tossed rows are due to data skew; redistribute the table on a different distribution key.
D.The tossed rows are deleted rows that need to be reclaimed by running VACUUM.
AnswerD

VACUUM removes deleted rows and reclaims disk space, improving query performance.

Why this answer

The STV_PARTITIONS view shows 'tossed' rows, which are rows that have been deleted or updated and are waiting to be reclaimed by a VACUUM operation. High tossed counts indicate wasted disk space, and running VACUUM reclaims that space, improving performance. Option D correctly describes this.

Option A is incorrect because tossed rows are not permanent; they can be reclaimed. Option B is incorrect because tossed rows are not related to sort key optimization. Option C is incorrect because tossed rows are not caused by data skew; data skew is about uneven distribution.

93
MCQeasy

A data engineer notices that a nightly AWS Glue ETL job has been failing for the past three days with the error 'Unable to locate credentials'. The job uses an IAM role for execution. What is the most likely cause of this error?

A.The IAM role does not have an access key attached.
B.The S3 bucket name in the job parameters is misspelled.
C.The IAM role's trust policy does not include glue.amazonaws.com as a trusted entity.
D.The JDBC connection string contains an incorrect password.
AnswerC

Without the trust policy, Glue cannot assume the role and gets 'Unable to locate credentials'.

Why this answer

The error 'Unable to locate credentials' indicates that the AWS Glue job cannot obtain AWS credentials to authenticate API calls. Since the job uses an IAM role for execution, the most likely cause is that the trust policy of that IAM role does not include 'glue.amazonaws.com' as a trusted entity. Without this trust relationship, AWS Glue cannot assume the role and thus has no credentials to sign requests.

Exam trap

AWS often tests the distinction between IAM role trust policies (who can assume the role) and IAM role permission policies (what actions the role can perform), and candidates mistakenly focus on permission policies when the error is about credential acquisition.

How to eliminate wrong answers

Option A is wrong because IAM roles do not use access keys; they use temporary security credentials obtained via the AWS Security Token Service (STS). Option B is wrong because a misspelled S3 bucket name would cause a 'NoSuchBucket' or 'Access Denied' error, not a credentials-related error. Option D is wrong because an incorrect JDBC password would result in a connection failure or authentication error from the database, not an 'Unable to locate credentials' error from AWS.

94
MCQhard

An Amazon RDS for PostgreSQL instance is experiencing high CPU utilization and slow query performance. The data engineer suspects that a specific query is causing the problem. The engineer wants to identify the query and analyze its execution plan. Which steps should the engineer take?

A.Enable CloudWatch Logs for the RDS instance and search for slow query logs.
B.Enable pg_stat_statements in the PostgreSQL parameter group and query the pg_stat_statements view.
C.Enable Enhanced Monitoring and analyze the CPU metrics.
D.Use RDS Performance Insights to identify the top queries.
AnswerB

Enabling pg_stat_statements allows collection of query execution statistics; querying the pg_stat_statements view identifies high‑load queries, and EXPLAIN provides the execution plan.

Why this answer

Enabling pg_stat_statements in the PostgreSQL parameter group and querying the pg_stat_statements view provides detailed query execution statistics (e.g., total execution time, calls, rows) and helps identify high‑load queries. The execution plan can then be obtained by running EXPLAIN on the identified query. Option A is incorrect because CloudWatch Logs captures logs but does not provide real‑time query performance details.

Option C is incorrect because Enhanced Monitoring shows OS‑level metrics (CPU, memory), not query‑level plans or statistics. Option D is incorrect because RDS Performance Insights identifies top queries by wait events and load but does not directly expose the execution plan; the execution plan is best obtained via EXPLAIN on the specific query identified from pg_stat_statements.

95
MCQmedium

Refer to the exhibit. A data engineer has an IAM policy attached to an IAM role used by an AWS Glue job. The Glue job reads from S3 bucket 'example-bucket' and writes to an S3 bucket 'output-bucket'. The job fails with an 'Access Denied' error when writing to 'output-bucket'. What is the MOST likely cause?

A.The policy does not allow s3:PutObject on any bucket.
B.The policy does not allow s3:PutObject on 'output-bucket'.
C.The policy does not allow s3:GetObject on 'output-bucket'.
D.The policy has a condition that restricts s3:PutObject to 'example-bucket'.
AnswerB

The resource is only example-bucket/*.

Why this answer

The policy only allows s3:PutObject on 'example-bucket/*', not on 'output-bucket/*'. The job needs permission on the output bucket. Option A is incorrect because s3:PutObject is allowed on example-bucket, but not on output-bucket.

Option C is incorrect because there is no condition that restricts PutObject to example-bucket. Option D is incorrect because the policy allows s3:GetObject on example-bucket, which is for reading.

96
Multi-Selectmedium

A data engineer is designing a disaster recovery strategy for an Amazon RDS for PostgreSQL database that is used in a data pipeline. The database must have a Recovery Point Objective (RPO) of less than 1 minute and a Recovery Time Objective (RTO) of less than 5 minutes. Which TWO actions should the engineer take?

Select 2 answers
A.Take frequent manual snapshots and copy them to another Region.
B.Enable automated backups with point-in-time recovery.
C.Enable Multi-AZ deployment with a standby instance.
D.Create a read replica in a different Availability Zone.
E.Use cross-Region replication with Amazon Aurora Global Database.
AnswersB, C

Allows recovery to any point within retention period, meeting RPO.

Why this answer

Options B and C are correct. Multi-AZ deployment with a standby instance enables automatic failover, typically achieving an RTO of under 1-2 minutes. Combined with automated backups and point-in-time recovery, which allow database restoration to any point within seconds (RPO of less than 1 minute), the requirements are met.

Option A is incorrect because manual snapshots are not frequent enough to guarantee RPO under 1 minute and restoring from a snapshot takes longer than 5 minutes. Option D is incorrect because a read replica in a different Availability Zone is not designed for automatic failover; it is for read scaling and requires manual promotion. Option E is incorrect because Amazon Aurora Global Database is a different service; this question is about Amazon RDS for PostgreSQL, and cross-Region replication for RDS does not provide automatic failover and typically has higher RTO.

97
MCQhard

A data engineer is troubleshooting an access issue. A user has the IAM policy shown in the exhibit. The user attempts to upload an object to `s3://data-lake-bucket/confidential/report.pdf`. What will happen?

A.The upload will fail with an 'Access Denied' error.
B.The upload will succeed because the Deny statement is not valid without a condition.
C.The upload will succeed because the Allow statement is more specific than the Deny.
D.The upload will succeed because the user has s3:PutObject permission on the bucket.
AnswerA

The Deny statement explicitly denies all s3 actions on the confidential prefix, taking precedence over the Allow.

Why this answer

The explicit Deny statement in the IAM policy overrides the Allow statement, so the user is denied permission to upload to the 'confidential' path. Therefore, the upload will fail with an 'Access Denied' error, making option A correct.

98
MCQeasy

A data engineer is running an Amazon EMR cluster with Spark to process log files. The cluster uses instance fleets with m5.xlarge core nodes. The engineer observes that the Spark job is running slower than expected. CloudWatch metrics show that the cluster's CPU utilization is below 20% but memory utilization is near 90%. Which configuration change would most likely improve performance?

A.Use memory-optimized instances (r5.xlarge) for core nodes.
B.Increase the number of core nodes from 5 to 10.
C.Increase the number of Spark shuffle partitions.
D.Decrease the number of core nodes to reduce overhead.
AnswerA

r5 instances have higher memory-to-CPU ratio, reducing memory pressure and spills.

Why this answer

High memory utilization (90%) with low CPU (<20%) indicates that the data does not fit in memory, causing frequent spills to disk. Using memory-optimized instances (r5.xlarge) provides more memory per vCPU compared to m5.xlarge, allowing more data to be kept in memory and reducing spills. Option B is incorrect because increasing the number of core nodes adds more CPU and memory overall, but each node still has the same memory-to-CPU ratio (8 GB per 4 vCPUs for m5.xlarge), so memory pressure per node remains.

Option C is incorrect because the issue is insufficient memory, not the number of shuffle partitions; adjusting shuffle partitions does not increase available memory. Option D is incorrect because decreasing the number of core nodes reduces total cluster memory, worsening the memory bottleneck.

99
MCQhard

A company runs a data pipeline using AWS Step Functions to orchestrate multiple AWS Lambda functions and AWS Glue jobs. The pipeline processes large CSV files from Amazon S3, transforms them, and loads them into Amazon Redshift. Recently, the pipeline has been failing intermittently with a 'StateMachineExecutionLimitExceeded' error. The error occurs when multiple pipeline runs are triggered simultaneously. The current execution limit for the state machine is 1000. The team expects up to 200 concurrent executions during peak hours. Which action should the team take to resolve the issue?

A.Increase the execution timeout for the state machine to 1 hour.
B.Increase the Lambda function concurrency limits to allow more parallel processing.
C.Implement a queue (e.g., Amazon SQS) to buffer the pipeline triggers and process them sequentially.
D.Request a service quota increase for the maximum number of state machine executions from AWS Support.
AnswerD

The default limit is 1000; increasing it to 2000 would accommodate the expected concurrency.

Why this answer

The error indicates the state machine execution limit has been reached. The team should request a limit increase from AWS Support. Option A is wrong because reducing concurrency does not solve the limit issue; it only reduces the number of concurrent executions.

Option B is wrong because increasing Lambda concurrency limits does not affect Step Functions execution limits. Option C is wrong because the error is not about execution timeout; it's about exceeding the maximum number of concurrent executions.

100
MCQeasy

A data engineer is troubleshooting a slow Amazon Redshift query. The EXPLAIN plan shows a 'Seq Scan' on a large table. What is the most likely cause?

A.The cluster has too many nodes.
B.There are too many concurrent queries.
C.The table does not have a proper sort key defined.
D.The workload management (WLM) queue is misconfigured.
AnswerC

Without a sort key, Redshift performs a full table scan (Seq Scan) instead of a range-restricted scan.

Why this answer

A 'Seq Scan' in the EXPLAIN plan indicates a full table scan, which typically occurs when the table does not have a proper sort key defined. Without a sort key, Redshift cannot use zone maps to skip blocks, resulting in a sequential scan. Option A (too many nodes) would not cause a Seq Scan; it might improve performance if properly distributed.

Option B (concurrent queries) can cause slowdown but not specifically a Seq Scan. Option D (WLM queue misconfiguration) affects query queuing and concurrency, not the scan type.

101
MCQmedium

A company uses Amazon Athena to query data stored in an S3 bucket. The data is partitioned by year, month, day, and hour. The data engineer notices that queries are scanning a large amount of data even with a WHERE clause on the partition columns. What is the MOST likely cause?

A.The data has too many partitions, causing overhead.
B.The table does not have partitions defined in the AWS Glue Data Catalog.
C.The S3 bucket uses the S3 Glacier storage class.
D.The data files are compressed with GZIP.
AnswerB

If partitions are not defined in the AWS Glue Data Catalog, Athena cannot perform partition pruning, leading to full table scans.

Why this answer

If partitions are not defined in the table, Athena cannot perform partition pruning. Option A is wrong because too many partitions improve pruning, not hinder scanning. Option C is wrong because S3 storage class does not affect scanning.

Option D is wrong because compressed files reduce scan size, not increase.

102
Multi-Selecthard

A data engineer is designing a disaster recovery plan for an Amazon Redshift data warehouse. The cluster is in us-east-1 and must be recoverable in us-west-2 with minimal data loss. Which THREE actions should the engineer take? (Choose THREE)

Select 3 answers
A.Create manual snapshots and copy them to us-west-2
B.Deploy Redshift in a multi-AZ configuration
C.Enable Redshift concurrent scaling
D.Schedule automated snapshots with a retention period
E.Configure automated snapshot copy to us-west-2
AnswersA, D, E

Manual snapshots can be copied across regions.

Why this answer

Options A, D, and E are correct. To recover an Amazon Redshift cluster in a different region (us-west-2) from us-east-1, you need to have snapshots available in the target region. Manual snapshots (option A) can be copied to us-west-2 and are retained even if the cluster is deleted.

Automated snapshots with a retention period (option D) ensure regular backups, and by configuring automated snapshot copy to us-west-2 (option E), these snapshots are automatically replicated to the target region for cross-region recovery. Option B (multi-AZ) provides high availability within a single region but does not help with cross-region disaster recovery. Option C (concurrent scaling) improves query performance under load, not disaster recovery.

103
MCQhard

A data engineer at a financial services company manages an AWS Glue ETL pipeline that processes transaction data from Amazon S3 to Amazon Redshift for reporting. The pipeline runs every hour and uses a Glue job that reads Parquet files, performs transformations in Spark, and writes to Redshift using the JDBC connector. Recently, the job has been failing intermittently with the error: 'java.sql.BatchUpdateException: ERROR: null value in column "transaction_id" violates not-null constraint'. The data engineer has verified that the source Parquet files do contain non-null values for transaction_id. The job uses a DynamicFrame and applies a mapping to rename columns. The engineer also noticed that the failure occurs only during peak hours when there is high concurrency on Redshift. Which course of action should the engineer take to resolve this issue?

A.Add a filter in Glue to remove rows with null transaction_id.
B.Increase the Redshift WLM concurrency scaling to handle more queries.
C.Review the Glue job's mapping transformation to ensure transaction_id is correctly mapped and not dropped.
D.Increase the number of Glue workers to handle peak-hour load.
AnswerC

The error shows that transaction_id is being written as null to Redshift despite source files having non-null values. Reviewing and correcting the Glue job's mapping transformation to ensure transaction_id is correctly mapped and not dropped will resolve the issue.

Why this answer

The error indicates that transaction_id is being nullified or dropped during the Glue job's mapping transformation. Even though source files have non-null values, the mapping could be incorrectly mapping or omitting the column, causing nulls to be written to Redshift. The failure during peak hours is coincidental; the root cause is the mapping logic.

Option A is incorrect because filtering nulls would not fix the mapping error and could discard valid data. Option B is incorrect because increasing Redshift WLM concurrency scaling does not address the null constraint violation. Option D is incorrect because more Glue workers do not fix the transformation issue; the problem is data quality, not capacity.

104
Multi-Selecthard

A company is migrating its on-premises data warehouse to Amazon Redshift. The data includes tables with up to 100 columns and 500 million rows. The migration involves a full load followed by incremental updates. The company needs to minimize downtime during the final cutover. Which THREE strategies should the data engineer use to facilitate the migration? (Choose THREE.)

Select 3 answers
A.Increase the number of WLM queues to allow more concurrent loads.
B.Use the COPY command to load data from Amazon S3.
C.Use columnar format (e.g., Parquet) for the data files in S3.
D.Run VACUUM and ANALYZE commands after loading the data.
E.Disable distribution keys on the target tables to simplify loading.
AnswersB, C, D

COPY is optimized for bulk data loading into Redshift.

Why this answer

The COPY command is the most efficient way to load data from Amazon S3 into Redshift, enabling high-speed parallel ingestion. Option C is correct because using columnar formats like Parquet minimizes data scanned and reduces storage costs, speeding up data transfer. Option D is correct because running VACUUM and ANALYZE after loading reorganizes data and updates statistics, optimizing query performance.

Option A is incorrect because increasing WLM queues does not improve COPY performance; COPY operations bypass WLM. Option E is incorrect because disabling distribution keys can cause data skew and degraded performance; proper distribution keys are essential for efficient cluster operation.

105
MCQmedium

A data engineer is designing a data pipeline that processes sensitive personal data. The data is ingested via Amazon Kinesis Data Firehose and stored in Amazon S3. The pipeline must ensure that the data is encrypted at rest and in transit. The engineer also needs to audit access to the data. Which combination of services meets these requirements?

A.AWS KMS for encryption at rest, Kinesis Data Analytics for in-transit encryption, and AWS CloudTrail for auditing.
B.AWS KMS for encryption at rest, Amazon CloudWatch Logs for auditing, and TLS for in-transit encryption.
C.S3 server-side encryption (SSE-S3) for at-rest encryption, HTTPS for in-transit encryption, and AWS CloudTrail for auditing.
D.S3 client-side encryption, AWS Config for auditing, and TLS for in-transit encryption.
AnswerC

SSE-S3 encrypts objects at rest, HTTPS encrypts data in transit, and CloudTrail logs S3 API operations for auditing.

Why this answer

S3 server-side encryption (SSE-S3) encrypts data at rest in S3. HTTPS (TLS) encrypts data in transit between the data source and Kinesis Data Firehose, and between Firehose and S3. AWS CloudTrail logs S3 API calls (e.g., GetObject, PutObject) for auditing data access.

Option A is incorrect because Kinesis Data Analytics does not provide encryption in transit; it processes data but does not handle encryption. Option B is incorrect because CloudWatch Logs is for monitoring and storing logs, not for auditing data access; CloudTrail is the appropriate service for auditing. Option D is incorrect because client-side encryption requires manual key management and does not use AWS-managed encryption; AWS Config tracks configuration changes, not data access.

106
Multi-Selecthard

A company runs an Amazon Redshift cluster for data warehousing. The data engineering team notices that the 'Amazon Redshift Data API' is timing out when executing long-running queries. The queries typically take more than 10 minutes to complete. The team wants to ensure that the queries can complete without timeout and that the results are retrievable. Which TWO steps should the team take? (Choose TWO.)

Select 2 answers
A.Set the 'QueryExecutionTimeout' parameter in the Data API call to 30 minutes.
B.Increase the 'timeout' parameter in the Redshift cluster configuration.
C.Use the 'GetStatementResult' operation to retrieve results after the query completes.
D.Set the 'max_execution_time' parameter in the Redshift parameter group to 30 minutes.
E.Use the 'StatementName' parameter to run the query asynchronously and poll for completion.
AnswersC, E

This is the correct way to get results after the statement finishes.

Why this answer

Options C and E are correct. The Amazon Redshift Data API has a default timeout of 10 minutes for a single API call. To handle queries that take longer, you can run the query asynchronously by using the StatementName parameter (option E).

This allows the query to continue running even if the initial API call times out, and you can poll for completion using the DescribeStatement operation. Once the query completes, you can retrieve the results using the GetStatementResult operation (option C). Option A is incorrect because QueryExecutionTimeout is not a valid parameter for the Data API.

Option B is incorrect because increasing the timeout parameter in the Redshift cluster configuration does not affect the Data API timeout. Option D is incorrect because there is no max_execution_time parameter in Redshift; the relevant parameter is statement_timeout, which controls how long a query can run before being canceled, but it does not address the Data API timeout.

107
Multi-Selectmedium

A company uses Amazon EMR to run Spark jobs on data stored in Amazon S3. The data engineer notices that the jobs are running slower than expected. The engineer suspects that the S3 storage class might be affecting performance. Which THREE factors can impact read performance from S3? (Choose three.)

Select 3 answers
A.Use of S3 Transfer Acceleration.
B.Use of S3 Select to retrieve only a subset of data.
C.Use of S3 Object Lock.
D.Average object size in S3 bucket.
E.Data stored in compressed format (e.g., GZIP, Snappy).
AnswersB, D, E

S3 Select can retrieve only a subset of data (e.g., using SQL expressions), reducing data scanned and improving read performance.

Why this answer

Options B, D, and E are correct. B: S3 Select can retrieve only a subset of data, reducing the amount scanned and improving read performance. D: Larger average object sizes allow better throughput by leveraging parallel requests and reducing overhead.

E: Storing data in compressed formats reduces the amount of data transferred, improving read performance. Option A is incorrect because S3 Transfer Acceleration is designed to improve upload speed over long distances, not read performance. Option C is incorrect because S3 Object Lock prevents object deletion or overwrite but does not affect read performance.

Exam trap

A common mistake is thinking S3 Transfer Acceleration improves read performance, but it only speeds up uploads.

108
MCQhard

Refer to the exhibit. A company has an S3 bucket 'my-data-lake' with the lifecycle policy shown. Objects under the 'logs/' prefix are being moved to GLACIER after 30 days and expire after 365 days. A data engineer notices that objects older than 365 days are still present in the bucket and are not being deleted. What is the most likely cause?

A.Lifecycle expiration does not apply to objects in GLACIER storage class
B.The rule status is disabled
C.The prefix filter does not match the objects
D.The expiration days count from the transition date, not the object creation date
AnswerD

Correct. The expiration days are counted from the transition date, so objects transitioned after 30 days will expire 365 days later (395 days from creation), causing objects older than 365 days from creation to still be present.

Why this answer

When a lifecycle rule includes both transition to GLACIER and expiration, the expiration days count from the transition date, not from the object creation date. In this scenario, objects transition to GLACIER at 30 days, so the expiration at 365 days actually triggers after 395 days from creation (30 + 365). Therefore, objects older than 365 days from creation but younger than 395 days are not yet expired, explaining why they remain.

Exam trap

A common trap is to assume that expiration days always count from the object creation date. However, when a transition action is present, the expiration counter resets to the transition date.

109
MCQhard

A company runs a data lake on Amazon S3 with AWS Lake Formation for access control. The data lake contains sensitive customer information. A data scientist needs to query the data using Amazon Athena. The data scientist has been granted SELECT permission on the database and tables via Lake Formation. However, when the data scientist runs a query in Athena, they receive an error: 'Access denied. Please check your permissions.' The IAM role used by Athena has the following permissions: s3:GetObject, s3:ListBucket, and lakeformation:GetDataAccess. The Lake Formation admin has verified that the data scientist is a member of a Lake Formation data lake location and has been granted 'Describe' and 'Select' permissions on the table. What is the most likely reason for the access denied error?

A.The data scientist is not assigned to the correct Lake Formation tag.
B.The S3 bucket policy does not grant the Athena IAM role access to the S3 location.
C.The Athena IAM role is missing lakeformation:GetEffectivePermissions permission.
D.The data scientist's IAM user lacks the necessary S3 permissions.
AnswerB

Lake Formation permissions are separate from S3 bucket policies; the bucket policy must allow the IAM role to read the data.

Why this answer

The access denied error occurs because the IAM role used by Athena lacks the necessary S3 permissions, even though Lake Formation has granted SELECT and DESCRIBE permissions. Lake Formation handles permissions at the metadata level, but the actual data access still requires S3 bucket policy or IAM policy to allow s3:GetObject and s3:ListBucket for the specific S3 location. If the bucket policy does not grant the Athena IAM role access to the S3 location, the request will be denied.

Option B correctly identifies this issue. Option A is incorrect because Lake Formation tag-based access control is not required for this scenario; the data scientist already has direct table permissions. Option C is incorrect because lakeformation:GetEffectivePermissions is not needed; the role already has lakeformation:GetDataAccess.

Option D is incorrect because Athena uses the IAM role assigned to the workgroup, not the data scientist's individual IAM user.

110
MCQmedium

A data engineering team notices that an Amazon Kinesis Data Stream is frequently exceeding its shard write throughput limit, causing throttling. The team needs a long-term solution to handle variable write traffic without manual intervention. Which action should the team take?

A.Configure the Kinesis Client Library to throttle consumption.
B.Increase the number of shards manually during peak hours.
C.Use Amazon Kinesis Data Firehose to buffer records before delivery to the stream.
D.Implement a buffer using Amazon S3 and AWS Lambda that aggregates records and writes to Kinesis in batches.
AnswerD

This buffers writes and reduces throttling.

Why this answer

Using Amazon S3 and AWS Lambda to buffer and batch records before writing to Kinesis smooths out traffic spikes, reducing throttling without manual intervention. Option A is incorrect because the Kinesis Client Library (KCL) is used by consumers, not producers; it cannot throttle write throughput. Option B is incorrect because manually increasing shards during peak hours requires manual intervention and is not a long-term automated solution.

Option C is incorrect because Amazon Kinesis Data Firehose is designed to deliver streaming data to destinations like S3, Redshift, or Elasticsearch, not to buffer records before writing to a Kinesis stream.

111
MCQeasy

Refer to the exhibit. A data engineer is troubleshooting an IAM policy attached to a user who cannot list objects in the S3 bucket 'example-bucket'. What is the most likely reason?

A.The bucket policy explicitly denies access to the user.
B.The resource ARN for the bucket is incorrect; it should be 'arn:aws:s3:::example-bucket/*'.
C.The policy includes s3:GetObject but not s3:ListObjects.
D.The policy does not include the s3:ListBucket action.
AnswerA

An explicit deny overrides the IAM policy.

Why this answer

The IAM policy shown in the exhibit grants s3:ListBucket on the bucket and s3:GetObject on objects, which should allow listing. However, if the user still cannot list objects, the most likely reason is that a bucket policy explicitly denies access to that user. Bucket policies are evaluated separately from IAM policies, and an explicit deny in a bucket policy overrides any allow.

Options B, C, and D are incorrect because the IAM policy in the exhibit includes the correct resource ARN (arn:aws:s3:::example-bucket for the bucket and arn:aws:s3:::example-bucket/* for objects), includes s3:ListBucket action, and does not require s3:GetObject for listing.

112
MCQhard

A company uses AWS Lake Formation to manage access to data in S3. A data analyst reports being unable to query a table in Amazon Athena, receiving an 'Access Denied' error. The analyst has SELECT permission on the table in Lake Formation. What additional configuration is MOST likely causing the issue?

A.Athena does not have permission to access the Glue Data Catalog
B.The IAM role used by Athena does not have S3 GetObject permission on the underlying data
C.The analyst does not have DESCRIBE permission
D.The table is not registered with Lake Formation
AnswerB

Lake Formation grants SELECT, but S3 bucket policies or IAM may still block access.

Why this answer

In AWS Lake Formation, even when a user has SELECT permission on a table, the IAM role that Athena uses must have S3 GetObject permission on the underlying data files. Lake Formation manages permissions at the metadata level, but the actual data access is enforced by S3 bucket policies and IAM. Without GetObject permission, Athena fails with 'Access Denied'.

Option A is incorrect because Athena typically has access to the Glue Data Catalog if the table is visible; the error is about data access. Option C is incorrect because SELECT permission usually includes DESCRIBE, and the error message is about access denied, not missing describe. Option D is incorrect because the table is registered with Lake Formation since the analyst has SELECT permission.

113
Multi-Selecteasy

A data engineer needs to transfer 50 TB of data from an on-premises Hadoop cluster to Amazon S3. The network bandwidth is limited to 500 Mbps. Which TWO methods are appropriate for this transfer? (Choose TWO.)

Select 2 answers
A.Set up an AWS Direct Connect connection for higher bandwidth.
B.Order an AWS Snowball Edge device to physically ship the data.
C.Use S3 Transfer Acceleration to upload over the internet.
D.Use Amazon Kinesis Data Firehose to stream the data.
E.Use AWS DataSync to transfer data over the network.
AnswersB, E

Snowball is ideal for large datasets with low bandwidth.

Why this answer

Options B and E are correct. AWS Snowball Edge is a physical device suitable for transferring large amounts of data (like 50 TB) when network bandwidth is limited (500 Mbps). AWS DataSync can also transfer data over the network with built-in optimization, making it appropriate for this scenario.

Options A and C are incorrect: AWS Direct Connect provides a dedicated connection but does not increase bandwidth beyond 500 Mbps, and S3 Transfer Acceleration speeds up transfers but still relies on the same limited bandwidth. Option D is incorrect: Amazon Kinesis Data Firehose is designed for real-time streaming, not bulk data transfer.

114
MCQeasy

A data engineer notices that an Amazon S3 bucket policy is overly permissive. What is the best practice to restrict access while maintaining required permissions?

A.Grant full S3 access using a new IAM policy.
B.Write a new bucket policy that denies all actions.
C.Use an S3 blocklist to restrict access.
D.Attach the AWS managed policy AmazonS3ReadOnlyAccess to the IAM user.
AnswerB

Writing a new bucket policy that denies all actions directly restricts the overly permissive bucket policy. While this may be too restrictive initially, it is the only option that modifies the bucket policy to immediately stop the over-permissive access. You can then add specific allows to maintain required permissions.

Why this answer

The bucket policy is overly permissive, so writing a new bucket policy that denies all actions immediately restricts all access. While this may temporarily block required permissions, it is the most direct way to address the bucket policy issue; you can then refine the policy to allow only necessary actions. Option D does not change the bucket policy and thus does not resolve the problem.

Option A makes permissions even more permissive. Option C is not a standard AWS feature.

Exam trap

Do not confuse IAM policies with bucket policies. Attaching an IAM policy to a user does not override an overly permissive bucket policy; both must be considered together.

115
MCQmedium

A data engineer is tasked with designing a disaster recovery solution for a data lake stored in Amazon S3. The data lake contains sensitive customer data that must be replicated to a different AWS Region. The engineer needs to ensure that all objects, including those with encryption using SSE-KMS, are replicated. Which solution meets the requirements?

A.Use S3 Batch Operations to copy objects to the destination bucket.
B.Enable S3 Cross-Region Replication (CRR) with the appropriate KMS key and IAM role.
C.Use S3 Transfer Acceleration to copy objects across regions.
D.Use the AWS CLI s3 sync command scheduled in a cron job.
AnswerB

CRR supports SSE-KMS with proper configuration.

Why this answer

S3 Cross-Region Replication (CRR) can replicate objects encrypted with SSE-KMS if the appropriate KMS key is configured and the IAM role has the necessary permissions for encryption operations. Option A (S3 Batch Operations) is designed for one-time bulk actions, not ongoing replication. Option C (S3 Transfer Acceleration) only speeds up data transfer but does not provide replication.

Option D (AWS CLI s3 sync) is a manual, scheduled copy process and does not offer automatic, continuous replication.

116
MCQhard

A company uses AWS Glue to run ETL jobs that process data from Amazon S3 and write results to Amazon Redshift. The Glue job uses the JDBC connection to Redshift. Recently, the job has been failing intermittently with the error: 'java.sql.SQLException: [Amazon](500310) Invalid operation: INSERT has more expressions than target columns;' The Glue job writes to a staging table in Redshift before performing a merge into the final table. The staging table schema matches the source data. The error occurs only on some days and affects different columns each time. The data engineer suspects that the source data occasionally contains extra columns due to a schema drift in the upstream data producer. Which approach should the data engineer take to handle this issue robustly?

A.Skip any records that have extra columns by adding a conditional check in the Glue script.
B.Use a Glue DynamicFrame and apply the resolveChoice method to make the schema consistent.
C.Manually update the Redshift staging table schema whenever the source data changes.
D.Use a Glue DynamicFrame and apply the dropFields method to remove extra columns before writing.
AnswerB

resolveChoice can handle schema drift by casting or dropping columns, making the job resilient.

Why this answer

Glue DynamicFrames can automatically handle schema drift using the `resolveChoice` method, which allows you to specify how to handle columns that appear inconsistently across records (e.g., making them null, casting to a common type, or dropping them). This directly addresses the intermittent error caused by extra columns in the source data without requiring manual schema updates or fragile conditional logic.

Exam trap

The trap here is that candidates may confuse `dropFields` (which removes specific columns statically) with `resolveChoice` (which handles dynamic schema drift), leading them to choose Option D even though it cannot adapt to varying extra columns across different days.

How to eliminate wrong answers

Option A is wrong because skipping records with extra columns would result in data loss and does not address the root cause—the schema mismatch between the source and the staging table. Option C is wrong because manually updating the Redshift staging table schema whenever the source data changes is not scalable, error-prone, and defeats the purpose of an automated ETL pipeline. Option D is wrong because `dropFields` removes specific named columns statically at coding time, but the error occurs on different columns each day, so a dynamic approach like `resolveChoice` is needed.

117
MCQmedium

A data engineering team notices that an AWS Glue ETL job fails intermittently with a 'ThrottlingException' error. The job reads from an Amazon S3 bucket and writes to an Amazon Redshift table. What is the MOST likely cause of this error?

A.The S3 bucket's request rate is exceeding the bucket's performance limits.
B.The Redshift cluster's write throughput is exceeding its provisioned capacity.
C.The Glue job is exceeding the maximum number of concurrent runs allowed.
D.The Glue job's allocated memory is insufficient for the data volume.
AnswerB

Redshift throttles writes when the cluster's I/O capacity is exceeded.

Why this answer

The 'ThrottlingException' error occurs when the rate of API requests exceeds the allowed limit. In this scenario, the Glue job writes to Amazon Redshift. Redshift has a provisioned write throughput capacity; if the Glue job attempts to write data faster than Redshift can handle, Redshift throttles the requests, resulting in a ThrottlingException.

This is the most likely cause. Option A is incorrect because S3 throttling would manifest as a different error (e.g., 'SlowDown' or 'RequestTimeout'). Option C is incorrect because Glue job concurrency limits would cause a 'ConcurrentRunsExceededException' or similar, not ThrottlingException.

Option D is incorrect because insufficient memory would typically lead to an 'OutOfMemoryError' or job failure, not a ThrottlingException.

118
MCQhard

A company uses Amazon Kinesis Data Firehose to deliver streaming log data to an Amazon S3 bucket. The delivery stream uses dynamic partitioning with a custom prefix. Recently, the delivery stream has been failing with the error 'InvalidArgumentException: The number of partitions exceeds the limit'. What is the likely cause?

A.The incoming data contains more distinct partition key values than the allowed limit.
B.The S3 bucket has a bucket policy that restricts the number of prefixes.
C.The buffer size and interval are set too low, causing many small files.
D.The data volume exceeds the maximum throughput of the delivery stream.
AnswerA

Firehose dynamic partitioning has a limit on distinct partition values per batch.

Why this answer

The error 'InvalidArgumentException: The number of partitions exceeds the limit' occurs when Kinesis Data Firehose dynamic partitioning receives more distinct partition key values than the allowed limit (default 500 distinct values per stream). Option A correctly identifies this cause. Option B is wrong because S3 bucket policy restrictions would cause AccessDenied errors, not partition limit errors.

Option C is wrong because buffer size and interval affect file size and delivery frequency, not partition count. Option D is wrong because throughput limits cause ProvisionedThroughputExceededException, not partition limit errors.

119
MCQmedium

A company uses Amazon Kinesis Data Firehose to deliver streaming data to an Amazon S3 bucket. The data is then processed by a scheduled AWS Glue ETL job that loads it into an Amazon Redshift table. Recently, the Glue job has been failing with the error: 'S3ServiceException: Access Denied'. The Firehose delivery stream is configured with a prefix and error logging to the same S3 bucket. The Glue job uses the same IAM role that has s3:GetObject and s3:ListBucket permissions on the bucket. What is the most likely cause?

A.The Glue job expects a different data format than what Firehose writes.
B.The Glue job's IAM role does not have s3:GetObjectVersion permission.
C.The Glue job is using the wrong IAM role that does not have permissions to the S3 bucket.
D.The S3 bucket has default encryption enabled with AWS KMS (SSE-KMS), and the Glue job's IAM role lacks kms:Decrypt permission.
AnswerD

SSE-KMS requires kms:Decrypt permission; missing it causes access denied when reading.

Why this answer

Firehose uses SSE-S3 by default unless configured otherwise. If the S3 bucket has default encryption enabled with SSE-KMS, Firehose will use that encryption, but the Glue job's IAM role may lack kms:Decrypt permission for the KMS key. The error 'Access Denied' when reading from S3 often indicates encryption permission issues.

Option A is wrong because the Glue job can read from S3 with the current permissions if no encryption is involved. Option B is wrong because the error is about access, not schema. Option C is wrong because the Glue job can use the same role as Firehose, but the role may not have KMS permissions.

120
Multi-Selectmedium

A data engineer is troubleshooting an AWS Glue job that fails with 'java.lang.OutOfMemoryError: Java heap space'. The job processes a large dataset. Which TWO configuration changes should the engineer consider to resolve this issue? (Choose TWO.)

Select 2 answers
A.Change the output format from Parquet to CSV.
B.Increase the Spark shuffle partitions configuration (spark.sql.shuffle.partitions).
C.Reduce the number of partitions in the source data.
D.Increase the number of DPUs allocated to the Glue job.
E.Disable job bookmarks to avoid incremental processing.
AnswersB, D

More partitions reduce data per partition, lowering memory usage.

Why this answer

Options B and D are correct. Increasing Spark shuffle partitions (B) reduces the amount of data shuffled per partition, lowering memory pressure and preventing heap overflow. Increasing the number of DPUs (D) allocates more memory and compute resources to the Glue job, directly addressing heap space limitations.

Option A is incorrect because changing the output format from Parquet to CSV does not reduce memory usage and may increase it due to lack of compression. Option C is incorrect because reducing the number of source partitions can increase partition size, worsening memory issues. Option E is incorrect because disabling job bookmarks does not affect memory usage; it may cause processing of already processed data but doesn't resolve heap space.

121
MCQeasy

A data engineer needs to monitor the number of Amazon S3 PUT requests that result in a 403 AccessDenied error. Which AWS service should be used to capture the necessary data?

A.Amazon CloudWatch S3 request metrics
B.Amazon S3 server access logs
C.AWS Config
D.AWS CloudTrail data events
AnswerD

AWS CloudTrail data events capture API calls details, including error codes. You can create a CloudWatch metric filter on the CloudTrail log group to monitor specific errors like 403.

Why this answer

S3 request metrics do not provide filtering by status code; the 4xxErrors metric aggregates all 4xx errors. To monitor specific 403 AccessDenied errors, you should use AWS CloudTrail data events, which capture API call details including error codes. You can create a CloudWatch metric filter on the CloudTrail log group to emit a custom metric for 403 errors, enabling monitoring and alarming.

Exam trap

Candidates may assume that the built‑in S3 request metrics can be filtered by status code. In reality, the 4xxErrors metric cannot be segmented by individual error codes; CloudTrail must be used for this granularity.

How to eliminate wrong answers

Option A is wrong because `NumberOfObjects` with `ObjectType` dimension tracks the count of objects per storage class (e.g., Standard, Glacier), not error responses. Option B is wrong because `BucketSizeBytes` with `StorageType` dimension measures bucket storage size, not request errors. Option D is wrong because `AllRequests` with `BucketName` dimension counts all requests (including successful ones) but does not filter by HTTP status code, so it cannot isolate 403 errors.

122
MCQmedium

A data engineer is troubleshooting a failed AWS Glue ETL job that reads from and writes to the S3 bucket 'example-bucket'. The job's IAM role has the policy shown in the exhibit. The job fails with an Access Denied error when writing to a prefix 'output/'. Which permission is MISSING?

A.s3:PutObjectAcl
B.s3:GetBucketAcl
C.s3:ListBucket on the output prefix
D.s3:DeleteObject
AnswerD

Glue often deletes temporary files and may need DeleteObject permission.

Why this answer

The IAM policy grants s3:GetObject and s3:PutObject on 'example-bucket/*', which includes the 'output/' prefix, so write access is sufficient. However, AWS Glue ETL jobs often create temporary files or need to clean up staging data, requiring s3:DeleteObject permission. Without it, the job may fail with an Access Denied error when attempting to delete objects during the write process or when cleaning up after a failure.

Option D (s3:DeleteObject) is the missing permission.

123
Multi-Selecteasy

A company is using AWS Glue ETL jobs to process data from Amazon S3 and write results back to S3. The jobs are failing intermittently with 'ThrottlingException' errors. Which TWO configurations would help reduce these errors?

Select 2 answers
A.Decrease the number of DPUs for the job.
B.Enable GZIP compression on the output data.
C.Add retry logic with exponential backoff in the job script.
D.Change the job type from Spark to Python shell.
E.Increase the number of DPUs for the job.
AnswersC, E

Retries handle transient throttling gracefully.

Why this answer

Adding retry logic with exponential backoff in the job script directly addresses transient 'ThrottlingException' errors by automatically retrying failed API calls after increasing delays. This is a standard best practice for handling service throttling in AWS Glue, as it reduces the request rate to stay within service limits without requiring infrastructure changes.

Exam trap

The trap here is that candidates often confuse increasing DPUs (Option E) as a solution for all performance issues, but while it can reduce throttling by speeding up execution, it may also increase API call concurrency and require careful tuning; the question specifically asks for configurations that 'help reduce these errors,' and retry logic is a direct, reliable mitigation.

124
MCQhard

A company runs a nightly AWS Glue ETL job that writes results to an Amazon Redshift table using the JDBC connector. Recently, the job has been failing with the error 'ERROR: connection to server at ... failed: server closed the connection unexpectedly'. The Redshift cluster is in a private subnet with a VPC endpoint for S3. The Glue job runs in the same VPC with enhanced VPC routing enabled. Which is the most likely cause?

A.The JDBC driver is missing the 'redshift' compatibility mode setting.
B.SSL is not enabled on the Redshift cluster.
C.The Glue job's security group does not allow outbound traffic to the Redshift cluster.
D.AWS Glue does not support Redshift as a data source.
AnswerB

Correct. If the Redshift cluster enforces SSL, the connection will be rejected without SSL, causing the 'server closed the connection unexpectedly' error.

Why this answer

The error 'server closed the connection unexpectedly' typically indicates that the Redshift cluster rejected the connection, often because SSL is required but not enabled in the Glue JDBC connection. Redshift clusters can be configured with the `require_ssl` parameter set to true, forcing all connections to use SSL. Option B is correct because without SSL, the server terminates the connection.

Option A is incorrect because the 'redshift' compatibility mode is not a standard requirement; the JDBC driver works without it. Option C is incorrect because security group issues would cause a timeout or 'connection refused', not a server-side close. Option D is incorrect because Glue supports Redshift as a data source.

Exam trap

Candidates may assume that SSL is optional, but many production Redshift clusters enforce SSL, causing non-SSL connections to be dropped.

125
MCQhard

A company uses Amazon Kinesis Data Streams to ingest real-time clickstream data. A Lambda function processes each record. Recently, the Lambda function has been failing with 'ProvisionedThroughputExceededException' when writing results to a DynamoDB table. The data engineer has already increased the DynamoDB write capacity. What else can the engineer do to resolve the issue?

A.Increase the Lambda function memory.
B.Increase the DynamoDB read capacity units.
C.Decrease the Lambda batch size to 1.
D.Increase the number of shards in the Kinesis stream.
AnswerD

More shards distribute the load across more Lambda invocations.

Why this answer

Increasing the number of shards in the Kinesis stream increases the number of concurrent Lambda invocations, distributing the write load across more Lambda functions and reducing the number of writes per second to DynamoDB from each invocation. This helps mitigate ProvisionedThroughputExceededException. Option A is incorrect: increasing Lambda memory does not directly affect DynamoDB write throttling.

Option B is incorrect: increasing DynamoDB read capacity does not help with write throttling. Option C is incorrect: decreasing the batch size to 1 reduces the number of records per invocation, but since each shard still invokes Lambda, it may increase the number of invocations and potentially increase the write frequency, worsening the throttling.

126
MCQhard

A data engineer is monitoring an Amazon Redshift cluster and notices that the 'WLM query wait time' metric is consistently high during peak hours. The cluster uses automatic WLM. The engineer wants to reduce query wait times without changing the cluster size. Which action is MOST effective?

A.Enable concurrency scaling.
B.Change WLM to manual mode and increase the number of queues.
C.Increase the maximum number of queries per queue.
D.Enable short query acceleration (SQA).
AnswerA

Concurrency scaling adds capacity to handle concurrent queries.

Why this answer

Enabling concurrency scaling (Option A) is the most effective action because it automatically adds transient cluster capacity during peak loads, allowing more queries to run concurrently without increasing wait times. This is specifically designed to reduce WLM query wait time. Option B (manual WLM) requires tuning and does not add capacity.

Option C (increasing max queries per queue) could increase concurrency but may lead to resource contention and longer wait times if the cluster is already saturated. Option D (short query acceleration) prioritizes short queries, which does not address overall wait times for all queries. Therefore, A is correct.

127
MCQhard

A data engineer is troubleshooting a DMS task that is replicating data from an on-premises Oracle database to an RDS for MySQL instance. The task is failing with 'ORA-1555: snapshot too old' error. What is the best course of action?

A.Disable full supplemental logging on the source tables.
B.Increase the size of the redo logs on the source database.
C.Enable batch optimized apply on the DMS task.
D.Increase the UNDO tablespace size and set UNDO_RETENTION to a higher value.
AnswerD

This gives the CDC process enough undo to read consistent snapshots.

Why this answer

The ORA-1555 'snapshot too old' error occurs when a long-running query (such as Change Data Capture (CDC) in AWS DMS) needs to read consistent data from undo segments, but the undo information has been overwritten or retained for too short a period. Increasing the UNDO tablespace size and setting UNDO_RETENTION to a higher value ensures that undo data is preserved longer, allowing CDC to read consistent snapshots without encountering this error. Option A (disabling supplemental logging) would prevent CDC from capturing changes, thus is incorrect.

Option B (increasing redo logs) does not address the undo retention issue. Option C (enabling batch optimized apply) may improve apply performance but does not resolve the source-side undo problem.

128
MCQeasy

A data engineer needs to transform a large dataset stored in Amazon S3 using Apache Spark. The engineer wants to minimize startup time and use a serverless approach. Which AWS service should the engineer use?

A.Amazon Redshift
B.Amazon EMR
C.AWS Glue
D.Amazon Athena
AnswerC

Serverless Spark with fast startup.

Why this answer

AWS Glue provides a serverless Spark environment with fast startup. Option A is wrong because Amazon Redshift is a data warehouse, not a Spark environment. Option B is wrong because Amazon EMR requires cluster provisioning, which increases startup time.

Option D is wrong because Amazon Athena is for querying data, not for transforming with Spark.

129
Multi-Selecteasy

Which TWO actions are effective ways to monitor the health of an Amazon DynamoDB table? (Choose two.)

Select 2 answers
A.Use AWS S3 inventory to track table size.
B.Use EC2 instance status checks.
C.Enable DynamoDB Streams and process with Lambda to detect failures.
D.Set up Amazon CloudWatch alarms on ConsumedReadCapacityUnits.
E.Monitor the 'TableHealth' metric in CloudWatch.
AnswersC, D

Streams can be used for monitoring changes.

Why this answer

Options C and D are correct. DynamoDB Streams with Lambda can detect failures by processing change events, and CloudWatch alarms on ConsumedReadCapacityUnits help monitor throughput and potential throttling. Option A is wrong because S3 inventory tracks S3 objects, not DynamoDB.

Option B is wrong because EC2 instance status checks are for EC2 instances, not DynamoDB tables. Option E is wrong because there is no 'TableHealth' metric in CloudWatch; DynamoDB health is monitored via metrics like ConsumedReadCapacityUnits, ThrottledRequests, and SystemErrors.

130
Multi-Selecthard

A data engineer is designing a disaster recovery plan for an Amazon RDS for PostgreSQL database. The database is 500 GB and has a multi-AZ deployment. The recovery point objective (RPO) is 5 minutes, and the recovery time objective (RTO) is 2 hours. Which THREE actions should the engineer take to meet these objectives?

Select 3 answers
A.Enable Multi-AZ deployment for automatic failover.
B.Enable automated backups with a retention period of 1 day.
C.Take daily manual snapshots and export them to Amazon S3.
D.Disable automatic backups to reduce storage costs.
E.Configure a cross-region read replica for faster recovery in another region.
AnswersA, B, E

Multi-AZ provides automatic failover to standby in case of failure.

Why this answer

Multi-AZ deployment provides automatic failover to a standby in another Availability Zone, meeting the RTO of 2 hours. Option B is correct because automated backups enable point-in-time recovery within the retention period, supporting the RPO of 5 minutes (default backup retention is 1 day, which is sufficient). Option E is correct because a cross-region read replica can be promoted to a standalone database in another region for faster disaster recovery if the primary region fails.

Option C is wrong because manual snapshots exported to S3 are for long-term archival and not fast enough for a 2-hour RTO. Option D is wrong because disabling automated backups would prevent point-in-time recovery and violate the RPO of 5 minutes.

131
Multi-Selectmedium

A company is running a critical data pipeline using AWS Glue. The pipeline must be highly available and fault-tolerant. Which TWO strategies should the data engineer implement? (Choose TWO.)

Select 2 answers
A.Configure the Glue job to run in multiple Availability Zones.
B.Use a single instance type for all Glue workers.
C.Increase the number of concurrent runs for the Glue job.
D.Enable job retries with exponential backoff.
E.Disable job bookmarks to avoid reprocessing.
AnswersA, D

Multi-AZ provides redundancy.

Why this answer

Configuring the Glue job to run in multiple Availability Zones ensures that if one AZ experiences a failure, the job can continue processing in another AZ, providing high availability and fault tolerance. This is a fundamental strategy for resilient data pipeline design in AWS.

Exam trap

The trap here is that candidates often confuse increasing concurrency (Option C) with fault tolerance, but concurrency only scales processing horizontally without providing redundancy against infrastructure failures.

132
MCQmedium

A data engineer is managing an Amazon RDS for PostgreSQL instance that serves as a source for change data capture (CDC) using AWS DMS. The DMS task is a full load followed by ongoing replication. The full load completed successfully, but the ongoing replication is failing with the error 'Value too long for character type'. The engineer has verified that the target database schema matches the source. The source table has a VARCHAR(256) column, and the target has VARCHAR(256) as well. However, some source rows contain values longer than 256 characters. What should the engineer do to resolve the issue?

A.Modify the DMS task to truncate data that exceeds the column length.
B.Rename the target column to match a different source column.
C.Change the target column to a CLOB data type.
D.Alter the target table column to a larger data type, such as VARCHAR(512).
AnswerD

Resolves the length mismatch.

Why this answer

The error indicates that source data exceeds the column length. The source column definition may not enforce the length, or the data was inserted bypassing constraints. The engineer should alter the target column to a larger size, such as VARCHAR(512), to accommodate the actual data.

Option A is wrong because truncating data may cause data loss. Option B is wrong because renaming would cause mapping issues. Option C is wrong because the error is not about character set; using CLOB may not be compatible with the CDC process and would change the data type.

133
Multi-Selectmedium

A company runs a data processing pipeline on Amazon EMR. The pipeline reads data from S3, processes it with Spark, and writes results back to S3. The engineer notices that the cluster is underutilized and wants to reduce costs. Which TWO actions should the engineer take? (Choose TWO.)

Select 2 answers
A.Use Spot instances for task nodes.
B.Configure the cluster to terminate after the job completes.
C.Change the master node to a larger instance type.
D.Enable EMRFS consistent view.
E.Increase the number of core nodes to improve parallelism.
AnswersA, B

Spot instances are cheaper than On-Demand.

Why this answer

Using Spot instances for task nodes in Amazon EMR can significantly reduce costs, as Spot instances are spare EC2 capacity offered at up to 90% discount compared to On-Demand instances. Since task nodes are stateless and can be added or removed without affecting cluster stability, they are ideal candidates for Spot instances, allowing the engineer to lower expenses while maintaining processing capacity.

Exam trap

The trap here is that candidates may confuse cost optimization features like Spot instances and auto-termination with performance improvements or data consistency settings, leading them to select options that increase resources or enable features unrelated to cost reduction.

134
MCQeasy

A data engineer uses AWS CloudTrail to investigate a security incident. The engineer runs the command shown in the exhibit. What does the output indicate?

A.A file was downloaded from the S3 bucket.
B.A file was deleted from the S3 bucket.
C.A batch of files was listed from the S3 bucket.
D.A file was uploaded to the S3 bucket.
AnswerD

PutObject indicates an upload.

Why this answer

The CloudTrail event shows EventName as PutObject, which indicates an object was uploaded to S3. The resource name includes the bucket and the object key 'sales_2024-07-01.csv', confirming a single file upload. Option A is incorrect because the event is PutObject, not GetObject.

Option B is incorrect because PutObject is an upload, not a deletion. Option C is incorrect because PutObject represents uploading a single object, not listing a batch of files.

135
MCQhard

A company uses Amazon S3 to store log files from multiple applications. The logs are encrypted with AWS KMS (SSE-KMS). A data engineer needs to grant a new IAM user read-only access to the logs. The engineer attaches an S3 bucket policy that allows s3:GetObject and a KMS key policy that allows kms:Decrypt. However, the user still receives an 'Access Denied' error when trying to download an object. What is the MOST likely missing permission?

A.The user does not have s3:ListBucket permission on the bucket.
B.The user does not have s3:GetObjectVersion permission.
C.The user's IAM policy does not include kms:Decrypt permission.
D.The user does not have kms:GenerateDataKey permission.
AnswerC

Both the key policy and the IAM user policy must allow kms:Decrypt; the IAM policy is missing this action.

Why this answer

To use SSE-KMS, the user needs kms:Decrypt, but also the IAM policy must allow kms:Decrypt, not just the key policy. The key policy alone is not sufficient if the IAM user's policy denies or does not allow the action. Option A is incorrect because s3:ListBucket is for listing, not downloading.

Option B is incorrect because s3:GetObjectVersion is for versioned buckets. Option D is incorrect because kms:GenerateDataKey is for encryption, not decryption.

136
MCQhard

Refer to the exhibit. An IAM policy is attached to an IAM role used by an application. The application needs to read objects from 'my-bucket' that have the tag 'classification=public'. The application account is 123456789012. However, the application is getting 'Access Denied' errors. What is the most likely reason?

A.The Deny statement uses StringNotEquals, which incorrectly denies the application account.
B.The policy does not grant s3:ListBucket permission, so the application cannot list objects.
C.The object being accessed does not have the tag 'classification=public'.
D.The Deny statement blocks all access from accounts other than 123456789012, but the application is in that account.
AnswerC

Without the tag, the Allow condition fails, leading to implicit deny.

Why this answer

The Allow statement grants s3:GetObject only when the request has a condition that the object tag 'classification' equals 'public' (using StringEquals). If the object being accessed does not have this tag, the Allow condition is not satisfied, and the request is implicitly denied. The Deny statement does not apply because it only denies when the source account is NOT 123456789012, and the request does come from that account.

Thus, the most likely cause is that the object's tag does not match 'classification=public'.

137
Multi-Selectmedium

A company uses Amazon Kinesis Data Firehose to deliver streaming data to Amazon S3. The delivery stream is failing with 'Insufficient capacity' errors. Which THREE actions should the data engineer take to resolve this issue? (Choose THREE.)

Select 3 answers
A.Enable S3 bucket versioning to handle concurrent writes.
B.Increase the buffer size and buffer interval in the Firehose delivery stream configuration.
C.Configure a CloudWatch alarm to monitor the error rate.
D.Request a service quota increase for Kinesis Data Firehose.
E.Increase the number of shards in the source Kinesis data stream.
AnswersB, D, E

Larger buffers reduce the frequency of writes, lowering capacity needs.

Why this answer

Options B, D, and E are correct. B: Increasing buffer size and interval allows Firehose to batch more records before delivery, reducing the rate of PUT requests and alleviating temporary capacity issues. D: Requesting a service quota increase for Kinesis Data Firehose raises the default limits on data delivery throughput, directly addressing insufficient capacity errors caused by throttling.

E: Increasing the number of shards in the source Kinesis data stream provides higher write throughput to Firehose, reducing backpressure and 'Insufficient capacity' errors. Option A is incorrect because S3 bucket versioning handles object versioning, not write capacity or Firehose throughput. Option C is incorrect because CloudWatch alarms only monitor and alert, they do not resolve capacity issues.

138
MCQmedium

A company uses Amazon EMR to process large datasets stored in Amazon S3. The data engineer notices that EMR tasks are failing with 'DiskOutOfSpace' errors. The cluster uses m5.xlarge instances with 1 EBS volume of 64 GB. What is the MOST cost-effective solution to resolve this issue?

A.Use a mix of on-demand and spot instances for core nodes.
B.Increase the EBS storage volume size for each instance and use spot instances for task nodes.
C.Switch to D2 instances which have more instance store volume.
D.Increase the number of task instances to distribute the workload.
AnswerB

More disk space solves the issue; spot instances reduce cost.

Why this answer

Increasing the EBS volume size provides additional disk space per instance, directly resolving the disk out-of-space error. Using spot instances for task nodes reduces cost. Option A is incorrect because mixing on-demand and spot instances does not increase per-instance disk space.

Option C is incorrect because switching to D2 instances is more expensive and may not be necessary. Option D is incorrect because adding more task instances distributes the workload but does not increase the disk space available to each instance, so individual tasks may still fail due to disk space.

139
Multi-Selectmedium

Which THREE are best practices for managing data in Amazon S3 for a data lake? (Choose three.)

Select 3 answers
A.Enable S3 Versioning to protect against accidental deletions.
B.Configure lifecycle policies to transition data to colder storage tiers.
C.Enable S3 Snapshot for point-in-time recovery.
D.Disable S3 server access logging to reduce costs.
E.Use bucket policies to restrict access based on IAM roles.
AnswersA, B, E

Versioning provides data protection.

Why this answer

Enabling S3 Versioning is a best practice for data lakes because it protects against accidental deletions or overwrites by preserving all versions of an object, including deletions (which are recorded as delete markers). This allows you to recover previous object states and is essential for data governance and auditability in a data lake environment.

Exam trap

The trap here is that candidates may confuse S3 Versioning with a non-existent 'S3 Snapshot' feature, or mistakenly think disabling server access logging is a cost-saving best practice, when in fact it undermines security auditing.

140
Drag & Dropmedium

Arrange the steps to set up a streaming ETL pipeline using Amazon Kinesis Data Firehose to Amazon S3.

Drag steps to the numbered slots on the right, or tap a step then tap a slot.

Steps
Order
1Step 1
2Step 2
3Step 3
4Step 4

Why this order

First, create the Firehose stream, configure source, set S3 destination, enable optional Lambda transformation, and test.

141
MCQeasy

A data engineer needs to monitor the number of records processed by an AWS Glue ETL job. Which CloudWatch metric should the engineer use?

A.glue.driver.aggregate.elapsedTime
B.glue.driver.aggregate.numRecords
C.glue.driver.aggregate.bytesRead
D.glue.driver.aggregate.recordsRead
AnswerB

This metric tracks the number of records processed.

Why this answer

Glue emits a 'glue.driver.aggregate.numRecords' metric for the number of records processed. Option A is wrong because 'glue.driver.aggregate.elapsedTime' is for time. Option C is wrong because 'glue.driver.aggregate.bytesRead' is for bytes.

Option D is wrong because 'glue.driver.aggregate.recordsRead' is not a standard metric.

142
Multi-Selectmedium

A company runs a data lake on Amazon S3 with AWS Glue for ETL. The data is stored in Parquet format and partitioned by date. The data engineer notices that queries using Amazon Athena are scanning large amounts of data even when filtering on the partition column. Which TWO actions would improve query performance? (Choose TWO)

Select 2 answers
A.Use a different file format like Avro
B.Ensure that the WHERE clause uses the partition column correctly
C.Convert the data from Parquet to CSV for better compression
D.Increase the number of partitions by adding a second partition column
E.Enable predicate pushdown in Athena
AnswersB, E

Enables partition pruning.

Why this answer

Partition pruning requires the WHERE clause to filter on the partition column to reduce data scanned. Option E is correct because enabling predicate pushdown in Athena allows the query engine to push filtering conditions down to the data source, further reducing the amount of data scanned. Option A is incorrect because while Avro is a row-oriented format, it is not more efficient for analytics than Parquet; Parquet is columnar and better for selective queries.

Option C is incorrect because CSV is not compressed and would increase data scanned. Option D is incorrect because simply increasing the number of partitions without proper filtering does not improve performance; excessive partitions can even degrade performance due to metadata overhead.

143
Multi-Selecthard

A company runs a data processing pipeline using Amazon EMR with Spark. The pipeline reads from S3, processes data, and writes to S3. Recently, the job started failing with 'S3AccessDeniedException' even though the EMR role has appropriate S3 permissions. Which TWO actions should the data engineer take to resolve this issue? (Choose TWO.)

Select 2 answers
A.Enable S3 versioning on the bucket to allow multiple access methods.
B.Verify that the EMR service role has the necessary S3 permissions in IAM.
C.Disable S3 Block Public Access settings on the bucket.
D.Check the S3 bucket policy for explicit deny statements that may override the IAM role.
E.Ensure the EMR cluster is launched in a VPC with an S3 VPC endpoint.
AnswersB, D

The EMR service role (EMR_EC2_DefaultRole) must have permissions.

Why this answer

Options B and D are correct. B: The EMR service role (and instance profile) must have an IAM policy granting S3 permissions; verifying these ensures the role has the necessary access. D: S3 bucket policies can include explicit deny statements that override IAM permissions, even if the IAM role allows access; checking the bucket policy can reveal such denies.

Option A is wrong because S3 versioning does not affect access permissions. Option C is wrong because disabling S3 Block Public Access is unrelated to IAM-based access from EMR. Option E is wrong because an S3 VPC endpoint is not required if the cluster can access S3 via the internet or a NAT gateway.

144
MCQeasy

A data engineer is troubleshooting a failed AWS Glue ETL job. The job reads from an S3 bucket and writes to an RDS MySQL database. The job fails with an 'Access Denied' error when trying to write to RDS. What is the most likely cause?

A.The IAM role associated with the Glue job does not have the necessary permissions to write to the RDS instance.
B.The Glue job is running in a VPC without a route to the internet.
C.The S3 bucket policy does not allow the Glue job to read the data.
D.The RDS instance is encrypted with a KMS key that the Glue job cannot access.
AnswerA

IAM role needs RDS write permissions.

Why this answer

The error 'Access Denied' when writing to RDS indicates that the AWS Glue job's IAM role lacks the necessary permissions (e.g., rds-db:connect, or specific database-level GRANTs) to perform write operations on the RDS MySQL instance. AWS Glue uses the attached IAM role to authenticate and authorize actions against AWS services, and without proper IAM policies allowing access to the RDS resource, the write attempt is denied.

Exam trap

The trap here is that candidates often confuse network connectivity issues (Option B) with authorization errors, but 'Access Denied' is a specific HTTP 403 error indicating lack of permissions, not a network problem.

How to eliminate wrong answers

Option B is wrong because a missing route to the internet would cause a network connectivity timeout or 'connection refused' error, not an 'Access Denied' error, which is an authorization failure. Option C is wrong because the error occurs when writing to RDS, not when reading from S3; an S3 bucket policy issue would produce an S3-specific 'Access Denied' error during the read phase. Option D is wrong because if the RDS instance is encrypted with a KMS key that the Glue job cannot access, the error would typically be a 'KMS access denied' or 'encryption key unavailable' error, not a generic 'Access Denied' for writing to RDS.

145
Multi-Selectmedium

Which TWO actions should a data engineer take to optimize Amazon S3 query performance for Amazon Athena when dealing with large Parquet files? (Choose 2.)

Select 2 answers
A.Store data in a single large file without partitioning
B.Use GZIP compression on the Parquet files
C.Split large files into many small files
D.Optimize file sizes to be around 64 MB to 256 MB
E.Partition the data by frequently filtered columns
AnswersD, E

Optimal file size improves parallelism and performance.

Why this answer

The correct answers are D and E. Optimizing file sizes to be around 64 MB to 256 MB (D) reduces the overhead of Athena reading many small files or processing overly large files, balancing parallelism and efficiency. Partitioning data by frequently filtered columns (E) allows Athena to prune partitions and scan less data, improving query performance.

Option A (single large file) hinders parallelism and query performance. Option B (GZIP compression) is already supported by Parquet and does not inherently optimize query performance beyond the file size considerations. Option C (many small files) increases metadata overhead and degrades performance.

146
MCQhard

Refer to the exhibit. A data engineer is reviewing the configuration of an Amazon Redshift cluster. The engineer wants to ensure that the cluster can be restored to a point in time up to 35 days in the past. Based on the exhibit, what change is needed?

A.Increase the automated snapshot retention period to 35 days.
B.Change the cluster subnet group to a custom one.
C.Enable encryption on the cluster.
D.Increase the number of nodes to 6.
AnswerA

Current retention is 1 day.

Why this answer

The automated snapshot retention period is currently set to 1 day, which only allows point-in-time recovery within the last day. To restore to a point in time up to 35 days in the past, this retention period must be increased to 35 days. Option B (changing the subnet group) does not affect backup retention.

Option C (enabling encryption) is unrelated to snapshot retention; the cluster may already be encrypted or not, but encryption does not extend the retention period. Option D (increasing the number of nodes) also does not affect snapshot retention.

147
MCQeasy

A data engineer is troubleshooting an AWS Glue ETL job that uses a Python shell script to extract data from an Amazon RDS for PostgreSQL database and load it into an Amazon Redshift table. The job runs successfully, but the data engineer notices that the row count in Redshift is consistently lower than the row count in PostgreSQL. The job uses a SELECT * query without any filtering. The data engineer suspects that some rows are being dropped during the transfer. The job uses the psycopg2 library to connect to PostgreSQL and the psycopg2 connection is configured with autocommit=True. The Redshift table has no constraints that would reject rows. What is the most likely cause of the missing rows?

A.The SELECT * query includes columns with data types that are not supported by psycopg2.
B.The SSL/TLS connection to PostgreSQL is dropping packets.
C.The autocommit=True setting is causing incomplete transactions.
D.The Redshift table has a distribution key that causes some rows to be silently discarded.
AnswerA

Unsupported data types may cause rows to be skipped or nullified.

Why this answer

The SELECT * query may include columns with data types (e.g., arrays, hstore, or geometric types) that psycopg2 does not fully support, causing those columns to be read as NULL or silently skipped during extraction. This would result in fewer rows being inserted into Redshift if the unsupported columns are part of a unique constraint or if NULL handling causes row drops. Option B is incorrect because SSL/TLS packet drops would cause connection errors, not consistent missing rows.

Option C is incorrect because autocommit=True ensures each query is a standalone transaction, preventing incomplete transactions. Option D is incorrect because the problem states the Redshift table has no constraints that would reject rows, and distribution keys do not silently discard rows.

148
Multi-Selecthard

Which THREE are valid considerations when troubleshooting data loss in an AWS Glue ETL job? (Choose three.)

Select 3 answers
A.Job bookmarks may be skipping new data if not configured properly.
B.Server-side encryption is disabled on the S3 bucket.
C.The job timeout is set too low.
D.Dynamic frame transformations may drop rows with errors.
E.The mapping of source columns to target columns may be incorrect.
AnswersA, D, E

Bookmarks control reprocessing.

Why this answer

Options A, D, and E are correct. Job bookmarks may skip new data if not configured properly (A). Dynamic frame transformations can drop rows if errors occur during processing (D).

Incorrect mapping of source columns to target columns can cause data loss (E). Option B is incorrect because disabling server-side encryption on S3 does not cause data loss; it affects data at rest encryption but not data integrity during ETL. Option C is incorrect because setting the job timeout too low may cause the job to fail prematurely, but it does not directly cause data loss; data can be reprocessed after adjusting the timeout.

149
Multi-Selecteasy

A data engineer is setting up a data pipeline using Amazon Kinesis Data Firehose to deliver data to Amazon S3. The data must be transformed using an AWS Lambda function before delivery. Which THREE steps are required to configure this?

Select 3 answers
A.Create a Lambda@Edge function in the same Region.
B.Create an AWS Lambda function that transforms the data.
C.Attach an IAM role to the Firehose delivery stream that grants permission to invoke the Lambda function.
D.Configure an S3 event notification to trigger the Lambda function when new data arrives.
E.Configure the Kinesis Data Firehose delivery stream to use the Lambda function as a data transformation source.
AnswersB, C, E

A Lambda function is needed to perform the transformation logic.

Why this answer

Options B, C, and E are correct. To configure Kinesis Data Firehose with Lambda transformation, you need to create a Lambda function that transforms the data (B), attach an IAM role to the Firehose delivery stream that allows Firehose to invoke the Lambda function (C), and configure the Firehose delivery stream to use the Lambda function as a data transformation source (E). Option A is wrong because Lambda@Edge is used with CloudFront, not Firehose.

Option D is wrong because S3 event notifications are not used for Firehose transformation; they are used for other purposes like triggering Lambda on new S3 objects.

150
MCQmedium

A company uses AWS DMS to migrate data from an on-premises Oracle database to Amazon Aurora MySQL. After the migration, the data in Aurora is inconsistent with the source. The engineer needs to ensure ongoing replication with minimal downtime. Which solution should the engineer implement?

A.Use AWS Schema Conversion Tool (SCT) to convert the schema
B.Export the data from Oracle and import into Aurora using mysqldump
C.Configure a DMS task with change data capture (CDC)
D.Perform a full load migration again
AnswerC

CDC captures ongoing changes.

Why this answer

Configuring a DMS task with Change Data Capture (CDC) enables ongoing replication of changes from the source Oracle database to the target Aurora MySQL database with minimal downtime, ensuring consistency. Option A is incorrect because AWS Schema Conversion Tool (SCT) only converts schema and does not handle data replication. Option B is incorrect because mysqldump provides a one-time export/import, not ongoing replication.

Option D is incorrect because performing a full load migration again would disrupt operations and would not capture ongoing changes.

← PreviousPage 2 of 5 · 360 questions totalNext →

Ready to test yourself?

Try a timed practice session using only Data Operations and Support questions.