Module 1: Development with AWS Services
Develop code for applications hosted on AWS
- Architectural patterns (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 (retries with exponential backoff and jitter, dead-letter queues)
- Differences between synchronous and asynchronous patterns
Develop code for AWS Lambda
- Event source mapping
- Stateless applications
- Unit testing
- Event-driven architecture
- Scalability
- The access of private resources in VPCs from Lambda code
Use data stores in application development
- Relational and non-relational databases
- Create, read, update, and delete (CRUD) operations
- High-cardinality partition keys for balanced partition access
- Cloud storage options (file, object, databases)
- Database consistency models (strongly consistent, eventually consistent)
- Differences between query and scan operations
- Amazon DynamoDB keys and indexing
- Caching strategies (write-through, read-through, lazy loading, TTL)
- Amazon S3 tiers and lifecycle management
- Differences between ephemeral and persistent data storage patterns
Module 2: Security
Implement authentication and/or authorization for applications and AWS services
- Identity federation (Security Assertion Markup Language SAML, OpenID Connect OIDC, Amazon Cognito)
- Bearer tokens (JSON Web Token JWT, OAuth, 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
Implement encryption by using AWS services
- Encryption at rest and in transit
- Certificate management (AWS Private Certificate Authority)
- Key protection (key rotation)
- Differences between client-side encryption and server-side encryption
- Differences between AWS managed and customer managed AWS KMS) keys
Manage sensitive data in application code
- Data classification (PII, PHI)
- Environment variables
- Secrets management (Secrets Manager, Systems Manager Parameter Store)
- Secure credential handling
Module 3: Deployment
Prepare application artifacts to be deployed to AWS
- Access app configuration data (AppConfig, Secrets Manager, Parameter Store)
- Lambda deployment packaging, layers, and configuration options
- Git-based version control tools (Git, AWS CodeCommit)
- Container images
Test applications in development environments
- Features in AWS services that perform application deployment
- Integration testing that uses mock endpoints
- Lambda versions and aliases
Automate deployment testing
- API Gateway stages
- Branches and actions in the continuous integration and continuous delivery (CI/CD) workflow
- Automated software testing (unit testing, mock testing)
Deploy code by using AWS CI/CD services
- Git-based version control tools (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 (CloudFormation, AWS CDK], AWS SAM, AWS CodeArtifact, AWS Copilot, Amplify, Lambda)
- Lambda deployment packaging options
- API Gateway stages and custom Modules
- Deployment strategies (canary, blue/green, rolling)
Module 4: Troubleshooting and Optimization
Assist in a root cause analysis
- Logging and monitoring systems
- Languages for log queries (Amazon CloudWatch Logs Insights)
- Data visualizations
- Code analysis tools
- Common HTTP error codes
- Common exceptions generated by SDKs
- Service maps in AWS X-Ray
Instrument code for observability
- Distributed tracing
- Differences between logging, monitoring, and observability
- Structured logging
- Application metrics (custom, embedded, built-in)
Optimize applications by using AWS services and features
- Caching
- Concurrency
- Messaging services (Amazon SQS, Amazon SNS)


