Amazon Practice Questions, Discussions & Exam Topics by our Authors
A company is using Amazon Bedrock to build an AI assistant. The AI assistant helps customers find relevant products by making suggestions. However, the AI assistant's responses are often generic and irrelevant. The company wants to use prom...
Let's carefully analyze the scenario and the options:
Scenario:
The company uses Amazon Bedrock to build an AI assistant.
The AI assistant helps customers find products.
Current problem: responses are generic and irrelevant.
Goal: improve response relevance using prompt engineering.
We need to choose the solution that will directly improve relevance and usefulness of product suggestions.
---
Option Analysis
A) Use few-shot prompting to add domain-specific context and explicit instructions.
Few-shot prompting provides the model with examples of desired behavior within the prompt.
Adding domain-specific context (like product categories, customer interests, or common queries) guides the model to produce more relevant, contextual answers.
Adding explicit instructions ensures the assistant knows exactly what is expected.
✅ Key factor: This directly addresses the problem of irrelevant and generic responses by giving the model context and examples.
B) Use chain-of-thought prompting with hidden reasoning steps to ignore explicit domain instructions.
Chain-of-thought prompting is useful when a model needs to solve multi-step reasoning problems.
However, here we don’t want to ignore domain instructions; we want the model to follow domain-specific guidance to gi...
Author: CrimsonViperX · Last updated Jul 19, 2026
A company runs a website for users to make travel reservations. The company wants an AI solution to help create consistent branding for hotels on the website.
The AI solution needs to generate hotel descriptions for...
Let’s carefully analyze the question and each option:
Scenario:
A company wants AI-generated hotel descriptions in a consistent writing style for their website.
This is a content generation / natural language generation task.
---
Option A: Amazon Comprehend
Purpose: It is an NLP service for text analysis, including sentiment analysis, entity recognition, and language detection.
Limitation: It does not generate text; it only analyzes existing text.
Verdict: ❌ Not suitable because we need text generation, not analysis.
---
Option B: Amazon Personalize
Purpose: A service for recommendation systems (personalized product or content recommendations).
Limitation: It does not generate content; it suggests items to users based on preferences.
Verdict: ❌ Not suitable because we don’t want recommendations; we want generated descriptions.
---
Option C: Amazon Rekognition
Purpose: It is a computer vision service...
Author: Kai · Last updated Jul 19, 2026
A company is using a pre-trained large language model (LLM). The LLM must perform multiple tasks that require specific domain knowledge. The LLM does not have information about several technical topics in the domain. The company has unlabeled data...
Let's carefully analyze the problem and each option. The key factors in the scenario are:
The company is using a pre-trained LLM.
The LLM must handle multiple tasks in a specific technical domain.
The LLM lacks domain-specific knowledge.
The company has unlabeled data (no labeled question-answer pairs).
Now let's go option by option:
---
A) Full training
What it is: Training a model from scratch on all parameters.
Pros: Model could, in theory, learn everything from scratch.
Cons: Extremely computationally expensive, requires huge amounts of labeled data, and is unnecessary because a pre-trained model already exists.
Scenario use: Only when no pre-trained model exists or when a completely custom architecture is needed.
✅ Rejected: Not practical or needed here.
---
B) Supervised fine-tuning
What it is: Training the model further using labeled data (input-output pairs) for specific tasks.
Pros: Great for adapting to specific tasks.
Cons: Requires labeled data, which the company does not have.
Scenario use: When you have annotated examples for the target tasks.
✅ Rejected: Company only has unlabeled data, so this cannot be applied directly.
---
C) Continued pre-training
What it is: Further training the pre-trained LLM on domain-specific text data, without la...
Author: Julian · Last updated Jul 19, 2026
A company wants to classify images of different objects based on custom features extracted from a dataset.
Which solution will ...
Let’s carefully analyze this AWS scenario step by step. The key requirements are:
Classify images of different objects.
Use custom features extracted from a dataset.
Minimize development effort.
We’ll evaluate each option.
---
Option A: Use traditional ML algorithms with custom features extracted from the dataset
Pros:
Works well when you already have meaningful features.
Simple ML algorithms (like random forests) can be applied quickly.
Cons:
Requires manual feature engineering.
For image data, traditional ML often performs worse than deep learning unless features are very well-designed.
When suitable:
Small datasets, simple image features, and low variance in object appearance.
Development effort: Medium to high (manual feature extraction is required).
---
Option B: Use a pre-trained deep learning model and fine-tune it on the dataset
Pros:
Leverages transfer learning; no need to design features manually.
Pre-trained models on ImageNet or similar datasets are highly effective for image classification.
Minimal development effort because feature extraction is handled internally by the model.
Cons:
Requires some GPU compute for fine-tuning.
When suitable:
When you have image datasets and want high accuracy with minimal manual feature engineering.
Development effort: Low (just fine-tu...
Author: Charlotte · Last updated Jul 19, 2026
A company wants to customize Amazon Bedrock foundation models (FMs) to improve an application's performance. The company must prepare a training dataset for text-to-text model fin...
Let's break this down carefully and reason through it step by step.
Scenario:
The company wants to fine-tune Amazon Bedrock foundation models (text-to-text models) to improve an application's performance. That means they need a supervised training dataset, where the model can learn from input-output pairs (e.g., prompts and expected responses).
---
Option A: A JSON file with labeled data ✅
Reasoning:
Fine-tuning requires labeled data, i.e., input paired with expected output.
JSON is a flexible format to represent structured data, like `{"input": "...", "output": "..."}`.
For text-to-text tasks, JSON allows storing multiple examples with clear keys for input and output, which is exactly what supervised fine-tuning needs.
Scenario where used: When you have a dataset of prompts and expected responses for a text-to-text model, e.g., chatbot Q&A fine-tuning.
Conclusion: This is the correct choice.
---
Option B: A CSV file with unlabeled data ❌
Reasoning:
Unlabeled data means the dataset does not have target outputs.
Fine-tuning a text-to-text model requires labeled pairs, not just raw text.
CSV can store structured data, but if it’s unlabeled, it cannot be used for supervised training.
Scenario where used: Could be used for pretraining or unsupervised learning, not supervised fine-...
Author: ShadowWolf101 · Last updated Jul 19, 2026
SNAPSHOT
-
A company wants to build generative AI applications by using Amazon Bedrock. The company wants to minimize development effort.
Select and order the model development techniques from the following list from the LEAST developm...
Author: MoonlitPantherX · Last updated Jul 19, 2026
An airline company wants to use a generative AI model to convert a flight booking system from one coding language into another coding language. The company must select a model for this task.
Which c...
Let’s carefully analyze this scenario step by step. The airline company wants to convert a flight booking system from one coding language to another. This is a code translation task, which requires understanding the existing code’s structure, logic, and semantics, and then generating equivalent code in the target language.
We need to evaluate the options:
---
A) Syntax, semantic understanding, and code optimization capabilities ✅
Reasoning: This is directly relevant. The AI model must:
1. Understand syntax of the source and target languages.
2. Understand semantics, i.e., what the code actually does.
3. Optionally optimize the code for efficiency and maintainability.
Scenario suitability: Perfect for code translation tasks like language migration, refactoring, or updating legacy systems.
---
B) Code generation speed and error handling capabilities ❌
Reasoning: While speed and handling errors are generally useful, they do not ensure correct translation of code logic or syntax. Fast output is meaningless if the translated code is wrong or fails to compile.
Scenario suitability: More relevant for tasks where large volumes of new code need to be generated quickly, but co...
Author: Lucas · Last updated Jul 19, 2026
An AI practitioner is using Amazon Bedrock Prompt Management to create a reusable prompt. The prompt must be able to interact with external services by cal...
Let’s analyze the question carefully. The scenario is:
Requirement: Create a reusable prompt in Amazon Bedrock Prompt Management that can interact with external services by calling an external API.
We need to select the correct method for enabling API calls from a prompt, and explain why other options don’t fit.
---
Option A: Use special tokens
What it does: Special tokens in prompts are placeholders like `<NAME>` or `<DATE>` that the model can recognize or replace.
When to use: For inserting dynamic values inside the prompt, not for invoking external services.
Reason rejected: Special tokens cannot trigger an API call; they only allow data substitution inside the prompt.
---
Option B: Use a tools configuration
What it does: Tools configuration in Bedrock allows you to define external tools or APIs that the model can call during prompt execution. You can register an API endpoint, authentication, and inputs so the model can call it dynamically.
When to use: When a prompt needs to interact with external systems like databases, APIs, or custom services.
Reason selected:...
Author: Ethan Smith · Last updated Jul 19, 2026
A company wants to use Amazon Q Business for its data. The company needs to ensure the security and privacy of the data.
Which combi...
Let’s carefully analyze this AWS question about securing Amazon Q Business data. The key requirements here are security and privacy of data. That means the company wants to control who can access the data and encrypt it so unauthorized users cannot see it.
---
Option Analysis
A) Enable AWS Key Management Service (AWS KMS) keys for the Amazon Q Business Enterprise index ✅
Reasoning: KMS is used to encrypt data at rest. Using AWS KMS ensures that the data in the Amazon Q index is encrypted, providing a strong layer of privacy.
Scenario: Use when you need to protect sensitive data stored in AWS services.
Selected: ✅
---
B) Set up cross-account access to the Amazon Q index ⚠️
Reasoning: This allows users in other AWS accounts to access your Q index. While this can be controlled securely with IAM roles, cross-account access is not inherently about data privacy for internal use. It actually expands access, which may not align with “ensure security and privacy” unless carefully controlled.
Scenario: Only used when multiple AWS accounts need legitimate access to the same index.
Not selected for the default privacy requirement.
---
C) Configure Amazon Inspector for authentication ❌
Reasoning: Amazon Inspector is a ...
Author: Aria · Last updated Jul 19, 2026
A company uses Amazon Comprehend to analyze customer feedback. A customer has several unique trained models. The company uses Comprehend to assign each model an endpoint. The company wants to automate a report on each e...
Let's analyze the question carefully:
Scenario:
A company has multiple Amazon Comprehend endpoints for custom models.
They want to automate a report for endpoints that have not been used for more than 15 days.
Key requirement: detect usage inactivity and report it.
Now let's evaluate the options:
---
A) AWS Trusted Advisor
Purpose: Provides best practice checks for cost optimization, performance, security, fault tolerance, and service limits.
Key Factor: Trusted Advisor has a cost optimization check for unused resources, but it is limited to certain AWS services like EC2, RDS, and IAM; it does not check Amazon Comprehend endpoint usage.
Verdict: ❌ Rejected because it cannot monitor Comprehend endpoint usage.
---
B) Amazon CloudWatch
Purpose: Collects and tracks metrics, logs, and events for AWS resources.
Key Factor: Comprehend endpoints emit metrics (e.g., `Invocations`) to CloudWatch.
Scenario Fit:
You can create a CloudWatch metric filter or alarm to detect if an endpoint has had 0 invocations for 15 days.
You can then trigger reports or notifications using CloudWatch Events (EventBridge) or Lambda.
Verdict: ✅ Good fit because it directly tracks resource usage over time and can automate reporting.
---
C) AWS CloudTrail
Purpose: ...
Author: Harper · Last updated Jul 19, 2026
A company plans to use a generative AI model to provide real-time service quotes to users.
Which criteria should the comp...
For the use case you described—providing real-time service quotes to users using a generative AI model—the key factor is how quickly the model can respond to user requests, since real-time service requires minimal delay. Let’s go through the options carefully:
---
A) Model size
Consideration: Larger models usually have higher capabilities but also require more memory and computational resources.
Why rejected for this use case: While model size can influence performance, for real-time quoting, latency is more critical than raw size. A very large model may be accurate but slow, which can negatively impact user experience.
Scenario where useful: Model size is important when your priority is high-quality, complex generation, e.g., creating detailed reports or long-form content, where speed is less critical.
---
B) Training data quality
Consideration: High-quality training data ensures that the model’s outputs are accurate and reliable.
Why rejected for this use case: While accuracy is important for quotes, the company is likely using structured data (like pricing, service options, and rules). This makes data quality less of a differentiator, since the generative AI would be generating text from reliable structured inputs rather than learning new patterns from uncurated data.
Scenario where useful: Training data quality is critical for domain-specific tasks where factual correctness and nuanced understanding are key, e.g., ...
Author: Charlotte · Last updated Jul 19, 2026
An AI practitioner must fine-tune an open source large language model (LLM) for text categorization. The dataset is already prepared.
Which solutio...
Let's analyze the problem carefully. The key requirements are:
Fine-tune an open-source LLM.
Task is text categorization.
Dataset is already prepared.
We want the solution with the least operational effort.
Now, let's go through each option:
---
A) Create a custom model training job in PartyRock on Amazon Bedrock
Amazon Bedrock lets you access foundation models via API, but PartyRock is primarily for running and deploying foundation models, not full fine-tuning of open-source LLMs.
Fine-tuning in Bedrock is limited; most models are used via inference API with prompt customization, not direct model training.
Rejected because it may not allow direct fine-tuning and would add unnecessary complexity.
---
B) Use Amazon SageMaker JumpStart to create a training job
SageMaker JumpStart provides pre-built solutions and fine-tuning scripts for open-source models, including LLMs.
Allows few clicks setup, handles environment setup, training, and deployment with minimal effort.
Ideal for text classification tasks because many LLM solutions are already packaged with the right...
Author: Kai · Last updated Jul 19, 2026
A data engineer is configuring an AWS Glue job to read data from an Amazon S3 bucket. The data engineer has set up the necessary AWS Glue connection details and an associated IAM role. However, when the data engineer attempts to run the AWS Glue job, the data engineer receives an error message that indicates that there are problems with the Amazon S3...
Let's analyze the options one by one to identify the best solution for resolving the error related to the Amazon S3 VPC gateway endpoint in the AWS Glue job configuration:
A) Update the AWS Glue security group to allow inbound traffic from the Amazon S3 VPC gateway endpoint.
- Reasoning: AWS Glue does not need to have inbound traffic rules specific to the Amazon S3 VPC gateway endpoint. The AWS Glue service is typically connected via an outbound request to the S3 bucket through the VPC gateway endpoint, and inbound traffic configurations are not required. Thus, this solution does not directly address the issue at hand.
- Rejection: Not applicable because AWS Glue needs outbound rules, not inbound.
B) Configure an S3 bucket policy to explicitly grant the AWS Glue job permissions to access the S3 bucket.
- Reasoning: While configuring an S3 bucket policy to grant access might be useful for general access issues, the error mentioned in this case specifically points to a problem with the VPC gateway endpoint, not with the IAM or bucket permissions. The IAM role attached to AWS Glue already ensures it has the necessary permissions. Therefore, altering the S3 bucket policy is unlikely to solve the problem.
- Rejection: Not the right solution because the problem is related to the VPC gateway endpoint, not IAM or S3 policy.
C) Review the AWS Glue job code to ensure that the AWS Glue connection details include a fully qualified domain name.
- Re...
Author: Emma · Last updated Jul 30, 2026
A retail company has a customer data hub in an Amazon S3 bucket. Employees from many countries use the data hub to support company-wide analytics. A governance team must ensure that the company's data analysts can access data only for customers who are within...
Let's evaluate the options to determine which solution will meet the requirements with the least operational effort, while ensuring that data analysts can access data only for customers in the same country as them:
A) Create a separate table for each country's customer data. Provide access to each analyst based on the country that the analyst serves.
- Reasoning: This option involves creating separate tables for each country's data. Although this approach ensures analysts only access data from the relevant country, it requires significant management and maintenance. Specifically, you would need to create, update, and manage multiple tables for each country and assign analysts to the appropriate tables. This can become cumbersome and hard to scale as the number of countries and analysts grows.
- Rejection: This approach can become complex to manage and lacks scalability. It's not the most efficient solution for large or dynamic environments.
B) Register the S3 bucket as a data lake location in AWS Lake Formation. Use the Lake Formation row-level security features to enforce the company's access policies.
- Reasoning: AWS Lake Formation provides an efficient, managed solution to enforce data access policies based on row-level security. This option allows you to centralize access control and implement granular security at the row level, ensuring that analysts can access only the data corresponding to their country. It minimizes operational overhead, as policies can be managed in one place, and it supports scalability for adding new countries or analysts. Lake Formation also integrates well with other AWS services.
- Selection: This solution requires minimal operational effort, offers scalable access control, and directly meets the requirement of enforcing country-specific access without managing multiple tables or complex permissions manually.
- Conclusion: This is the most effi...
Author: Zara · Last updated Jul 30, 2026
A media company wants to improve a system that recommends media content to customer based on user behavior and preferences. To improve the recommendation system, the company needs to incorporate insights from third-party datasets into the company's existing analytics platform.The company wants to minimize the effor...
To recommend the best solution with minimal operational overhead, we need to evaluate each option in the context of data integration with third-party datasets, scalability, and simplicity of implementation.
A) Use API calls to access and integrate third-party datasets from AWS Data Exchange.
- AWS Data Exchange allows organizations to find, subscribe to, and use third-party data directly. It provides a marketplace where companies can access datasets without the need to build complex integration pipelines manually. The datasets are often available through APIs and are pre-integrated into the AWS ecosystem.
- Reasoning: This is the most suitable option because it directly targets the goal of incorporating third-party datasets into an analytics platform with minimal effort. The company does not need to manually handle data ingestion or develop APIs themselves.
- Key Factors:
- Quick access to third-party datasets.
- Minimal operational overhead.
- Built-in support for API calls.
B) Use API calls to access and integrate third-party datasets from AWS DataSync.
- AWS DataSync is primarily used for large-scale data migration and synchronization between on-premises systems and AWS storage (e.g., Amazon S3, Amazon EFS). It is typically used for migrating data, not integrating third-party datasets.
- Reasoning: While DataSync is a great tool for data migration, it is not designed to integrate with third-party datasets on an ongoing basis, making it less ideal in this context.
- Key Factors:
- DataSync is not intended for continuous third-party dataset integration.
- More suited for bulk migration of d...
Author: Aria · Last updated Jul 30, 2026
A financial company wants to implement a data mesh. The data mesh must support centralized data governance, data analysis, and data access control. The company has decided to use AWS Glue for data catalogs and extract, transform, a...
To implement a data mesh using AWS services, the solution must support centralized data governance, data analysis, and data access control while integrating with AWS Glue for data catalogs and ETL operations. Let's evaluate each option in terms of compatibility with these requirements.
A) Use Amazon Aurora for data storage. Use an Amazon Redshift provisioned cluster for data analysis.
- Amazon Aurora is a relational database service that provides high-performance and scalable data storage, but it is more optimized for transactional workloads rather than large-scale data mesh architectures.
- Amazon Redshift is a data warehouse used for data analysis, but it is often used in a more centralized data architecture, which contradicts the decentralized nature of a data mesh.
- Reasoning: While these services are great for relational storage and analytical purposes, they don't fit well with the distributed and decentralized architecture principles of a data mesh. They also lack the level of flexibility needed for decentralized governance, which is key in a data mesh.
B) Use Amazon S3 for data storage. Use Amazon Athena for data analysis.
- Amazon S3 is a highly scalable, durable, and cost-effective object storage service ideal for a data mesh. It supports the distributed nature of a data mesh by allowing different domains to manage their own data independently.
- Amazon Athena is a serverless interactive query service that allows you to analyze data directly in S3 using standard SQL. It supports data analysis without requiring data to be moved into a separate data warehouse, enabling decentralized access to data.
- Reasoning: This combination is highly suitable for implementing a data mesh because it supports decentralized storage and analysis, which are core to the data mesh concept. AWS Glue can integrate with S3 for data catalogs, and Athena allows for direct data access and analysis in a decentralized manner.
- Key Factors:
- Amazon S3 supports decentralized data ownership.
- Athena enables SQL-based analysis without centralizing data.
- Scalable and flexible for a data mesh architecture.
C) Use AWS Glue DataBrew for centralized data governance and access control.
- AWS Glue DataBrew is a visual data preparation tool that simplifies ...
Author: Layla · Last updated Jul 30, 2026
A data engineer maintains custom Python scripts that perform a data formatting process that many AWS Lambda functions use. When the data engineer needs to modify the Python scripts, the data engineer must manually update all the Lambda functions.The data...
To solve the problem of manually updating multiple Lambda functions when the Python scripts need modification, we need to find a way to centralize the script management and automatically propagate changes. Let's analyze each solution to identify the best option.
A) Store a pointer to the custom Python scripts in the execution context object in a shared Amazon S3 bucket.
- Explanation: Storing a pointer in the execution context object would imply storing metadata about the script's location in an execution context. However, the execution context is specific to each invocation of a Lambda function, meaning it's not a persistent or scalable solution for managing shared scripts.
- Reasoning: This method would require a Lambda function to fetch the script each time it runs, leading to possible inefficiencies and difficulty in managing updates across all Lambda functions. It doesn't centralize the script management or provide an easy way to modify scripts without manually updating each Lambda function to fetch the new pointer.
B) Package the custom Python scripts into Lambda layers. Apply the Lambda layers to the Lambda functions.
- Explanation: Lambda layers allow you to package reusable code, such as custom libraries or Python scripts, separately from the Lambda function itself. This way, you can update the layer (which contains the Python scripts) independently of the Lambda functions.
- Reasoning: This is the most suitable solution because it decouples the scripts from the individual Lambda functions. Once the Lambda layer is updated, all Lambda functions that use that layer will automatically benefit from the changes without needing to be updated manually. It also simplifies version management of the scripts, enabling easier updates across multiple functions.
...
Author: CrystalWolfX · Last updated Jul 30, 2026
A company created an extract, transform, and load (ETL) data pipeline in AWS Glue. A data engineer must crawl a table that is in Microsoft SQL Server. The data engineer needs to extract, transform, and load the output of the crawl to an Amazon S3 bucket. The data engineer al...
To meet the requirements of the ETL data pipeline, the goal is to extract data from a Microsoft SQL Server table, transform it, and load it to an S3 bucket while orchestrating the data pipeline. Let's analyze the given options and choose the most cost-effective one:
A) AWS Step Functions
- Description: AWS Step Functions is a service used to coordinate the components of distributed applications. It helps to define workflows that can involve multiple AWS services. However, it's generally more suited for complex state-based workflows and can involve multiple services such as AWS Lambda, AWS Glue, and others.
- Cost considerations: Step Functions may become expensive for workflows with many executions, as you are billed per state transition.
- Reason for rejection: While AWS Step Functions can orchestrate a workflow that includes AWS Glue, it requires you to integrate several services manually (like AWS Lambda for transformations or other orchestration tasks), and it is not inherently optimized for ETL tasks like Glue workflows are.
B) AWS Glue workflows
- Description: AWS Glue workflows is a feature of AWS Glue specifically designed to help orchestrate and manage ETL jobs. It integrates all the components of AWS Glue, such as crawlers, jobs, and triggers, and allows you to define and manage data pipelines.
- Cost considerations: AWS Glue workflows are integrated with the AWS Glue service, which means there is no need to pay for other orchestration services (like Step Functions or Airflow). You only pay for the Glue jobs and crawlers, making it more cost-effective.
- Reason for selection: Glue workflows are tailor-made for the ETL process and orchestration, with minimal complexity, making it a great option for this scenario. It is easy to integrate AWS Glue jobs and crawlers with workflows, and it provides an optimized experience for extracting data from a database (SQL Server in this case), transforming it, and loading it into S3.
C) AWS Glue Studio
- Description: AWS Glue Studio provides a visual interface to design, run, and monitor ...
Author: Emma Brown · Last updated Jul 30, 2026
A financial services company stores financial data in Amazon Redshift. A data engineer wants to run real-time queries on the financial data to support a web-based trading application. The data engineer wants to run the queries from within t...
To meet the requirements of running real-time queries on financial data stored in Amazon Redshift with the least operational overhead, let's analyze each option carefully:
A) Establish WebSocket connections to Amazon Redshift
- Description: WebSockets are typically used to establish real-time communication between a server and client. However, Amazon Redshift doesn't natively support WebSocket connections. WebSocket connections would require additional setup and middleware to act as a bridge, adding complexity to the solution.
- Reason for rejection: Redshift doesn't directly support WebSocket connections, so this option is not feasible or cost-effective. WebSocket connections would require external components or custom solutions to integrate with Amazon Redshift, adding complexity and increasing operational overhead.
B) Use the Amazon Redshift Data API
- Description: The Amazon Redshift Data API allows you to run SQL queries against your Redshift data without needing to manage persistent database connections. The API can be invoked directly from the web-based trading application, providing an easy way to integrate real-time querying functionality.
- Reason for selection: The Data API simplifies querying Redshift in real-time without the need for managing connection pooling, JDBC, or direct database access. It is specifically designed for serverless, application-based queries with low operational overhead. This is the most efficient and scalable option to run real-time queries from within the trading application with minimal setup.
C) Set up Java Database Connectivity (JDBC) connections to Amazon Redshift
- Description: JDBC is a standard Java API for connecting to relational databases, ...
Author: Akash · Last updated Jul 30, 2026
A company uses Amazon Athena for one-time queries against data that is in Amazon S3. The company has several use cases. The company must implement permission controls to separate query processes and access to query history among users,...
To meet the requirement of implementing permission controls to separate query processes and access to query history among users, teams, and applications that are in the same AWS account, let's analyze each option carefully:
A) Create an S3 bucket for each use case. Create an S3 bucket policy that grants permissions to appropriate individual IAM users. Apply the S3 bucket policy to the S3 bucket.
- Description: This option suggests managing permissions at the S3 bucket level. While S3 bucket policies can control access to data, they do not directly address query-level permission separation or query history in Athena. This option only controls access to the data stored in S3, not the execution of queries or query history within Athena.
- Reason for rejection: The main challenge here is that this option does not provide a way to manage permissions on Athena queries themselves or query history. This would not be sufficient for controlling access to query history or separating query processes for different use cases. Additionally, S3 bucket policies are limited to data storage and don’t have direct control over Athena's query operations.
B) Create an Athena workgroup for each use case. Apply tags to the workgroup. Create an IAM policy that uses the tags to apply appropriate permissions to the workgroup.
- Description: Athena workgroups are designed to manage different sets of query executions within Athena. Each workgroup can be associated with a different set of configurations, such as query history, encryption settings, and output location. By using IAM policies with tags, you can control permissions at a more granular level for each use case.
- Reason for selection: This is the most appropriate option because Athena workgroups allow you to isolate different query processes, assign separate query histories, and apply permissions at a workgroup level. By using tags in IAM policies, you can manage which users or teams have access to specific workgroups and their associated query histories, meeting the requirement to separate query processes and access.
C) Create an IAM role for each use case. Assign appropriate permissions to the role for each use case. Associate the role wi...
Author: Zara · Last updated Jul 30, 2026
A data engineer needs to schedule a workflow that runs a set of AWS Glue jobs every day. The data engineer does not require the Glue jobs to run or finish at a specific t...
To determine the most cost-effective solution for scheduling AWS Glue jobs to run every day without needing them to run at a specific time, let's analyze each option:
A) Choose the FLEX execution class in the Glue job properties
- Description: The FLEX execution class is designed for jobs that don't require the high performance and guaranteed availability of the STANDARD class. It offers lower-cost compute resources by using AWS Glue's serverless infrastructure and only charging for actual compute usage during job execution.
- Reason for selection: FLEX is ideal for cost-effective workloads that can tolerate lower performance or variability in job execution time. Since the data engineer does not require the jobs to run at a specific time, FLEX is a suitable choice. It ensures cost efficiency by only charging for the resources used during the execution.
B) Use the Spot Instance type in Glue job properties
- Description: Spot instances are a cost-saving option for running AWS Glue jobs, where jobs are run on spare EC2 instances that are available at a lower price. However, Spot instances can be interrupted if AWS needs the capacity for other workloads.
- Reason for rejection: While Spot instances are cost-effective, they are not ideal for workflows that need to be reliable and have predictable execution times. Since the Glue jobs in this case run daily and the data engineer does not require strict timing, Spot instances can lead to interruptions and unpredictable job behavior, which is not ideal for consistent scheduling.
C) Choose the STANDARD execution class in the Glue job properties
- Description: The STANDARD ...
Author: Rohan · Last updated Jul 30, 2026
A data engineer needs to create an AWS Lambda function that converts the format of data from .csv to Apache Parquet. The Lambda function must run only if a user uploads a .csv file to an Amazon S3 b...
To create an AWS Lambda function that converts data from .csv to Apache Parquet format, and to ensure it runs only when a .csv file is uploaded to an S3 bucket with the least operational overhead, let's analyze the options.
A) Create an S3 event notification that has an event type of s3:ObjectCreated:. Use a filter rule to generate notifications only when the suffix includes .csv. Set the Amazon Resource Name (ARN) of the Lambda function as the destination for the event notification.
- Description: This solution configures an S3 event notification that triggers when an object is created in the bucket. It uses a suffix filter to ensure the event triggers only when a `.csv` file is uploaded. The Lambda function is directly invoked by the S3 event notification.
- Reason for selection: This option is the most cost-effective and straightforward solution because it directly links the S3 event notification to the Lambda function. When a `.csv` file is uploaded, S3 sends the event to Lambda with no intermediary service required. This minimizes complexity and operational overhead.
B) Create an S3 event notification that has an event type of s3:ObjectTagging: for objects that have a tag set to .csv. Set the Amazon Resource Name (ARN) of the Lambda function as the destination for the event notification.
- Description: This option triggers Lambda when a tag is added to an object. It requires tagging the `.csv` files with a specific tag, which adds unnecessary complexity and operational overhead. The event is based on tag changes, not file uploads.
- Reason for rejection: Tagging adds an additional step and complexity. It requires managing tags for each object, which is an extra layer that is not needed in this scenario. The goal is to trigger Lambda when a `.csv` file is uploaded, and tagging isn’t the most efficient way to accomplish this.
C) Create an S3 event notification that has an event type of s3:. Use a filter rule to generate notifications only when the suffix includes .csv. Set the Amazon Resource Name (ARN) of the Lambda function as the des...
Author: Benjamin · Last updated Jul 30, 2026
A data engineer needs Amazon Athena queries to finish faster. The data engineer notices that all the files the Athena queries use are currently stored in uncompressed .csv format. The data engineer also notices that users perform most ...
To optimize Amazon Athena query performance, especially for use cases where specific columns are frequently queried, the focus should be on improving file structure, reducing the amount of data scanned, and increasing query efficiency. Here's an evaluation of each option:
A) Change the data format from .csv to JSON format. Apply Snappy compression.
- Why it's not optimal: JSON is a semi-structured format, and while it is compressible, it is not as efficient as columnar storage formats like Parquet for column-based queries. JSON files can still be large and inefficient for columnar queries because it doesn’t provide any benefits in reducing the data scanned for specific columns.
- Scenario: Use JSON when dealing with semi-structured or nested data, but not when performance for large-scale queries on specific columns is the primary concern.
B) Compress the .csv files by using Snappy compression.
- Why it's not optimal: While Snappy compression is faster and efficient compared to gzip, it does not change the underlying row-based nature of CSV files. This will not dramatically improve query performance in Athena since Athena will still have to scan through the entire dataset to find relevant columns.
- Scenario: This could be beneficial for scenarios where only light compression is required, but it’s still not ideal for large-scale, column-focused queries.
C) Change the data format from .csv to Apache Parquet. Apply Snappy compression.
- Why it's ...
Author: IronLion88 · Last updated Jul 30, 2026
A manufacturing company collects sensor data from its factory floor to monitor and enhance operational efficiency. The company uses Amazon Kinesis Data Streams to publish the data that the sensors collect to a data stream. Then Amazon Kinesis Data Firehose writes the data to an Amazon S3 bucket.The company needs to display a real-time v...
To meet the company's need for displaying a real-time view of operational efficiency with low latency, we need to consider several key factors:
1. Real-time processing: The solution must process sensor data in real-time to display operational metrics with minimal delay.
2. Low latency: The solution should ensure that the sensor data is ingested and processed with as little delay as possible.
3. Ease of visualization: The data needs to be easily accessible for creating dashboards that update in real-time, ensuring it’s actionable for users on the factory floor.
A) Use Amazon Managed Service for Apache Flink (previously known as Amazon Kinesis Data Analytics) to process the sensor data. Use a connector for Apache Flink to write data to an Amazon Timestream database. Use the Timestream database as a source to create a Grafana dashboard.
- Why it's a good option: Amazon Kinesis Data Analytics for Apache Flink provides real-time stream processing, which is ideal for processing sensor data with low latency. Apache Flink can process data in real-time as it flows through Kinesis Data Streams and write it directly to Amazon Timestream, a time-series database optimized for storing and analyzing real-time data.
- Why it's better: Timestream integrates well with Grafana for real-time dashboards. Grafana’s ability to visualize time-series data from Timestream makes this solution very suitable for operational monitoring.
- Scenario: This is optimal for situations where real-time data ingestion, processing, and display are required, as it provides low-latency processing and easy dashboarding.
B) Configure the S3 bucket to send a notification to an AWS Lambda function when any new object is created. Use the Lambda function to publish the data to Amazon Aurora. Use Aurora as a source to create an Amazon QuickSight dashboard.
- Why it's not ideal: While Aurora can store relational data efficiently, this setup introduces unnecessary delays because Lambda would process data based on S3 notifications, which may not be as near real-time as Kinesis. Aurora also doesn't support the same low-latency, real-time ingestion and querying that Timestream does. Additionally, QuickSight dashb...
Author: Nathan · Last updated Jul 30, 2026
A company stores daily records of the financial performance of investment portfolios in .csv format in an Amazon S3 bucket. A data engineer uses AWS Glue crawlers to crawl the S3 data.The data engineer must make the S3 ...
To meet the requirement of making S3 data accessible daily in the AWS Glue Data Catalog, we need to focus on:
1. Correct IAM Role: The IAM role should have permissions to interact with AWS Glue and the S3 bucket.
2. Crawler Configuration: The crawler needs to be scheduled to run daily and update the Data Catalog with metadata from the S3 data.
3. Output Destination: The output should be stored in the Glue Data Catalog, not necessarily back into the S3 bucket.
A) Create an IAM role that includes the AmazonS3FullAccess policy. Associate the role with the crawler. Specify the S3 bucket path of the source data as the crawler's data store. Create a daily schedule to run the crawler. Configure the output destination to a new path in the existing S3 bucket.
- Why it’s not ideal: The `AmazonS3FullAccess` policy grants full access to S3, but this policy is too permissive for Glue tasks. The key role that Glue needs is `AWSGlueServiceRole`, which provides permissions specific to AWS Glue, like crawling data and interacting with the Data Catalog.
- Scenario: This setup could work if the goal was just to access the S3 data, but it doesn’t follow best practices by granting overly broad permissions.
B) Create an IAM role that includes the AWSGlueServiceRole policy. Associate the role with the crawler. Specify the S3 bucket path of the source data as the crawler's data store. Create a daily schedule to run the crawler. Specify a database name for the output.
- Why it’s ideal: This approach uses the correct IAM role, `AWSGlueServiceRole`, which is designed for Glue operations like crawling and interacting with the Data Catalog. The output destination is specified as a database in the Data Catalog, which aligns with the requirement to make the data accessible in the Glue Data Catalog.
- Scenario: This option is appropriate for ensuring the S3 data is regularly ingested i...
Author: Samuel · Last updated Jul 30, 2026
A company loads transaction data for each day into Amazon Redshift tables at the end of each day. The company wants to have the ability to track which tables have been loaded and which tables still need to be loaded.A data engineer wants to store the load statuses of Redshift tables in an Amazon DynamoDB table. The data engineer creates an AWS Lambda function t...
To meet the requirement of tracking the load statuses of Amazon Redshift tables and invoking a Lambda function to store this information in DynamoDB, the solution should ensure that the Lambda function is triggered when the transaction data is loaded into Redshift. The key is to invoke the Lambda function efficiently while considering the best practices for scalability, flexibility, and ease of management.
A) Use a second Lambda function to invoke the first Lambda function based on Amazon CloudWatch events.
- Why it's not ideal: While CloudWatch events can be used to monitor scheduled tasks and services, it would be cumbersome to rely on a second Lambda function to invoke the first one. CloudWatch events are typically better suited for triggering actions based on system events rather than for direct invocation of another Lambda function to handle specific task-based processing.
- Scenario: This solution could be useful in other cases but adds unnecessary complexity for the task at hand.
B) Use the Amazon Redshift Data API to publish an event to Amazon EventBridge. Configure an EventBridge rule to invoke the Lambda function.
- Why it's a good option: Amazon Redshift Data API allows you to interact with Redshift without the need for a JDBC connection. By using EventBridge to publish an event when Redshift finishes loading data, EventBridge can trigger the Lambda function to store the load status in DynamoDB. This is a clean, efficient, and scalable solution, as EventBridge allows decoupled, event-driven architectures.
- Scenario: This is an ideal solution for tracking Redshift load status and triggering an action in a real-time, event-driven fashion. It also keeps things modular and scalable.
C) Use the Amazon Redshift Data API to publish a message to an Amazon Simple Queue Service (Amaz...
Author: Henry · Last updated Jul 30, 2026
A data engineer needs to securely transfer 5 TB of data from an on-premises data center to an Amazon S3 bucket. Approximately 5% of the data changes every day. Updates to the data need to be regularly proliferated to the S3 bucket. The data includes files that are in multiple formats. The data engineer needs to automate the transfer process and mus...
When transferring 5 TB of data with regular updates (5% daily changes) and multiple file formats, the primary goals are automation, efficiency, security, and scalability. Let's evaluate each option based on these factors.
A) AWS DataSync
- Why it's the best choice: AWS DataSync is a managed service designed specifically for automating and securely transferring large amounts of data between on-premises environments and AWS services like S3. It supports automatic scheduling, handles incremental changes (e.g., the 5% of daily data updates), and is optimized for operational efficiency. DataSync can transfer data in multiple formats and is capable of handling large data volumes efficiently. It ensures security with encryption during transit and integrates well with other AWS services.
- Scenario: Ideal for transferring large datasets from on-premises to S3 with regular updates, automation, and scheduling capabilities.
B) AWS Glue
- Why it's not ideal: AWS Glue is a fully managed ETL service for preparing and transforming data. While it can move data to S3, it’s primarily designed for transforming and processing data, not for large-scale data transfer. It can be more complex to set up for direct data transfers compared to AWS DataSync. Additionally, Glue would require more configuration to handle the regular updates, and the transformation aspect may not be necessary for simple data migration.
- Scenario: AWS Glue is best suited for data transformation or ETL jobs rather than bulk data transfers with incremental updates.
...
Author: Sophia Clark · Last updated Jul 30, 2026
A company uses an on-premises Microsoft SQL Server database to store financial transaction data. The company migrates the transaction data from the on-premises database to AWS at the end of each month. The company has noticed that the cost to migrate data from the on-premises database to an Amazon RDS for SQL Server database has increased recently.The company requires a cost-effective solution to migrat...
To select the most cost-effective and efficient solution for migrating transaction data from the on-premises SQL Server database to Amazon RDS for SQL Server, we need to consider the following factors:
1. Cost-effectiveness: The solution should minimize the overall migration cost.
2. Minimal Downtime: The solution should minimize the impact on applications during migration.
3. Ease of Migration: The solution should simplify the migration process without complex setup or management.
4. Scalability: The solution should be capable of handling the scale of data migration efficiently.
Option A: AWS Lambda
AWS Lambda is designed for event-driven computing and short-lived tasks. While it can be used for small data processing and migration tasks, it is not ideal for large-scale database migrations. Lambda functions are not designed to handle the full database migration process (especially for large datasets like transaction data). Using Lambda in this case would require considerable overhead in setting up the logic for migration, and it might not handle the high throughput or large data volumes efficiently.
- Rejected due to: It is not suitable for large-scale database migrations due to limitations on execution duration and data handling.
Option B: AWS Database Migration Service (AWS DMS)
AWS DMS is specifically designed to handle database migrations from on-premises databases to AWS-managed databases (e.g., Amazon RDS). AWS DMS supports minimal downtime migration by continuously replicating data from the source database to the target database while maintaining the database’s availability. It provides features like continuous data replication and supports both full and incremental data loads.
- Selected due to:
- AWS DMS is optimized for database migrations, including support for SQL Server.
-...
Author: Samuel · Last updated Jul 30, 2026
A data engineer is building a data pipeline on AWS by using AWS Glue extract, transform, and load (ETL) jobs. The data engineer needs to process data from Amazon RDS and MongoDB, perform transformations, and load the transformed data into Amazon Redshift for analytics. The data updates mus...
Key Factors for Selection:
1. Operational Overhead: The goal is to minimize manual intervention and complexity in the solution.
2. Efficiency: The solution must support the regular, hourly update frequency and integrate with the necessary data sources (Amazon RDS, MongoDB, Amazon Redshift).
3. Integration and Automation: The solution should automate the ETL process as much as possible, ensuring scalability and ease of management.
Option A: Configure AWS Glue triggers to run the ETL jobs every hour.
Selected for:
AWS Glue triggers allow you to automate ETL job execution at regular intervals, such as every hour. Once set up, this reduces the need for manual intervention, as Glue can manage the scheduling of jobs to run at precise times. This task is the most effective way to automate the ETL process and ensure that data is processed and loaded into Amazon Redshift every hour.
- Selected because: It minimizes operational overhead and fits perfectly with the need for hourly ETL updates.
Option B: Use AWS Glue DataBrew to clean and prepare the data for analytics.
Rejected for:
AWS Glue DataBrew is a tool for data preparation that provides a no-code interface to clean and transform data. While DataBrew is useful for one-time or ad-hoc data transformations, it is not designed for fully automated ETL workflows like those required for continuous hourly updates. DataBrew would add unnecessary complexity to an automated pipeline.
- Rejected because: DataBrew is better suited for interactive data preparation rather than automated, scheduled ETL tasks that involve multiple data sources.
Option C: Use AWS Lambda functions to schedule and run the ETL jobs every hour.
Rejected for:
While AWS Lambda can be used to execute code (such as invoking AWS Glue jobs), it is not the most suitable option for this use case. Lambda functions are generally better for event-driven tasks and small processing workloads. Running hourly ETL jobs via Lambda would require additional effort to manage ...
Author: Sofia2021 · Last updated Jul 30, 2026
A company uses an Amazon Redshift cluster that runs on RA3 nodes. The company wants to scale read and write capacity to meet demand. A data engineer needs to identify a solution th...
Key Factors for Selection:
1. Concurrency Scaling: The goal is to ensure that Amazon Redshift can automatically scale the resources to handle peak load times by turning on concurrency scaling.
2. RA3 Nodes: Since the company is using RA3 nodes, it’s important to ensure that the solution is applicable to RA3-based clusters, which supports concurrency scaling.
3. Operational Simplicity: The solution should be easy to configure and provide the required scalability without unnecessary complexity.
Option A: Turn on concurrency scaling in workload management (WLM) for Redshift Serverless workgroups.
Rejected for:
This option is specific to Amazon Redshift Serverless, which is a different offering from the standard Amazon Redshift clusters. Amazon Redshift Serverless automatically manages concurrency scaling without requiring manual configuration of WLM queues. However, the question specifies that the company uses an Amazon Redshift cluster on RA3 nodes, not Redshift Serverless.
- Rejected because: This option is applicable only to Redshift Serverless and not for clusters running on RA3 nodes.
Option B: Turn on concurrency scaling at the workload management (WLM) queue level in the Redshift cluster.
Selected for:
Concurrency scaling is configured via WLM in standard Amazon Redshift clusters (including RA3 nodes). By turning on concurrency scaling at the WLM queue level, Amazon Redshift can automatically add additional resources to handle peak workloads, thereby increasing the available capacity for both read and write operations during periods of high demand. This solution directly addresses the need to scale ...
Author: Amelia · Last updated Jul 30, 2026
A data engineer must orchestrate a series of Amazon Athena queries that will run every day. Each query can run for more than 15 minutes.Which combination of st...
Key Factors for Selection:
1. Cost-effectiveness: The solution should minimize costs while effectively orchestrating the Athena queries.
2. Scalability and Automation: The solution should be scalable and automated, reducing manual intervention.
3. Long-running queries: Since each query may run for more than 15 minutes, it’s important to select a solution that can handle long-running processes and track the completion of those processes.
4. Simplicity of orchestration: The solution should provide a simple way to manage the flow of queries and avoid excessive complexity.
Option A: Use an AWS Lambda function and the Athena Boto3 client start_query_execution API call to invoke the Athena queries programmatically.
Rejected for:
While AWS Lambda can invoke Athena queries, it has a maximum execution duration of 15 minutes. Since each query can run for longer than 15 minutes, this would exceed Lambda’s time limit. It would not be able to handle queries that exceed this duration.
- Rejected because: AWS Lambda cannot handle long-running queries that take more than 15 minutes to execute.
Option B: Create an AWS Step Functions workflow and add two states. Add the first state before the Lambda function. Configure the second state as a Wait state to periodically check whether the Athena query has finished using the Athena Boto3 get_query_execution API call. Configure the workflow to invoke the next query when the current query has finished running.
Selected for:
AWS Step Functions is an excellent choice for orchestrating long-running tasks. The workflow can check if an Athena query has completed using the `get_query_execution` API call, and can also incorporate delays (Wait state) between checks. Step Functions allow the orchestration of multiple queries, including adding conditional logic or retries if needed. It is highly scalable and ensures that each query is run after the previous one completes, all without exceeding Lambda’s 15-minute execution limit.
- Selected because: Step Functions can handle long-running tasks by using Wait states and periodic checks, making it ideal for orchestrating Athena queries that take more than 15 minutes.
Option C: Use an AWS Glue Python shell job and the Athena Boto3 client start_query_execution API call to invoke the Athena queries programmatically.
Rejected for:
Although AWS Glue Python shell jobs can run long-running scripts, t...
Author: Ella · Last updated Jul 30, 2026
A company is migrating on-premises workloads to AWS. The company wants to reduce overall operational overhead. The company also wants to explore serverless options.The company's current workloads use Apache Pig, Apache Oozie, Apache Spark, Apache Hbase, and Apache Flink. The on-premises workloads process petabytes of data in seconds. The company...
When evaluating the best ETL service for the given scenario, we need to consider the specific requirements of the company, such as reducing operational overhead, exploring serverless options, maintaining performance, and ensuring scalability for large data processing.
A) AWS Glue
- Overview: AWS Glue is a fully managed, serverless ETL service that automates the process of data discovery, cataloging, cleaning, transforming, and loading data for analytics. It is designed to handle large-scale data processing workloads.
- Key Features:
- Serverless architecture, so no infrastructure management is required.
- Integrates well with a variety of data sources and can work with Amazon S3, Amazon RDS, Amazon Redshift, and other AWS services.
- Supports Apache Spark for distributed processing, which aligns well with the company’s current use of Apache Spark.
- Can handle petabytes of data and scale automatically.
- Offers flexible transformations and can process structured and semi-structured data.
- Supports integration with Apache HBase for certain workloads.
- Great for ETL jobs with minimal operational overhead.
- Suitability: This service is ideal for serverless ETL workflows, as it reduces the need for infrastructure management and provides built-in scalability. It supports serverless transformations and is capable of handling petabyte-scale data processing, matching the performance requirements.
B) Amazon EMR
- Overview: Amazon EMR is a managed cluster platform for running big data frameworks like Apache Hadoop, Apache Spark, Apache HBase, and Apache Flink. It is ideal for running distributed workloads in a cluster-based environment.
- Key Features:
- Can run Apache Spark, Apache HBase, and Apache Flink, which are technologies already used by the company.
- Requires provisioning and managing instances, so not fully serverless (although it does offer automation features).
- Scalable, but requires manual management of infrastructure in many cases.
- Suitable for complex, custom big data processing tasks.
- Suitability: While powerful and able to run the existing stack (Apache Pig, Oozie, Spark, HBase, Flink), Amazon EMR requires more operational overhead compared to AWS Glue, and it doesn’t fully meet the goal of reducing operation...
Author: Alexander · Last updated Jul 30, 2026
A data engineer must use AWS services to ingest a dataset into an Amazon S3 data lake. The data engineer profiles the dataset and discovers that the dataset contains personally identifiable information (PII). The data engineer must implement a solution to profi...
Let's analyze the given options based on key factors such as ease of implementation, operational overhead, and how well each solution integrates with AWS services for processing and ingesting the dataset while ensuring the PII is obfuscated.
Option A: Use an Amazon Kinesis Data Firehose delivery stream to process the dataset. Create an AWS Lambda transform function to identify the PII. Use an AWS SDK to obfuscate the PII. Set the S3 data lake as the target for the delivery stream.
- Strengths:
- Kinesis Data Firehose is a fully managed service that can automatically stream data to Amazon S3 with minimal setup.
- Lambda functions can be used for transformation and custom processing of data before ingestion.
- Provides flexibility for identifying and obfuscating PII using AWS SDKs.
- Challenges:
- The operational complexity of managing Lambda for PII identification and obfuscation might be higher, as Lambda requires custom coding and deployment.
- The solution requires manual handling of PII identification logic, and additional testing is needed to ensure accuracy.
- Best scenario:
- This option is suitable when streaming large amounts of real-time data and needing custom processing logic. However, it introduces more operational overhead due to the manual PII transformation steps.
Option B: Use the Detect PII transform in AWS Glue Studio to identify the PII. Obfuscate the PII. Use an AWS Step Functions state machine to orchestrate a data pipeline to ingest the data into the S3 data lake.
- Strengths:
- AWS Glue Studio provides an easy-to-use interface for managing ETL pipelines, with built-in support for PII detection and transformation.
- Using Step Functions for orchestration allows easy handling of complex workflows and integrating with different AWS services.
- Glue Studio abstracts much of the complexity involved in detecting and transforming PII, reducing operational overhead.
- Challenges:
- Glue Studio may require some familiarity with AWS services, but it is still a low-effort solution compared to manually writing Lambda functions.
- Step Functions add some complexity in orchestrating workflows but provide better control over the pipeline.
- Best scenario:
- This option is ideal for structured batch processing of data and for users who need a fully managed ETL pipeline with PII detection and transformation.
Option C: Use the Detect PII transform in AWS Glue Studio to identif...
Author: Aria · Last updated Jul 30, 2026
A company maintains multiple extract, transform, and load (ETL) workflows that ingest data from the company's operational databases into an Amazon S3 based data lake. The ETL workflows use AWS Glue and Amazon EMR to process data.The company wants to improve the existing architecture to provide automated ...
When evaluating the best solution to improve the architecture with automated orchestration and minimal manual effort, we need to focus on how each option handles automation, orchestration, and minimizes operational overhead while integrating with existing AWS Glue and Amazon EMR workflows. Let’s break down each option.
A) AWS Glue Workflows
- Overview: AWS Glue Workflows provide a way to manage and automate the execution of ETL jobs and other tasks within AWS Glue. It allows you to define, schedule, and monitor workflows using a visual interface.
- Key Features:
- Fully integrated with AWS Glue, which is already being used for ETL processing.
- Offers orchestration of multiple AWS Glue jobs and crawlers.
- Handles job retries, failure handling, and monitoring in a centralized manner.
- Serverless, with no infrastructure management required.
- Suitability: This solution integrates directly with the existing AWS Glue-based ETL workflows, minimizing the need for additional configuration and manual effort. It offers automated orchestration of Glue jobs and supports monitoring and error handling, which reduces operational overhead.
B) AWS Step Functions Tasks
- Overview: AWS Step Functions is a serverless orchestration service that allows you to coordinate multiple AWS services, including AWS Lambda, Amazon EC2, AWS Glue, and others, into workflows.
- Key Features:
- Flexible and powerful orchestration of complex workflows across AWS services.
- Can trigger AWS Glue jobs, Amazon EMR tasks, and other services as part of a larger process.
- Suitable for workflows that span multiple services and are highly customizable.
- More operational overhead due to the need for additional setup and custom workflows for orchestration.
- Suitability: While AWS Step Functions is flexible and can orchestrate multiple services, it is more complex to set up and manage compared to AWS Glue Workflows when the primary requirement is orchestrating AWS Glue-based ETL tasks. The added complexity might lead to higher operational overhead compared to a Glue-native solution.
C) AWS Lambda Functions
- Overview: AWS Lambda allows you to run code without provisioni...
Author: Sophia · Last updated Jul 30, 2026
A company currently stores all of its data in Amazon S3 by using the S3 Standard storage class.A data engineer examined data access patterns to identify trends. During the first 6 months, most data files are accessed several times each day. Between 6 months and 2 years, most data files are accessed once or twice each month. After 2 years, data files are accessed only once or twice each year.The data engineer needs to use an S3 Lifecyc...
To determine the most cost-effective solution for this scenario, we need to evaluate the access patterns and choose the best combination of Amazon S3 storage classes, while ensuring high availability and minimizing cost.
Data Access Pattern:
1. First 6 months: The data is accessed several times a day, so it should remain in the S3 Standard storage class to allow fast and frequent access.
2. 6 months to 2 years: The data is accessed only once or twice a month, meaning the data can be moved to a less expensive storage class that still provides relatively quick access, but at a lower cost.
3. After 2 years: The data is accessed only once or twice a year, so it can be moved to the lowest-cost storage class with longer retrieval times since it’s rarely accessed.
Key Storage Classes:
- S3 Standard: Best for frequently accessed data with high availability and low latency.
- S3 Standard-IA (Infrequent Access): For data that is infrequently accessed, but needs to be retrieved quickly when needed. It has a lower storage cost than S3 Standard but higher retrieval costs.
- S3 One Zone-IA: Similar to S3 Standard-IA but stores data in a single availability zone. It offers a lower cost but is less durable because of the single availability zone storage.
- S3 Glacier Flexible Retrieval: Designed for archival storage, with lower costs than standard S3 classes. It has retrieval times that range from minutes to hours.
- S3 Glacier Deep Archive: The lowest-cost storage class designed for long-term archival storage. Retrieval times range from hours to a day, making it suitable for data that is rarely accessed.
Analysis of Each Option:
A) Transition objects to S3 One Zone-Infrequent Access (S3 One Zone-IA) after 6 months. Transfer objects to S3 Glacier Flexible Retrieval after 2 years.
- S3 One Zone-IA after 6 months: This is a cost-effective option for infrequent access data. However, since S3 One Zone-IA stores data in a single availability zone, it has lower durability compared to S3 Standard-IA. If high durability and availability are crucial, this is not the best option.
- S3 Glacier Flexible Retrieval after 2 years: Suitable for low-cost archival, but with retrieval times that could be longer (minutes to hours), it works well for data that is rarely accessed.
- Verdict: This option has a potential risk of lower durability and availability due to the use of S3 One Zone-IA, which might not align with the company's needs for high availability.
B) Transition objects to S3 Standard-Infrequent Access (S3 Standard-IA) after 6 months. Transfer objects to S3 Glacier Flexible Retrieval after 2 years.
- S3 Standard-IA after 6 months: S3 Standard-IA is a better option for infrequent access data that...
Author: Grace · Last updated Jul 30, 2026
A company maintains an Amazon Redshift provisioned cluster that the company uses for extract, transform, and load (ETL) operations to support critical analysis tasks. A sales team within the company maintains a Redshift cluster that the sales team uses for business intelligence (BI) tasks.The sales team recently requested access to the data that is in the ETL Redshift cluster so the team can perform weekly summary analysis tasks. The sales team needs to join data from the ETL cluster with data that is in the sales team's BI cluster.The company needs a...
To meet the sales team’s requirement for accessing data from the ETL Redshift cluster while minimizing impact on the ETL cluster’s performance, we need to consider the best method of sharing data that balances both performance and resource utilization. Let's evaluate the options:
Option A: Set up the sales team BI cluster as a consumer of the ETL cluster by using Redshift data sharing.
- Strengths:
- Redshift data sharing is specifically designed for this type of use case. It allows the sales team to access data in the ETL cluster without duplicating data, and it minimizes the impact on the ETL cluster’s compute resources.
- Data sharing enables near-real-time access without needing to unload or copy data, making it a highly efficient solution.
- It is a fully managed, serverless feature that reduces operational overhead.
- Challenges:
- This option requires that both clusters (the ETL and the sales team BI cluster) be in the same region, but that’s typically the case in most scenarios.
- Best scenario:
- This is the best solution when there is a need to provide data access without duplicating data or impacting the performance of the ETL cluster. Since it involves minimal resource consumption on the ETL cluster, it fits perfectly with the requirement to minimize the usage of compute resources while providing access to the sales team.
Option B: Create materialized views based on the sales team's requirements. Grant the sales team direct access to the ETL cluster.
- Strengths:
- Materialized views can be used to precompute and store the results of the sales team’s queries, reducing the computational load when accessing the data.
- Challenges:
- While materialized views improve query performance, they still consume ETL cluster resources when refreshed, which could impact critical analysis tasks.
- The sales team would also need direct access to the ETL cluster, which may introduce security or access management concerns.
- The refresh process might be costly in terms of computing resources, especially if the sales team queries large datasets.
- Best scenario:
- This solution works well when data consistency is important, and the refresh frequency of the materialized views can be controlled, but it could still impact the performance of the ETL cluster.
...
Author: Mia · Last updated Jul 30, 2026
A data engineer needs to join data from multiple sources to perform a one-time analysis job. The data is stored in Amazon DynamoDB, Amazon RDS, Amazon Redshift, and Am...
Let's analyze each option based on cost-effectiveness, performance, and the requirements of performing a one-time analysis involving data from multiple sources.
Option A: Use an Amazon EMR provisioned cluster to read from all sources. Use Apache Spark to join the data and perform the analysis.
- Strengths:
- Amazon EMR provides a powerful distributed data processing environment and can handle large-scale data analysis tasks with tools like Apache Spark.
- Apache Spark is highly efficient for processing and joining data from different sources.
- Challenges:
- Provisioning and maintaining an EMR cluster can be costly and time-consuming, especially for a one-time analysis job. You would need to pay for the cluster’s compute and storage resources during the analysis period.
- The operational overhead and resource costs can be high compared to other serverless options, especially for a one-time job.
- Best scenario:
- This option is best for very large-scale data processing tasks where performance is critical and ongoing analysis jobs are required. However, for a one-time analysis, the cost is prohibitive.
Option B: Copy the data from DynamoDB, Amazon RDS, and Amazon Redshift into Amazon S3. Run Amazon Athena queries directly on the S3 files.
- Strengths:
- Amazon Athena is a serverless, cost-effective query service that allows you to run SQL queries directly on data stored in Amazon S3. You only pay for the amount of data scanned, making it highly cost-effective.
- Moving the data into S3 and using Athena for a one-time analysis avoids the need for provisioning any infrastructure or maintaining clusters.
- Athena is easy to use for ad-hoc queries and can handle various data formats stored in S3, including CSV, Parquet, and JSON.
- Challenges:
- Copying the data from multiple sources to S3 requires data movement, which may incur additional costs (e.g., data transfer, storage costs).
- The process of moving data to S3 might require some manual work or scripting, which could add overhead.
- Best scenario:
- This option is great for a one-time analysis task because it’s low-cost and avoids the complexity of provisioning clusters. However, it does require moving the data into S3, which could take time depending on the volume of data.
Option C: Use Amazon Athena Federated Query to join the data from all data sources.
- Strengths:
- Athena Federated Query allows you to query data from a wide variety of sources, including DynamoDB, Amazon RDS, Amazon Redshift, and S3, directly...
Author: Leah Davis · Last updated Jul 30, 2026
A company is planning to use a provisioned Amazon EMR cluster that runs Apache Spark jobs to perform big data analysis. The company requires high reliability. A big data team must follow best practices for running cost-optimized and long-running workloads on Amazon EMR. The team must find a solution that will maintain t...
When planning for cost optimization and high reliability in a provisioned Amazon EMR cluster running Apache Spark jobs, we need to carefully evaluate the resource selection based on performance, cost, and long-running workloads. Below is the reasoning for selecting the appropriate options:
Option A: Use Hadoop Distributed File System (HDFS) as a persistent data store
- Rejected: HDFS is generally used for on-premises Hadoop clusters or when high-performance local storage is needed within the cluster. It requires significant manual management of storage, is not as cost-effective, and can increase operational complexity when used for long-running workloads.
- Reason: Amazon S3 provides higher scalability, durability, and reliability, and it eliminates the need to manage persistent storage.
Option B: Use Amazon S3 as a persistent data store
- Selected: S3 is a scalable, durable, and cost-effective object storage service. It is integrated with EMR and provides excellent performance for big data workloads. It is easy to scale as your data grows and offers features like S3 Intelligent-Tiering to automatically optimize costs based on access patterns.
- Reason: S3 offers the best cost optimization and reliability for persistent storage in the cloud, making it ideal for long-running workloads.
Option C: Use x86-based instances for core nodes and task nodes
- Rejected: x86-based instances are the traditional choice for EC2 instances. While they are highly compatible with most software, they are not as cost-efficient as alternative options (like Graviton-based instances).
- Reason: Graviton-based instances provide superior performance per dollar due to the ARM architecture's efficiency, which is e...
Author: Sofia · Last updated Jul 30, 2026
A company wants to implement real-time analytics capabilities. The company wants to use Amazon Kinesis Data Streams and Amazon Redshift to ingest and process streaming data at the rate of several gigabytes per second. The company wants to derive near real-time insights by using existing bu...
To select the best solution for implementing real-time analytics with Amazon Kinesis Data Streams and Amazon Redshift while keeping operational overhead minimal, we need to consider the ease of integration, performance, and real-time processing capabilities.
Solution Analysis:
A) Use Kinesis Data Streams to stage data in Amazon S3. Use the COPY command to load data from Amazon S3 directly into Amazon Redshift to make the data immediately available for real-time analysis.
- Process: Data is streamed into Kinesis Data Streams and then staged in Amazon S3. Afterward, the COPY command is used to load the data into Amazon Redshift for analysis.
- Advantages:
- Kinesis Data Streams and Amazon S3 are well-integrated and highly scalable.
- The COPY command is optimized for bulk data loading into Redshift.
- Disadvantages:
- The COPY command is typically used for batch processing, not real-time streaming. Although this method is scalable, it introduces a delay between when the data is ingested into the stream and when it is available for analysis in Redshift. This does not fully meet the "real-time" requirement.
- There is some operational overhead in managing the data staging and the frequency of COPY command executions.
B) Access the data from Kinesis Data Streams by using SQL queries. Create materialized views directly on top of the stream. Refresh the materialized views regularly to query the most recent stream data.
- Process: Directly query Kinesis Data Streams using SQL and create materialized views, which are refreshed periodically.
- Advantages:
- This method provides SQL-based querying of streaming data.
- Materialized views could potentially reduce the need to recompute queries repeatedly.
- Disadvantages:
- Direct querying of Kinesis Data Streams using SQL is not natively supported. Typically, Kinesis Data Streams is processed using services like Lambda, Kinesis Analytics, or custom consumers, but not directly through SQL queries.
- Regularly refreshing materialized views would incur overhead and might not be as efficient for large streams.
C) Create an external schema in Amazon Redshift to map the data from Kinesis Data Streams to an Amazon Redshift object. Create a materialized view to read data from the stream. Set the materialized view to auto refresh.
- Process: This involves setting up an external schema in Redshift to reference Kine...
Author: Elijah · Last updated Jul 30, 2026
A company uses an Amazon QuickSight dashboard to monitor usage of one of the company's applications. The company uses AWS Glue jobs to process data for the dashboard. The company stores the data in a single Amazon S3 bucket. The company adds new data every day.A data engineer discovers that dashboard queries are becoming slower over time. The data engineer determines that the root ...
To address the performance issue with long-running AWS Glue jobs and improving the responsiveness of the queries for the Amazon QuickSight dashboard, we need to focus on improving the data processing pipeline in a way that reduces the time and resource consumption during ETL tasks.
Option A: Partition the data that is in the S3 bucket. Organize the data by year, month, and day.
- Selected: Partitioning the data is one of the most effective ways to optimize the performance of AWS Glue jobs. By organizing the data into partitions based on time (e.g., year, month, and day), you can reduce the amount of data that needs to be processed and read during each Glue job run. This allows queries to access smaller, more relevant subsets of data, thus improving both query and job performance. This solution is particularly useful when there is a large volume of historical data and the job queries only a subset of the data (e.g., recent data).
Option B: Increase the AWS Glue instance size by scaling up the worker type.
- Rejected: While scaling up the instance size might improve the performance of AWS Glue jobs in some cases, this approach does not address the root cause of the problem (i.e., slowing queries due to large volumes of data being processed). Simply scaling up resources will lead to higher costs without solving the fundamental issue of inefficient data processing or querying. It's a less cost-effective solution compared to partitioning the data.
Option C: Convert the AWS Glue schema to the DynamicFrame schema class.
- Rejected: DynamicFrames are useful in AWS Glue for handling semi-structured data and applying transformations. However, converting the schema to DynamicFrame will not inherently improve the performance of the jobs. The perfo...
Author: Ravi Patel · Last updated Jul 30, 2026
A data engineer needs to use AWS Step Functions to design an orchestration workflow. The workflow must parallel process a large collection of data files and apply a specific transformation to each fi...
In this scenario, the data engineer needs to design a workflow that parallel processes a large collection of data files and applies a specific transformation to each file using AWS Step Functions. Let's break down the possible options:
A) Parallel state
- Overview: The Parallel state in AWS Step Functions allows for the execution of multiple branches concurrently. Each branch can execute a series of states, and these branches can run simultaneously, making it a great choice for scenarios requiring parallel processing.
- Suitability:
- This state is specifically designed for parallel processing, and it works well when you need to run multiple tasks concurrently, like applying a transformation to a large collection of files.
- Each branch can perform a different task or the same task (in parallel), making it a highly scalable and efficient approach for processing large collections of data files.
- After all parallel branches complete, the Parallel state can collect the results and pass them to subsequent states.
- Verdict: This is the ideal state for the requirement, as it directly supports parallel execution and allows multiple files to be processed concurrently.
B) Choice state
- Overview: The Choice state allows for branching logic based on conditions. It evaluates specific conditions and decides which state to execute next.
- Suitability:
- The Choice state is great for decision-making workflows, where you need to perform actions based on different conditions (e.g., if a file meets a certain criterion, process it differently).
- However, this state does not facilitate parallel execution or processing a collection of items at the same time.
- Verdict: This state is useful for condition-based branching but doesn't support parallel execution, making it unsuitable for the given requirement.
C) Map state
- Overv...
Author: CrimsonViperX · Last updated Jul 30, 2026
A company is migrating a legacy application to an Amazon S3 based data lake. A data engineer reviewed data that is associated with the legacy application. The data engineer found that the legacy data contained some duplicate information.The data engineer must identify and remove duplicate ...
When migrating a legacy application to an Amazon S3-based data lake and handling data deduplication, it is important to choose the solution that minimizes operational overhead while effectively addressing the data quality issue. Let's evaluate each option:
Option A: Write a custom extract, transform, and load (ETL) job in Python. Use the DataFrame.drop_duplicates() function by importing the Pandas library to perform data deduplication.
- Rejected: While using Pandas for data deduplication is a feasible option, it would require writing and managing custom Python code. This approach could involve more manual effort to handle scalability (especially if the dataset is large) and error handling, leading to higher operational overhead. Additionally, Pandas might not scale as effectively as AWS native tools for processing large datasets in an AWS environment.
- Reason: This solution might work for small to medium datasets but could introduce complexity when dealing with large-scale data in a data lake. The operational overhead of managing custom code and scalability concerns outweighs the benefit.
Option B: Write an AWS Glue extract, transform, and load (ETL) job. Use the FindMatches machine learning (ML) transform to transform the data to perform data deduplication.
- Selected: AWS Glue is a fully managed ETL service, which significantly reduces operational overhead compared to writing and managing custom code. The FindMatches transform in AWS Glue uses machine learning to identify duplicate records in your data and remove them based on fuzzy matching. This is particularly useful when dealing with less obvious duplicates that may not be identical but need to be deduplicated based on approximate matches. It is highly scalable, integrates seamlessly with S3, and minimizes manual intervention.
- Reason: Using AWS Glue’s native ML-based FindMatches transform is the most efficient and scalable solution for deduplication in this case. It minimizes operational overhead by automating the deduplication process and can easily handle large datasets in the data lake.
Option C: Write ...
Author: GlowingTiger · Last updated Jul 30, 2026
A company is building an analytics solution. The solution uses Amazon S3 for data lake storage and Amazon Redshift for a data warehouse. The company wants to use Amazon Redshift Spectrum to query the ...
To provide the fastest queries when using Amazon Redshift Spectrum to query data in Amazon S3, the focus should be on optimizing both the storage format and the ability of Redshift Spectrum to efficiently read and process the data. Let's analyze the options:
A) Use gzip compression to compress individual files to sizes that are between 1 GB and 5 GB.
- Explanation: Using gzip compression can significantly reduce storage costs and improve the read efficiency of larger files. Compressing individual files to sizes between 1 GB and 5 GB is typically a good choice for large datasets since it helps balance compression efficiency and the overhead of accessing small files.
- Why Rejected: While this can help with storage efficiency, this option doesn't directly contribute to speeding up query performance. Compression introduces some computational overhead during query execution.
B) Use a columnar storage file format.
- Explanation: Columnar formats, such as Parquet or ORC, are optimized for analytic workloads because they allow you to read only the columns needed for a query, reducing the amount of data scanned. This is a highly effective approach for speeding up queries, as it minimizes I/O and improves overall query performance.
- Why Selected: This format is the best option for improving query performance in Redshift Spectrum as it enhances data reading efficiency and minimizes unnecessary data scanning.
C) Partition the data based on the most common query predicates.
- Explanation: Partitioning the data can significantly improve query performance by reducing the amount of data that needs to be scanned. For example, partitioning ...
Author: David · Last updated Jul 30, 2026
A company uses Amazon RDS to store transactional data. The company runs an RDS DB instance in a private subnet. A developer wrote an AWS Lambda function with default settings to insert, update, or delete data in the DB instance.The developer needs to give the Lambda function the ability to connect to the DB instance privatel...
To give the AWS Lambda function the ability to connect to the Amazon RDS DB instance privately without using the public internet, we need to ensure that the Lambda function can securely and privately access the RDS instance in the private subnet. Let's evaluate the options and determine which combination will achieve this with the least operational overhead.
A) Turn on the public access setting for the DB instance.
- Explanation: Enabling public access would expose the RDS instance to the public internet, which contradicts the requirement to connect privately. The goal is to avoid using the public internet, so this option should be rejected.
B) Update the security group of the DB instance to allow only Lambda function invocations on the database port.
- Explanation: Updating the security group of the RDS instance is a good practice to ensure that only the Lambda function has access to the DB instance on the correct port (usually port 3306 for MySQL or 5432 for PostgreSQL). This helps secure the RDS instance by limiting connections to only trusted sources (like the Lambda function). However, this option alone doesn't fully address the network connectivity issue, since we still need to ensure that the Lambda function is running in the correct environment to communicate privately with the RDS instance.
C) Configure the Lambda function to run in the same subnet that the DB instance uses.
- Explanation: If the Lambda function is configured to run within the same VPC and subnet as the RDS instance, it will be able to communicate with the RDS instance privately. This is an important step to ensure that the Lambda function does not attempt to access the RDS instance over the public internet. This is necessary for private connectivity.
D) Attach the same security group to the Lambda function and the DB i...
Author: Suresh · Last updated Jul 30, 2026
A company has a frontend ReactJS website that uses Amazon API Gateway to invoke REST APIs. The APIs perform the functionality of the website. A data engineer needs to write a Python script that can be occasionally invoked through API Gateway. The code must...
Let's analyze each option based on the requirement to write a Python script that can be invoked through API Gateway, returns results, and minimizes operational overhead.
A) Deploy a custom Python script on an Amazon Elastic Container Service (Amazon ECS) cluster.
- Explanation: Deploying the Python script on ECS would involve setting up a containerized environment. While this would work, ECS requires a significant amount of operational overhead to manage containers, scaling, monitoring, and maintaining the infrastructure. ECS is more suitable for large, persistent, and complex applications, which isn't ideal for this scenario where simplicity is key.
- Why Rejected: ECS introduces more operational overhead than needed for the task at hand. You would need to manage the container infrastructure, scaling, and possibly load balancing, which is unnecessary for running a simple Python script triggered by API Gateway.
B) Create an AWS Lambda Python function with provisioned concurrency.
- Explanation: AWS Lambda allows you to easily deploy and manage Python functions with minimal overhead. You can invoke the function directly from API Gateway, and Lambda is fully managed, automatically scaling based on demand. Provisioned concurrency ensures that a set number of Lambda instances are pre-warmed, which can be useful for ensuring consistent performance under heavy or variable loads.
- Why Selected: This solution meets the requirements with the least operational overhead. Lambda is serverless, meaning there is no infrastructure to manage, and it integrates seamlessly with API Gateway. Provisioned concurrency would help if there are concerns about cold start latency, but it is not strictly necessary unless the function requires predictable performance.
C) Deploy a custom Python script that can integrate with API Gateway on Amazon ...
Author: Daniel · Last updated Jul 30, 2026
A company has a production AWS account that runs company workloads. The company's security team created a security AWS account to store and analyze security logs from the production AWS account. The security logs in the production AWS account are stored in Amazon CloudWatch Logs.The company needs to us...
To meet the requirement of delivering security logs from the production AWS account (where CloudWatch Logs are stored) to the security AWS account using Amazon Kinesis Data Streams, let's analyze each option carefully.
A) Create a destination data stream in the production AWS account. In the security AWS account, create an IAM role that has cross-account permissions to Kinesis Data Streams in the production AWS account.
- Explanation: This option would require setting up a Kinesis Data Stream in the production AWS account, and then creating a cross-account IAM role in the security AWS account to allow access to that stream. However, CloudWatch Logs cannot directly send data to a stream in another AWS account. This configuration is not directly supported for the scenario because CloudWatch Logs can only create subscription filters to stream data to services within the same account or to certain external services.
- Why Rejected: While the cross-account IAM role setup is valid, CloudWatch Logs would not be able to send data to Kinesis Data Streams across AWS accounts in this scenario.
B) Create a destination data stream in the security AWS account. Create an IAM role and a trust policy to grant CloudWatch Logs the permission to put data into the stream. Create a subscription filter in the security AWS account.
- Explanation: This option involves creating a Kinesis Data Stream in the security AWS account, setting up a trust policy to allow CloudWatch Logs to send data to that stream, and then setting up a subscription filter in the security account. This configuration allows CloudWatch Logs from the production AWS account to push logs to the Kinesis Data Stream in the security account, which is the correct approach for cross-account log delivery.
- Why Selected: This solution directly addresses the requirement of delivering logs from CloudWatch Logs in the production account to Kinesis Data Streams in the security account. It involves proper cross-account permissions and the use of subscription filters, which are the correct mechanism to stream logs from CloudWatch...
Author: Ryan · Last updated Jul 30, 2026
A company uses Amazon S3 to store semi-structured data in a transactional data lake. Some of the data files are small, but other data files are tens of terabytes.A data engineer must perform a change data capture (CDC) operation to identify changed data from the data source. The data source sends a full snapshot as ...
To capture the changed data from the source and ingest it into the data lake, we need to find the most cost-effective solution, considering the scale of data and the need to efficiently identify changes. Let's analyze each option:
A) Create an AWS Lambda function to identify the changes between the previous data and the current data. Configure the Lambda function to ingest the changes into the data lake.
- Explanation: Using AWS Lambda to identify changes between the current and previous data could be problematic, especially for large files (tens of terabytes). Lambda has resource limits, particularly in terms of execution time and memory, which may not be sufficient for processing such large datasets. Additionally, the function would need to manage state and efficiently handle the data comparison, which could add complexity and incur higher costs due to frequent invocations for large datasets.
- Why Rejected: While Lambda is serverless and scales automatically, its limitations in handling large datasets and managing state make it unsuitable for CDC on large files, especially at this scale. It could become inefficient and cost-prohibitive with large amounts of data.
B) Ingest the data into Amazon RDS for MySQL. Use AWS Database Migration Service (AWS DMS) to write the changed data to the data lake.
- Explanation: AWS DMS can be used for change data capture (CDC), but ingesting the data into Amazon RDS for MySQL first may introduce additional complexity and overhead. RDS would require ongoing management and monitoring, and data would need to be ingested and stored in a relational database before being moved to the data lake, which could increase costs and reduce efficiency. For massive datasets, RDS might also face scaling challenges, especially when dealing with very large volumes.
- Why Rejected: Using RDS adds unnecessary complexity and costs for the purpose of CDC, and it might not be the most optimal solution for efficiently processing large data files in a data lake.
C) Use an open-source data lake format to merge the data source with the S3 data lake to insert the new data and update the existing data.
- Explanation: This option is focused on...
Author: Maya · Last updated Jul 30, 2026
A data engineer runs Amazon Athena queries on data that is in an Amazon S3 bucket. The Athena queries use AWS Glue Data Catalog as a metadata table.The data engineer notices that the Athena query plans are experiencing a performance bottleneck. The data engineer determines that the cause of the performance bottleneck is the large number of partitions that are in the S3 bu...
To solve the performance bottleneck issue caused by a large number of partitions in Amazon Athena, the solutions should focus on reducing the partition scanning overhead and optimizing the query plan.
Option Analysis:
A) Create an AWS Glue partition index. Enable partition filtering.
- Reasoning: AWS Glue Partition Index is not directly related to optimizing query planning time. While enabling partition filtering helps reduce the number of partitions scanned during a query, creating an index itself will not significantly reduce the planning time or effectively handle the large number of partitions. Partition filtering can be useful, but it's not a complete solution.
- Rejected: Creating a partition index is not the right approach for large partition numbers in Athena.
B) Bucket the data based on a column that the data has in common in a WHERE clause of the user query.
- Reasoning: Bucketing is useful for managing large datasets by splitting them into smaller, manageable parts based on a key column, which can enhance query performance, especially when specific columns are used frequently in filters. However, this method works better when the same column is repeatedly queried, and it may not resolve partition-related performance bottlenecks as efficiently as other options.
- Rejected: Bucketing may reduce some query times but not necessarily the partition scanning overhead, which is a key issue in this case.
C) Use Athena partition projection based on the S3 bucket prefix.
- Reasoning: Partition projection in Athena helps reduce the amount of metadata that needs to be queried by bypassing the Glue Data Catalog's need to track all partitions. It maps S3 prefixes to partition keys directly, significantly reducing the query planning time, particularly when there are many partitions.
- S...
Author: StarryEagle42 · Last updated Jul 30, 2026
A data engineer must manage the ingestion of real-time streaming data into AWS. The data engineer wants to perform real-time analytics on the incoming streaming data by using time-based aggregations over a window of up to 30 minutes. The data engineer needs a solut...
Option Analysis:
A) Use an AWS Lambda function that includes both the business and the analytics logic to perform time-based aggregations over a window of up to 30 minutes for the data in Amazon Kinesis Data Streams.
- Reasoning: While AWS Lambda is a good option for real-time data processing, it has some limitations. Lambda functions are generally stateless, and maintaining state (like time-based aggregation over a 30-minute window) can be complex. The function would need to manage its state and handle retries and timeouts, which adds operational complexity. Additionally, managing windowing logic within Lambda could lead to higher maintenance overhead.
- Rejected: It does not scale well for the required time-based aggregations over longer windows and would require significant custom implementation, leading to higher operational overhead.
B) Use Amazon Managed Service for Apache Flink (previously known as Amazon Kinesis Data Analytics) to analyze the data that might occasionally contain duplicates by using multiple types of aggregations.
- Reasoning: Apache Flink is a powerful stream processing framework that is designed for high throughput and low latency processing. It also supports sophisticated windowing and aggregation logic, which is crucial for performing time-based aggregations over windows of 30 minutes. Flink is highly fault-tolerant and automatically handles state management, retries, and consistency. This service would be suitable for handling duplicates and time-based aggregations in real time.
- Selected: Flink provides native support for windowing, fault tolerance, and time-based aggregations. It reduces operational overhead significantly compared to other options, making it the best choice for this use case.
C) Use an AWS Lambda function that includes both the business ...
Author: VioletCheetah55 · Last updated Jul 30, 2026
A company is planning to upgrade its Amazon Elastic Block Store (Amazon EBS) General Purpose SSD storage from gp2 to gp3. The company wants to prevent any interruptions in its Amazon EC2 instances that will cause data loss during the migration...
Option Analysis:
A) Create snapshots of the gp2 volumes. Create new gp3 volumes from the snapshots. Attach the new gp3 volumes to the EC2 instances.
- Reasoning: This option involves creating a snapshot of the existing gp2 volumes, which is a straightforward way to ensure data integrity before upgrading. From these snapshots, new gp3 volumes can be created. After the new volumes are created, they can be attached to the EC2 instances. This method minimizes the risk of data loss since it uses snapshots as a backup. The migration is isolated from the active EC2 instance and doesn't interrupt its operations during the transition.
- Selected: This is the best option as it involves creating new gp3 volumes from a snapshot, ensuring no data loss during the migration. It also allows for minimal operational overhead and does not require data transfer, as the new volumes are derived from the snapshot.
B) Create new gp3 volumes. Gradually transfer the data to the new gp3 volumes. When the transfer is complete, mount the new gp3 volumes to the EC2 instances to replace the gp2 volumes.
- Reasoning: While this option ensures that data is transferred in a gradual manner, it requires managing the data transfer manually and ensuring synchronization between the original and new volumes. This can introduce complexity, particularly with maintaining consistency, and it may require downtime for data transfer and re-mounting, leading to interruptions.
- Rejected: The need to manually transfer data and synchronize it, along with potential downtime, adds more complexity and operational overhead compared to option A.
C) Change the volume type of the existing gp2 volumes to gp3. Enter new values f...