AWS Certified Developer Associate Exam Study Guide [DVA-C01]

AWS Certified Developer Associate Study Guide (DVA-C01)

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
PluralsightAWS Cert. Dev. Associate [Course + Labs]
UdemyAWS Certified Developer Associate Course

AWS Certified Developer Associate Practice Test

Whizlabs Exam QuestionsDev. Associate [800Qs+Course+50 Labs]
Udemy Practice TestPractice Exams AWS Developer (325 Qs)
Amazon e-book (PDF)AWS Certified Developer Study Guide

AWS Certified Developer Associate Other Stuff

Udacity NanodegreeBecome 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

Create a commit in AWS CodeCommit

Add a CodeBuild build action to a pipeline

Use AWS CodePipeline with CodeBuild to test code

Use GitHub Actions to deploy serverless apps

Use labels and branches for version and release management

Create a branch in AWS CodeCommit

Work with branches in AWS CodeCommit repositories

Multi-branch CodePipeline strategy

Labels and Selectors

Use AWS CodePipeline to orchestrate workflows against different environments

How to create a workflow with AWS CodePipeline?

Multi-environment CI/CD pipelines with AWS CodePipeline

Apply AWS CodeCommit, AWS CodeBuild, AWS CodePipeline, AWS CodeStar, and AWS CodeDeploy for CI/CD purposes

Complete CI/CD with CodeCommit, CodeBuild, CodeDeploy, & CodePipeline

CI/CD on EKS using CodeCommit, CodePipeline, CodeBuild

Create a CI/CD workflow using AWS CodeStar

Perform a rollback plan based on application deployment policy

Deployment policies & settings

Cancel application deployments

Automate rollback of failed Amazon ECS deployments

A brief overview of different deployment services

AWS CodeCommit

A managed source-control service to host Git repositories in AWS.

AWS CodeCommit

What is AWS CodeCommit?

AWS CodeBuild

Hosts build servers so you don’t have to. A build service that compiles your code, runs unit tests, and drops artifacts into your target location, ready to be deployed.

AWS CodePipeline

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.

AWS CodeStar

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.

AWS CodeDeploy

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

Create an example application

AWS Elastic Beanstalk .NET Core: Getting started

Package the application

Create an application source bundle

Installing your application’s dependencies

Introduce a new application version into the Elastic Beanstalk environment

Managing application versions

Deploy a new version of your application

Utilize a deployment policy to deploy an application version (i.e., all at once, rolling, rolling with batch, immutable)

Elastic Beanstalk deployment strategies

Configuring application deployments

Validate application health using Elastic Beanstalk dashboard

Basic health reporting

Enhanced health reporting and monitoring

Use Amazon CloudWatch Logs to instrument application logging

Using Elastic Beanstalk with Amazon CloudWatch logs

View logs from EC2 instances in your Beanstalk environment

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)

What is AWS Elastic Beanstalk?

Deploying your first application with Beanstalk

Java applications

.Net applications

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

Manage dependencies with AWS SDK for Java

Serving static files

Advanced environment customization with config files

Environment properties & other software settings

Outline the package/container directory structure and organize files appropriately

Structuring your project folder

AppSpec file structure

Translate application resource requirements to AWS infrastructure parameters (e.g., memory, cores)

Determine your cloud server requirements

1.4 Deploy Serverless Applications

Given a use case, implement and launch an AWS Serverless Application Model (AWS SAM) template

AWS Serverless Application Model (AWS SAM)

What is the AWS Serverless Application Model?

Mastering the AWS Serverless Application Model

Manage environments in individual AWS services (e.g., Differentiate between Development, Test, and Production in Amazon API Gateway

Manage stages and environments

Deploy AWS Lambda code in different environments

Manage a multi-environment serverless architecture

aws certified developer associate dva-c01

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

Techniques for writing least privilege IAM policies

Approaching least privilege | IAM policies with usage-based analytics

Assume an IAM role to access a service

Delegate access across AWS accounts using IAM roles

Assume an IAM role using the AWS CLI

Configure a function to assume a role in another account

Use the software development kit (SDK) credential provider on-premises or in the cloud to access AWS services (local credentials vs. instance roles)

Working with AWS Credentials

Using a credential provider

2.2 Implement Encryption Using AWS Services

Encrypt data at rest (client-side; server-side; envelope encryption) using AWS services

Encryption of data at rest

Protect data at rest with EC2 instance store encryption

Protect data using client-side encryption

Client-side & server-side encryption

Server-side encryption with S3-managed encryption keys

Encrypt data in transit

Encryption of data in transit

How do you protect your data in transit?

AWS services use the below tools for encryption

2.3 Implement Application Authentication, and Authorization

What is Amazon Cognito?

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).

