AWS Certified Developer - Associate (DVA-C02) Fact Sheet¶
Quick Reference¶
Exam Code: DVA-C02 Duration: 130 minutes Questions: 65 scored questions Passing Score: 720/1000 Cost: $150 USD Validity: 3 years Delivery: Pearson VUE (Testing center or online proctored)
Exam Domain Breakdown¶
| Domain | Weight | Focus |
|---|---|---|
| Development with AWS Services | 32% | Lambda, API Gateway, DynamoDB, S3, SDK |
| Security | 26% | IAM, Cognito, KMS, Secrets Manager |
| Deployment | 24% | CodePipeline, CodeBuild, CodeDeploy, CloudFormation |
| Troubleshooting & Optimization | 18% | CloudWatch, X-Ray, performance tuning |
Core Services to Master¶
Development (32%)¶
- AWS Lambda - Serverless functions, event sources, cold starts
- π Lambda Developer Guide - Complete Lambda documentation
- π Lambda Function Configuration - Memory, timeout, env vars
- π Lambda Event Sources - Triggers and integrations
- π Lambda Best Practices - Performance and security
- API Gateway - REST/HTTP/WebSocket APIs, authorization
- π API Gateway Developer Guide - Complete API Gateway docs
- π API Gateway REST APIs - RESTful API creation
- π API Gateway HTTP APIs - Lower cost, faster
- π API Gateway Authorization - IAM, Cognito, Lambda authorizers
- DynamoDB - NoSQL operations, partition keys, GSI/LSI
- π DynamoDB Developer Guide - Complete DynamoDB docs
- π DynamoDB Core Components - Tables, items, attributes
- π DynamoDB API Reference - Operations reference
- π DynamoDB Best Practices - Design patterns
- S3 - Object operations, event notifications, pre-signed URLs
- π S3 Developer Guide - Complete S3 documentation
- π S3 API Reference - Object operations
- π S3 Event Notifications - Lambda, SQS, SNS triggers
- π S3 Presigned URLs - Temporary access
- AWS SDK - Best practices, error handling, retries
- π AWS SDK for Python (Boto3) - Python SDK
- π AWS SDK for JavaScript - Node.js SDK
- π SDK Error Handling - Retry strategies
- π SDK Credentials - Authentication
Security (26%)¶
- IAM - Roles, policies, least privilege
- π IAM User Guide - Complete IAM documentation
- π IAM Roles - Role-based access
- π IAM Policies - Policy syntax and evaluation
- π IAM Best Practices - Security guidelines
- Cognito - User Pools, Identity Pools, federation
- π Cognito Developer Guide - Complete Cognito docs
- π Cognito User Pools - Authentication
- π Cognito Identity Pools - AWS resource access
- π Cognito Federation - Social and SAML
- KMS - Encryption, key management, envelope encryption
- π KMS Developer Guide - Complete KMS documentation
- π KMS Key Concepts - Keys and aliases
- π KMS Envelope Encryption - Data key encryption
- π KMS Key Policies - Access control
- Secrets Manager - Secret storage, rotation
- π Secrets Manager User Guide - Complete Secrets Manager docs
- π Secrets Rotation - Automatic rotation
- π Secrets Manager Best Practices - Security guidelines
- Parameter Store - Configuration management
- π Parameter Store User Guide - SSM parameters
- π Parameter Hierarchies - Organize parameters
- π Secure String Parameters - KMS encryption
Deployment (24%)¶
- CodeCommit - Git repositories
- π CodeCommit User Guide - Complete CodeCommit docs
- π CodeCommit Repositories - Repository management
- π CodeCommit Triggers - Event notifications
- CodeBuild - Build automation, buildspec.yml
- π CodeBuild User Guide - Complete CodeBuild docs
- π Build Specification - buildspec.yml reference
- π CodeBuild Environment - Docker images and runtimes
- CodeDeploy - Deployment strategies, appspec.yml
- π CodeDeploy User Guide - Complete CodeDeploy docs
- π AppSpec File - Deployment specification
- π Deployment Configurations - In-place and blue/green
- CodePipeline - CI/CD orchestration
- π CodePipeline User Guide - Complete CodePipeline docs
- π Pipeline Structure - Stages and actions
- π Pipeline Actions - Action types reference
- CloudFormation - Infrastructure as Code
- π CloudFormation User Guide - Complete CloudFormation docs
- π Template Anatomy - Template structure
- π Intrinsic Functions - Template functions
- π Stack Updates - Change sets and rollback
- Elastic Beanstalk - PaaS deployments
- π Elastic Beanstalk Developer Guide - Complete Beanstalk docs
- π Deployment Policies - Rolling, blue/green, immutable
- π Configuration Files - .ebextensions customization
Troubleshooting (18%)¶
- CloudWatch - Logs, metrics, alarms, insights
- π CloudWatch User Guide - Complete CloudWatch docs
- π CloudWatch Logs - Log aggregation and analysis
- π CloudWatch Metrics - Custom metrics and alarms
- π CloudWatch Insights - Log query language
- X-Ray - Distributed tracing, service maps
- π X-Ray Developer Guide - Complete X-Ray docs
- π X-Ray Concepts - Traces, segments, annotations
- π X-Ray SDK - Instrument applications
- π X-Ray Sampling - Sampling rules
- Performance optimization - Lambda, DynamoDB, API caching
- π Lambda Performance - Cold starts and optimization
- π DynamoDB Performance - Throughput optimization
- π API Gateway Caching - Cache configuration
- Cost optimization - Right-sizing, serverless patterns
- π Lambda Pricing - Request and compute costs
- π DynamoDB Pricing - On-demand vs provisioned
- π Cost Optimization - Well-Architected pillar
Service Limits to Know¶
Lambda¶
- Timeout: 15 minutes max
- Memory: 128 MB - 10 GB
- Deployment package: 50 MB (zipped), 250 MB (unzipped)
- Concurrent executions: 1,000 (default, can request increase)
- Environment variables: 4 KB total
- Layers: 5 layers per function
DynamoDB¶
- Item size: 400 KB max
- Partition key: 2,048 bytes max
- Sort key: 1,024 bytes max
- BatchGetItem: 100 items, 16 MB
- BatchWriteItem: 25 items
- Query result: 1 MB max per request
- Transaction: 100 items, 4 MB
API Gateway¶
- Timeout: 29 seconds max
- Payload size: 10 MB max
- Header size: 10 KB total
- Integration timeout: 29 seconds
- Rate limits: 10,000 requests per second (default)
- Burst limits: 5,000 requests
S3¶
- Object size: 5 TB max
- Single PUT: 5 GB max
- Multipart upload: Required for > 5 GB
- Part size: 5 MB - 5 GB (except last part)
- Parts: 10,000 parts max per upload
- Bucket limit: 100 buckets per account (default)
Lambda Event Sources¶
Synchronous (Wait for response)¶
- API Gateway
- Application Load Balancer
- Amazon Cognito
- AWS Step Functions
- Amazon Lex
- Amazon Alexa
- Amazon CloudFront (Lambda@Edge)
- AWS SDK invoke
- π Lambda Synchronous Invocation - Request-response pattern
- π Lambda with API Gateway - REST API integration
- π Lambda with ALB - Load balancer targets
Asynchronous (No wait)¶
- S3
- SNS
- EventBridge (CloudWatch Events)
- AWS CodeCommit
- AWS CodePipeline
- Amazon SES
- AWS Config
- AWS IoT
- π Lambda Asynchronous Invocation - Event-driven pattern
- π Lambda with S3 - S3 event processing
- π Lambda with SNS - Topic subscriptions
Stream-based (Poll-based)¶
- DynamoDB Streams
- Kinesis Data Streams
- Amazon SQS
- Amazon MQ
- Apache Kafka (MSK)
- π Lambda Event Source Mappings - Stream processing
- π Lambda with DynamoDB Streams - Change data capture
- π Lambda with SQS - Queue processing
- π Lambda with Kinesis - Stream analytics
DynamoDB Access Patterns¶
| Operation | Use Case | Performance |
|---|---|---|
| GetItem | Retrieve single item by primary key | Fastest, most efficient |
| BatchGetItem | Retrieve up to 100 items | Efficient for multiple items |
| Query | Items with same partition key | Efficient, use sort key filtering |
| Scan | All items in table | Slowest, expensive, avoid if possible |
| PutItem | Insert or replace item | Fast |
| UpdateItem | Modify specific attributes | Fast, use atomic counters |
| DeleteItem | Remove single item | Fast |
| TransactWriteItems | ACID transactions (up to 100 items) | Slower, higher cost |
Documentation: - π DynamoDB Query - Query operations - π DynamoDB Scan - Scan operations and optimization - π DynamoDB BatchOperations - Batch reads and writes - π DynamoDB Transactions - ACID transactions
IAM Policy Evaluation Logic¶
- By default, deny all (implicit deny)
- Explicit DENY always wins (cannot be overridden)
- Explicit ALLOW overrides implicit deny
- Evaluation order:
- Evaluate all applicable policies
- Check for explicit DENY β if found, deny access
- Check for explicit ALLOW β if found, allow access
- If no ALLOW found, implicit deny applies
Policy Types: - Identity-based - Attached to users, groups, roles - Resource-based - Attached to resources (S3 buckets, SQS queues, Lambda functions) - Permission boundaries - Maximum permissions for identity-based policies - SCPs - Service Control Policies (organization level)
Documentation: - π IAM Policy Evaluation - Policy evaluation logic - π IAM Policy Types - Identity vs resource-based - π IAM Policy Examples - Common policy patterns - π IAM Policy Simulator - Test policy effects
CodeDeploy Deployment Types¶
In-Place (Rolling)¶
- Compute: EC2, on-premises
- Traffic: Gradual shift
- Rollback: Redeploy previous version
- Cost: Lower (no duplicate infrastructure)
- Downtime: Possible during deployment
- Configs: OneAtATime, HalfAtATime, AllAtOnce, Custom
Blue/Green¶
- Compute: EC2, Lambda, ECS
- Traffic: All-at-once switch
- Rollback: Instant (reroute traffic back)
- Cost: Higher (duplicate infrastructure temporarily)
- Downtime: None
- Lambda: Version aliases
- ECS: New task set
API Gateway Integration Types¶
| Type | Use Case | Request/Response Transform |
|---|---|---|
| Lambda Proxy | Simple Lambda integration | No transformation, Lambda receives entire request |
| Lambda Custom | Transform request/response | Full control via mapping templates |
| HTTP Proxy | Pass-through to HTTP endpoint | No transformation |
| HTTP Custom | Transform to HTTP endpoint | Full control via mapping templates |
| AWS Service | Direct AWS service integration | Map to service API format |
| Mock | Return response without backend | Testing, static responses |
CloudFormation Intrinsic Functions¶
| Function | Purpose | Example |
|---|---|---|
| Ref | Reference parameter or resource | !Ref MyParameter |
| GetAtt | Get attribute of resource | !GetAtt MyBucket.Arn |
| Sub | String substitution | !Sub 'arn:aws:s3:::${BucketName}' |
| Join | Join strings with delimiter | !Join ['/', [a, b, c]] |
| Select | Select item from list | !Select [0, !GetAZs ''] |
| ImportValue | Import cross-stack export | !ImportValue NetworkStackVPC |
| Split | Split string into list | !Split ['\|', 'a\|b\|c'] |
| GetAZs | List of AZs in region | !GetAZs '' |
| FindInMap | Find value in mappings | !FindInMap [RegionMap, !Ref AWS::Region, AMI] |
| If | Conditional value | !If [CreateProd, t3.large, t3.micro] |
X-Ray Concepts¶
- Trace - End-to-end journey of a request
- Segment - Data about work done by a service
- Subsegment - Granular timing within a segment (DB calls, HTTP requests)
- Annotation - Key-value pairs for indexing and filtering (searchable)
- Metadata - Key-value pairs for additional data (not searchable)
- Sampling - Rules to control which requests are traced
- Service Map - Visual representation of application architecture
Documentation: - π X-Ray Segments - Segment structure - π X-Ray Annotations - Indexable metadata - π X-Ray Service Map - Visualize architecture - π X-Ray Sampling Rules - Control tracing rate
SQS vs SNS vs EventBridge¶
| Feature | SQS | SNS | EventBridge |
|---|---|---|---|
| Pattern | Point-to-point (queue) | Pub/sub (topic) | Event bus |
| Consumers | One consumer per message | Multiple subscribers | Multiple targets |
| Message retention | Up to 14 days | No retention (deliver now) | No retention |
| Filtering | Consumer-side | Subscription filter policies | Event patterns (JSON) |
| Ordering | FIFO queues | FIFO topics | No guarantee |
| Use case | Decouple services, async tasks | Fan-out notifications | Event-driven architecture, rules |
| Targets | Polled by consumers | Push to subscribers | 20+ AWS services |
Documentation: - π SQS Developer Guide - Queue concepts and operations - π SQS FIFO Queues - Ordering and deduplication - π SNS Developer Guide - Topic and subscription management - π SNS Message Filtering - Subscription filters - π EventBridge User Guide - Event bus and rules - π EventBridge Event Patterns - Pattern matching
Exam Tips - Key Concepts¶
Lambda Best Practices¶
- β Use environment variables for config
- β Initialize SDK clients outside handler
- β Use Lambda Layers for shared code
- β Implement exponential backoff for retries
- β Use provisioned concurrency for critical functions
- β Don't store state in Lambda function
- β Don't use recursive calls without limits
DynamoDB Best Practices¶
- β Design for access patterns first
- β Use composite partition keys for even distribution
- β Use GSI for alternate access patterns
- β Use Query instead of Scan
- β Use eventually consistent reads (default)
- β Don't use Scan for production queries
- β Don't create hot partitions
Security Best Practices¶
- β Use IAM roles, not access keys
- β Encrypt data at rest with KMS
- β Use Secrets Manager for credentials
- β Enable CloudTrail for audit logs
- β Implement least privilege access
- β Never hardcode credentials
- β Don't use root account
CI/CD Best Practices¶
- β Automate all deployments
- β Use blue/green for zero-downtime
- β Implement automated testing in pipeline
- β Use CloudFormation for infrastructure
- β Tag resources for cost tracking
- β Don't manually deploy to production
- β Don't skip testing stages
Common Exam Scenarios¶
- "Most cost-effective solution" β Serverless (Lambda, DynamoDB on-demand, S3)
- "Minimum operational overhead" β Managed services, Elastic Beanstalk
- "Decouple microservices" β SQS between services
- "Fan-out notifications" β SNS to multiple SQS queues
- "Secure API" β API Gateway + Cognito User Pools
- "Store credentials securely" β Secrets Manager with rotation
- "Debug performance issues" β X-Ray distributed tracing
- "Zero-downtime deployment" β Blue/green with CodeDeploy
- "Event-driven processing" β S3 event β Lambda
- "Workflow orchestration" β Step Functions
Study Priorities¶
High Priority (Must Know)¶
- Lambda function development and event sources
- DynamoDB operations and design patterns
- API Gateway configuration and authorization
- IAM roles and policies for applications
- Cognito User Pools and Identity Pools
- KMS encryption and envelope encryption
- CodePipeline, CodeBuild, CodeDeploy
- CloudWatch Logs and metrics
- X-Ray tracing implementation
Medium Priority (Important)¶
- S3 event notifications and pre-signed URLs
- SQS/SNS messaging patterns
- Step Functions state machines
- Secrets Manager and Parameter Store
- CloudFormation template syntax
- Elastic Beanstalk deployment options
- RDS Proxy for serverless
- EventBridge rules and patterns
Lower Priority (Good to Know)¶
- Lambda@Edge and CloudFront integration
- DynamoDB Accelerator (DAX)
- AppSync for GraphQL APIs
- Kinesis Data Streams
- ECS/ECR containerization
- API Gateway caching strategies
- CloudWatch Synthetics
- AWS SAM framework
Last-Minute Review¶
Remember these: - Lambda max timeout: 15 minutes - DynamoDB item max size: 400 KB - API Gateway timeout: 29 seconds - IAM policy evaluation: Explicit DENY always wins - Cognito: User Pools = authentication, Identity Pools = AWS access - KMS: Envelope encryption for large data - CodeDeploy: Blue/green = zero downtime - X-Ray: Annotations are searchable, metadata is not - SQS visibility timeout: Message hidden during processing - CloudFormation: Ref for IDs, GetAtt for attributes
Common gotchas: - Lambda in VPC needs NAT gateway for internet access - DynamoDB Scan reads entire table (expensive) - API Gateway caching is per stage - Cognito tokens expire (need refresh token) - CodeBuild needs buildspec.yml - CloudFormation rollback on any failure (by default) - X-Ray daemon must be running - IAM eventually consistent (except when reading own writes)
Good luck on your exam! Focus on hands-on practice - build actual applications with these services.