Jeff’s Note #
Unlike generic exam dumps, ADH analyzes this scenario through the lens of a Real-World Lead Developer.
For DVA-C02 candidates, the confusion often lies in how to optimize Lambda for heavy I/O workloads involving large files. In production, this is about knowing exactly when to leverage ephemeral /tmp storage versus direct S3 streaming, and the constraints of Lambda execution environment. Let’s drill down.
The Certification Drill (Simulated Question) #
Scenario #
TechVision Analytics is building a cloud application that analyzes high-resolution satellite imagery files stored in Amazon S3. These files average 1 GB in size, and none exceed 2 GB. Once the analysis completes, TechVision discards the image files. Due to the nature of image processing, the Lambda function reads each file multiple times during processing.
The Requirement: #
Design a performance-optimized AWS Lambda based solution for processing these large image files stored in S3, where:
- Each Lambda invocation handles a single file.
- The processing is very I/O intensive, requiring multiple reads of the file.
- Files can be up to 2 GB in size.
The Options #
- A) Attach an Amazon Elastic Block Store (EBS) volume larger than 1 GB to the Lambda function. Copy image files from S3 to the EBS volume for processing.
- B) Attach an Elastic Network Adapter (ENA) to the Lambda function. Use ENA to stream files directly from S3.
- C) Increase the Lambda ephemeral storage size to 2 GB. Copy the files from S3 to the Lambda function’s
/tmpdirectory before processing. - D) Configure the Lambda function to stream and read the files directly from the S3 bucket without local storage.
Google adsense #
leave a comment:
Correct Answer #
C
Quick Insight: The Developer Imperative #
Lambda’s ephemeral storage (
/tmp) can be increased up to 10 GB, making it ideal for temporary local copies of large files in I/O intensive workloads. Reading files from local storage drastically reduces repeat S3 GET request latency and cost compared to streaming repeatedly. Streaming directly from S3 (Option D) is simpler but inefficient for multiple passes. EBS volumes (Option A) are unsupported with Lambda. ENA (Option B) is not configurable by Lambda users.
Content Locked: The Expert Analysis #
You’ve identified the answer. But do you know the implementation details that separate a Junior from a Senior?
The Expert’s Analysis #
Correct Answer #
Option C
The Winning Logic #
Copying the file to Lambda’s ephemeral storage (/tmp) after increasing its size to at least the file size lets the function perform multiple reads locally with minimal latency. Lambda’s default ephemeral storage is 512 MB, which is insufficient, so you must configure it up to 2 GB here. This leverages Lambda’s configurable ephemeral disk layer introduced in 2020.
- Lambda does not support attaching EBS volumes — Option A is incorrect.
- ENA network interfaces (Option B) are not user-configurable with Lambda to improve S3 access.
- Reading directly from S3 multiple times (Option D) leads to higher latency and costs due to repeated GET requests and is not optimal for I/O-intensive workloads.
Thus, Option C is a perfect fit: increase ephemeral storage and copy files locally before processing.
The Trap (Distractor Analysis) #
-
Why not A?
AWS Lambda does not support mounting or attaching EBS volumes. This option may confuse with EC2 or containerized environments. -
Why not B?
Elastic Network Adapter (ENA) is a network interface technology available on EC2 instances but cannot be attached or configured in Lambda environments. -
Why not D?
Though simplest, streaming files directly from S3 repeatedly is costly and slower due to network overhead and repeated API calls.
The Technical Blueprint #
# Increase Lambda ephemeral storage size to 2 GB at deployment time (example AWS CLI command):
aws lambda update-function-configuration \
--function-name AnalyzeSatelliteImages \
--ephemeral-storage '{"Size': 2048}' # Size in MB
# In your Lambda function code (Python example):
import boto3
import os
s3_client: boto3.client("s3")
def lambda_handler(event, context):
bucket: event['bucket']
key: event['key']
local_path: '/tmp/' + key.split('/')[-1]
# Download file to ephemeral storage
s3_client.download_file(bucket, key, local_path)
# Perform multiple reads from local_path as needed...
# Cleanup if needed
os.remove(local_path)
return {"status": "processed"}
The Comparative Analysis #
| Option | API/Config Complexity | Performance (I/O) | Use Case Suitability |
|---|---|---|---|
| A | Invalid for Lambda | N/A | EBS not supported on Lambda |
| B | Not configurable | No significant gain | ENA not user-configurable on Lambda |
| C | Moderate (configure ephemeral storage) | High - local fast access | Best for large files with repeated reads |
| D | None | Poor - slow, multiple S3 GETs | Simple, small files or single-pass processing |
Real-World Application (Practitioner Insight) #
Exam Rule #
For the exam, always pick increased Lambda ephemeral storage when you see large, repeatedly read files in Lambda.
Real World #
Sometimes architects use Amazon EFS mounted to Lambda for persistent shared storage exceeding 10 GB, but ephemeral storage is best for ephemeral local caching with minimal latency and cost for single-function isolated workloads.
(CTA) Stop Guessing, Start Mastering #
Disclaimer
This is a study note based on simulated scenarios for the AWS DVA-C02 exam.