Amazon Cognito user pools

Amazon Cognito identity pools

Add user sign-up and sign-in functionality for applications with Amazon Cognito identity or user pools

Use the Amazon Cognito hosted UI for sign-up & sign-in

Add social sign-in to a user pool

Use Amazon Cognito-provided credentials to write code that accesses AWS services

Accessing AWS services with Amazon Cognito

Use Amazon Cognito sync to synchronize user-profiles and data

Getting started with Amazon Cognito Sync

Synchronize data with Amazon Cognito

Use developer-authenticated identities to interact between end-user devices, backend authentication, and Amazon Cognito

Developer authenticated identities

Integrate Amazon Cognito with developer authenticated identities

Integrate third-party IdP with developer authenticated identities

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)

Server vs. serverless: What’s the best option?

What are Microservices?

Serverless computing: It’s all about stateless microservices

Design your serverless apps for massive scale

Build scalable serverless apps with S3 & Lambda

Decouple larger applications with EventBridge

Configure AWS Lambda functions by defining environment variables and parameters (e.g., memory, time out, runtime, handler)

Configure Lambda environment variables

Using Lambda environment variables

Create an API endpoint using Amazon API Gateway

Introducing Amazon API Gateway private endpoints

Creating a private API in Amazon API Gateway

Create and test appropriate API actions like GET, POST using the API endpoint

Set up a method request in API Gateway

Use the API Gateway console to test a REST API method

Apply Amazon DynamoDB concepts (e.g., tables, items, and attributes)

Core components of Amazon DynamoDB

Compute read/write capacity units for Amazon DynamoDB based on application requirements

Read/write capacity mode

Calculate Read and Write capacity unit for DynamoDB

Associate an AWS Lambda function with an AWS event source (e.g., Amazon API Gateway, Amazon CloudWatch event, Amazon S3 events, Amazon Kinesis)

Use AWS Lambda with Amazon API Gateway

Using AWS Lambda with scheduled events

Tutorial: Use an S3 trigger to invoke a Lambda function

Using AWS Lambda with Amazon Kinesis

Invoke an AWS Lambda function synchronously and asynchronously

Understand the different ways to invoke Lambda functions

Synchronous invocation

Asynchronous invocation

3.2 Translate Functional Requirements into Application Design

Determine real-time vs. batch processing for a given use case

Comparison between batch and stream processing

AWS Batch use cases

Determine the use of synchronous vs. asynchronous for a given use case

Asynchronous vs. Synchronous responses

Synchronous invocation | AWS Lambda

Asynchronous invocation | AWS Lambda

Determine the use of event vs. schedule/poll for a given use case

Poll for job status

Asynchronous client interaction in AWS serverless

Account for tradeoffs for consistency models in an application design

Consistency models for AWS

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)

Modern application development on AWS whitepaper

Design your code

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)

AWS CLI

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.

AWS SDK

Use any of the programming language SDKs to develop applications on AWS

AWS Toolkit for Visual Studio

AWS Toolkit for Visual Studio Code

AWS SDKs for different programming languages

APIs

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

Continuous optimization

Optimizing a Lift-and-Shift for performance

Amazon CodeGuru Profiler: Optimize application performance

Optimizing AWS performance over the long term

Optimizing CPU options

Optimizing GPU settings

Optimizing Amazon S3 performance

AWS Optimizer

Refactoring applications

4.2 Migrate Existing Application Code to Run on AWS

Isolate dependencies

Run the application as one or more stateless processes

Develop in order to enable horizontal scalability

Externalize state

How to migrate to AWS?

6 strategies for migrating applications to the cloud

Migrating your existing applications to the AWS cloud

AWS Migration whitepaper

8 Business drivers that motivate cloud migrations

AWS migration scenarios

a. Lift-and-shift solutions

Typically for legacy applications that need to be rehosted in the cloud.

CloudEndure Migration

AWS VM Import/Export

b. Replatforming

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

Automated monitoring tools

Manual monitoring tools

Monitor HTTP 404 response

Monitor HTTP 4xx Codes

Monitoring functions in the AWS Lambda console

Monitoring the state of a function with the Lambda API

Custom monitoring dashboards

Monitor custom application metrics using CloudWatch Agent

Monitoring API Requests with CloudWatch

Monitor application health using CloudWatch ServiceLens

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

Root cause analysis – AWS Well-Architected Framework

5 whys

Root cause analysis: 4 Tips for troubleshooting defects faster

Root cause & end-user impact analysis using AWS X-Ray

Debug your container & serverless apps with X-Ray

Introducing Amazon Detective

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.

Share the AWS Certified Developer Study Guide

You may also like

Leave a Reply

Your email address will not be published. Required fields are marked *