Development with AWS Services - 32%
 | 
| 
				Develop code for applications hosted on AWS. | 
				Knowledge of:
- 
							Architectural patterns (for example, event-driven, microservices, monolithic, choreography, orchestration, fanout)
 
- 
							Idempotency
 
- 
							Differences between stateful and stateless concepts
 
- 
							Differences between tightly coupled and loosely coupled components
 
- 
							Fault-tolerant design patterns (for example, retries with exponential backoff and jitter, dead-letter queues)
 
- 
							Differences between synchronous and asynchronous patterns
 
 
					Skills in: 
- 
							Creating fault-tolerant and resilient applications in a programming language (for example, Java, C#, Python, JavaScript, TypeScript, Go)
 
- 
							Creating, extending, and maintaining APIs (for example, response/request transformations, enforcing validation rules, overriding status codes)
 
- 
							Writing and running unit tests in development environments (for example, using AWS Serverless Application Model [AWS SAM])
 
- 
							Writing code to use messaging services
 
- 
							Writing code that interacts with AWS services by using APIs and AWS SDKs
 
- 
							Handling data streaming by using AWS services
 
 
 
 | 
| 
				Develop code for AWS Lambda. | 
				Knowledge of:
- 
						Event source mapping
 
- 
						Stateless applications
 
- 
						Unit testing
 
- 
						Event-driven architecture
 
- 
						Scalability
 
- 
						The access of private resources in VPCs from Lambda code
 
 
					Skills in: 
- 
						Configuring Lambda functions by defining environment variables and parameters (for example, memory, concurrency, timeout, runtime, handler, layers, extensions, triggers, destinations)
 
- 
						Handling the event lifecycle and errors by using code (for example, Lambda Destinations, dead-letter queues)
 
- 
						Writing and running test code by using AWS services and tools
 
- 
						Integrating Lambda functions with AWS services
 
- 
						Tuning Lambda functions for optimal performance
 
 
 | 
| 
				Use data stores in application development. | 
				Knowledge of:
 
					Skills in: 
- 
						Serializing and deserializing data to provide persistence to a data store
 
- 
						Using, managing, and maintaining data stores
 
- 
						Managing data lifecycles
 
- 
						Using data caching services
 
 
 | 
					Security - 26%
 | 
| 
				Implement authentication and/or authorization for applications and AWS services. | 
				Knowledge of:
- 
						Identity federation (for example, Security Assertion Markup Language [SAML], OpenID Connect [OIDC], Amazon Cognito)
 
- 
						Bearer tokens (for example, JSON Web Token [JWT], OAuth, AWS Security Token Service [AWS STS])
 
- 
						The comparison of user pools and identity pools in Amazon Cognito
 
- 
						Resource-based policies, service policies, and principal policies
 
- 
						Role-based access control (RBAC)
 
- 
						Application authorization that uses ACLs
 
- 
						The principle of least privilege
 
- 
						Differences between AWS managed policies and customer-managed policies
 
- 
						Identity and access management (IAM)
 
 
				Skills in: 
- 
						Using an identity provider to implement federated access (for example, Amazon Cognito, AWS Identity and Access Management [IAM])
 
- 
						Securing applications by using bearer tokens
 
- 
						Configuring programmatic access to AWS
 
- 
						Making authenticated calls to AWS services
 
- 
						Assuming an IAM role
 
- 
						Defining permissions for principals
 
 
 | 
| 
				Implement encryption by using AWS services. | 
 
					Knowledge of: 
- 
						Encryption at rest and in transit
 
- 
						Certificate management (for example, AWS Private Certificate Authority)
 
- 
						Key protection (for example, key rotation)
 
- 
						Differences between client-side encryption and server-side encryption
 
- 
						Differences between AWS managed and customer managed AWS Key Management Service (AWS KMS) keys
 
 
						Skills in: 
- 
							Using encryption keys to encrypt or decrypt data
 
- 
							Generating certificates and SSH keys for development purposes
 
- 
							Using encryption across account boundaries
 
- 
							Enabling and disabling key rotation
 
 
 
 | 
| 
 
					Manage sensitive data in application code. 
 | 
 
					Knowledge of: 
- 
						Data classification (for example, personally identifiable information [PII], protected health information [PHI])
 
- 
						Environment variables
 
- 
						Secrets management (for example, AWS Secrets Manager, AWS Systems Manager Parameter Store)
 
- 
						Secure credential handling
 
 
					Skills in: 
- 
						Encrypting environment variables that contain sensitive data
 
- 
						Using secret management services to secure sensitive data
 
- 
						Sanitizing sensitive data
 
 
 | 
					Deployment - 24%
 | 
| 
				Prepare application artifacts to be deployed to AWS. | 
 
					Knowledge of: 
- 
						Ways to access application configuration data (for example, AWS AppConfig, Secrets Manager, Parameter Store)
 
- 
						Lambda deployment packaging, layers, and configuration options
 
- 
						Git-based version control tools (for example, Git, AWS CodeCommit)
 
- 
						Container images
 
 
					Skills in: 
- 
						Managing the dependencies of the code module (for example, environment variables, configuration files, container images) within the package
 
- 
						Organizing files and a directory structure for application deployment
 
- 
						Using code repositories in deployment environments
 
- 
						Applying application requirements for resources (for example, memory, cores)
 
 
 | 
| 
				Test applications in development environments. | 
 
					Knowledge of: 
- 
						Features in AWS services that perform application deployment
 
- 
						Integration testing that uses mock endpoints
 
- 
						Lambda versions and aliases
 
 
						Skills in: 
- 
							Testing deployed code by using AWS services and tools
 
- 
							Performing mock integration for APIs and resolving integration dependencies
 
- 
							Testing applications by using development endpoints (for example, configuring stages in Amazon API Gateway)
 
- 
							Deploying application stack updates to existing environments (for example, deploying an AWS SAM template to a different staging environment)
 
 
 
 | 
| 
				Automate deployment testing. | 
 
					Knowledge of: 
- 
						API Gateway stages
 
- 
						Branches and actions in the continuous integration and continuous delivery (CI/CD) workflow
 
- 
						Automated software testing (for example, unit testing, mock testing)
 
 
					Skills in: 
- 
						Creating application test events (for example, JSON payloads for testing Lambda, API Gateway, AWS SAM resources)
 
- 
						Deploying API resources to various environments
 
- 
						Creating application environments that use approved versions for integration testing (for example, Lambda aliases, container image tags, AWS Amplify branches, AWS Copilot environments)
 
- 
						Implementing and deploying infrastructure as code (IaC) templates (for example, AWS SAM templates, AWS CloudFormation templates)
 
- 
						Managing environments in individual AWS services (for example, differentiating between development, test, and production in API Gateway)
 
 
 | 
| 
 
					Deploy code by using AWS CI/CD services. 
 | 
 
					Knowledge of: 
- 
						Git-based version control tools (for example, Git, AWS CodeCommit)
 
- 
						Manual and automated approvals in AWS CodePipeline
 
- 
						Access application configurations from AWS AppConfig and Secrets Manager
 
- 
						CI/CD workflows that use AWS services
 
- 
						Application deployment that uses AWS services and tools (for example, CloudFormation, AWS Cloud Development Kit [AWS CDK], AWS SAM, AWS CodeArtifact, AWS Copilot, Amplify, Lambda)
 
- 
						Lambda deployment packaging options
 
- 
						API Gateway stages and custom domains
 
- 
						Deployment strategies (for example, canary, blue/green, rolling)
 
 
					Skills in: 
- 
						Updating existing IaC templates (for example, AWS SAM templates, CloudFormation templates)
 
- 
						Managing application environments by using AWS services
 
- 
						Deploying an application version by using deployment strategies
 
- 
						Committing code to a repository to invoke build, test, and deployment actions
 
- 
						Using orchestrated workflows to deploy code to different environments
 
- 
						Performing application rollbacks by using existing deployment strategies
 
- 
						Using labels and branches for version and release management
 
- 
						Using existing runtime configurations to create dynamic deployments (for example, using staging variables from API Gateway in Lambda functions)
 
 
 | 
					Troubleshooting and Optimization - 18%
 | 
| 
				Assist in a root cause analysis. | 
 
					Knowledge of: 
- 
						Logging and monitoring systems
 
- 
						Languages for log queries (for example, Amazon CloudWatch Logs Insights)
 
- 
						Data visualizations
 
- 
						Code analysis tools
 
- 
						Common HTTP error codes
 
- 
						Common exceptions generated by SDKs
 
- 
						Service maps in AWS X-Ray
 
 
					Skills in: 
- 
						Debugging code to identify defects
 
- 
						Interpreting application metrics, logs, and traces
 
- 
						Querying logs to find relevant data
 
- 
						Implementing custom metrics (for example, CloudWatch embedded metric format [EMF])
 
- 
						Reviewing application health by using dashboards and insights
 
- 
						Troubleshooting deployment failures by using service output logs
 
 
 | 
| 
				Instrument code for observability. | 
 
					Knowledge of: 
- 
						Distributed tracing
 
- 
						Differences between logging, monitoring, and observability
 
- 
						Structured logging
 
- 
						Application metrics (for example, custom, embedded, built-in)
 
 
					Skills in: 
- 
						Implementing an effective logging strategy to record application behavior and state
 
- 
						Implementing code that emits custom metrics
 
- 
						Adding annotations for tracing services
 
- 
						Implementing notification alerts for specific actions (for example, notifications about quota limits or deployment completions)
 
- 
						Implementing tracing by using AWS services and tools
 
 
 | 
| 
				Optimize applications by using AWS services and features. | 
 
					Knowledge of: 
- 
						Caching
 
- 
						Concurrency
 
- 
						Messaging services (for example, Amazon Simple Queue Service [Amazon SQS], Amazon Simple Notification Service [Amazon SNS])
 
 
					Skills in: 
- 
						Profiling application performance
 
- 
						Determining minimum memory and compute power for an application
 
- 
						Using subscription filter policies to optimize messaging
 
- 
						Caching content based on request headers
 
 
 |