AWS Certified Developer Preparation
Preparing for the AWS Certified Developer Associate (DVA-C01) exam? Don’t know where to start? This post is the AWS Certified Developer Associate Certificate Study Guide (with links to each objective in the exam domain).
I have curated a detailed list of articles from AWS documentation and other blogs for each objective of the AWS Certified Developer Associate (DVA-C01) exam. Please share the post within your circles so it helps them to prepare for the exam.
Course on AWS Certified Developer Associate
|LinkedIn Learning (Free trial)||AWS Certified Developer Associate Exam|
|Pluralsight||AWS Cert. Dev. Associate [Course + Labs]|
|Udemy||AWS Certified Developer Associate Course|
AWS Certified Developer Associate Practice Test
|Whizlabs Exam Questions||Dev. Associate [800Qs+Course+50 Labs]|
|Udemy Practice Test||Practice Exams AWS Developer (325 Qs)|
|Amazon e-book (PDF)||AWS Certified Developer Study Guide|
AWS Certified Developer Associate Other Stuff
|Udacity Nanodegree||Become an AWS Cloud Developer|
|Amazon e-book (PDF)||AWS Certified Developer Study Guide|
Check out all the other AWS certificate study guides
Full Disclosure: Some of the links in this post are affiliate links. I receive a commission when you purchase through them.
Domain 1: Deployment – 22%
1.1 Deploy Written Code in AWS Using Existing CI/CD Pipelines, Processes, and Patterns
Commit code to a repository and invoke build, test, and/or deployment actions
Use labels and branches for version and release management
Use AWS CodePipeline to orchestrate workflows against different environments
Apply AWS CodeCommit, AWS CodeBuild, AWS CodePipeline, AWS CodeStar, and AWS CodeDeploy for CI/CD purposes
Perform a rollback plan based on application deployment policy
A brief overview of different deployment services
A fully-managed continuous delivery service that defines your release process. Whenever there is a commit to the source control repository, CodePipeline automates the process of building the code, running tests, and releasing it to production.
With CodeStar, developers provision the necessary resources for creating a pipeline for their development activities. You can choose from a variety of project templates (C#, Java, Python, etc.,) and build a variety of apps like websites, web apps, etc.,
The difference between CodeStar and CodePipeline is that the latter is a CI/CD pipeline. Whereas CodeStar allows you to build things from scratch with a set of getting started templates. Targeted for different project scenarios.
Automate deployments to different Compute services like EC2, Lambda, or your servers in an on-premises environment.
The difference between CodeDeploy and CodeBuild is that the latter acts as the CI server. Whereas CodeDeploy provides an installable agent that manages deployments to EC2 or just any other compute instances.
1.2 Deploy Applications Using AWS Elastic Beanstalk
Utilize existing supported environments to define a new application stack
Package the application
Introduce a new application version into the Elastic Beanstalk environment
Utilize a deployment policy to deploy an application version (i.e., all at once, rolling, rolling with batch, immutable)
Validate application health using Elastic Beanstalk dashboard
Use Amazon CloudWatch Logs to instrument application logging
Some notes on Elastic beanstalk
Elastic Beanstalk, mainly used by developers, handles applications developed in a variety of frameworks like .NET, Go, Java, PHP, Python, etc., Simply put, you just upload your application to the AWS, and Beanstalk takes care of the infrastructure, load balancing, scaling, and monitoring.
Beanstalk is ideal for 3-tier applications (a number of them are given below)
1.3 Prepare the Application Deployment Package to Be Deployed to AWS
Manage the dependencies of the code module (like environment variables, config files, and static image files) within the package
Outline the package/container directory structure and organize files appropriately
Translate application resource requirements to AWS infrastructure parameters (e.g., memory, cores)
1.4 Deploy Serverless Applications
Given a use case, implement and launch an AWS Serverless Application Model (AWS SAM) template
Manage environments in individual AWS services (e.g., Differentiate between Development, Test, and Production in Amazon API Gateway
Amazon link (affiliate)
Domain 2: Security – 26%
2.1 Make Authenticated Calls to AWS Services
Communicate required policy based on the least privileges required by the application
Assume an IAM role to access a service
Use the software development kit (SDK) credential provider on-premises or in the cloud to access AWS services (local credentials vs. instance roles)
2.2 Implement Encryption Using AWS Services
Encrypt data at rest (client-side; server-side; envelope encryption) using AWS services
Encrypt data in transit
AWS services use the below tools for encryption
2.3 Implement Application Authentication, and Authorization
What is Amazon Cognito?
Amazon Cognito is the service that provides authentication, authorization for web & mobile apps. It supports simple password authentication or a third-party identity provider like Google, Amazon, Facebook, or Active Directory.
2 main components of Cognito: User pools (directory for user sign-in) and identity pools (granting users access to AWS resources).
Add user sign-up and sign-in functionality for applications with Amazon Cognito identity or user pools
Use Amazon Cognito-provided credentials to write code that accesses AWS services
Use Amazon Cognito sync to synchronize user-profiles and data
Use developer-authenticated identities to interact between end-user devices, backend authentication, and Amazon Cognito
Domain 3: Development with AWS Services – 30%
3.1 Write Code for Serverless Applications
Compare and contrast server-based vs. serverless model (e.g., microservices, stateless nature of serverless applications, scaling serverless applications, and decoupling layers of serverless applications)
Configure AWS Lambda functions by defining environment variables and parameters (e.g., memory, time out, runtime, handler)
Create an API endpoint using Amazon API Gateway
Create and test appropriate API actions like GET, POST using the API endpoint
Apply Amazon DynamoDB concepts (e.g., tables, items, and attributes)
Compute read/write capacity units for Amazon DynamoDB based on application requirements
Associate an AWS Lambda function with an AWS event source (e.g., Amazon API Gateway, Amazon CloudWatch event, Amazon S3 events, Amazon Kinesis)
Invoke an AWS Lambda function synchronously and asynchronously
3.2 Translate Functional Requirements into Application Design
Determine real-time vs. batch processing for a given use case
Determine the use of synchronous vs. asynchronous for a given use case
Determine the use of event vs. schedule/poll for a given use case
Account for tradeoffs for consistency models in an application design
3.3 Implement Application Design into Application Code
Write code to utilize messaging services (e.g., SQS, SNS)
Use Amazon ElastiCache to create a database cache
Use Amazon DynamoDB to index objects in Amazon S3
Write a stateless AWS Lambda function
Write a web application with stateless web servers (Externalize state)
Develop your application with AWS SDKs
3.4 Write code that interacts with AWS services by using APIs, SDKs, and AWS CLI
Choose the appropriate APIs, software development kits (SDKs), and CLI commands for the code components
Write resilient code that deals with failures or exceptions (i.e., retries with exponential backoff and jitter)
Use commands in your command-line tool to interact with the AWS services. This is an alternative to the browser-based AWS Console to create, update, delete, or modify your AWS resources.
Use any of the programming language SDKs to develop applications on AWS
Domain 4: Refactoring – 10%
4.1 Optimize Application to Best Use AWS Services and Features
Implement AWS caching services to optimize performance (e.g., Amazon ElastiCache, Amazon API Gateway cache)
Apply an Amazon S3 naming scheme for optimal read performance
4.2 Migrate Existing Application Code to Run on AWS
Run the application as one or more stateless processes
Develop in order to enable horizontal scalability
AWS migration scenarios
a. Lift-and-shift solutions
Typically for legacy applications that need to be rehosted in the cloud.
AWS VM Import/Export
Reduce administration/infrastructure overhead by migrating on-premises applications to use PaaS services in the cloud to take advantage of scalability & flexibility
Example: AWS Database Migration Service
Domain 5: Monitoring and Troubleshooting – 12%
5.1 Write Code That Can Be Monitored
Create custom Amazon CloudWatch metrics
Perform logging in a manner available to systems operators
Instrument application source code to enable tracing in AWS X-Ray
5.2 Perform Root Cause Analysis on Faults Found in Testing or Production
Interpret the outputs from the logging mechanism in AWS to identify errors in logs
Check build and testing history in AWS services (e.g., AWS CodeBuild, AWS CodeDeploy, AWS CodePipeline) to identify issues
Utilize AWS services (e.g., Amazon CloudWatch, VPC Flow Logs, and AWS X-Ray) to locate a specific faulty component
This brings us to the end of the AWS Certified Developer Associate (DVA-C01) Exam Study Guide.
What do you think? Let me know in the comments section if I have missed out on anything. Also, I love to hear from you about how your preparation is going on!
In case you are preparing for other AWS certification exams, check out the AWS study guides for those exams.
Get Updates on AWS Certified Developer Exam
Want to be notified as soon as I post? Subscribe to the RSS feed / leave your email address in the subscribe section. Share the article to your social networks with the below links so it can benefit others.