Aws Developer Certification

4 minute read

AWS Certified Developer - Associate showcases knowledge and understanding of core AWS services, uses, and basic AWS architecture best practices, and proficiency in developing, deploying, and debugging cloud-based applications by using AWS. Preparing for and attaining this certification gives certified individuals more confidence and credibility. Organizations with AWS Certified developers have the assurance of having the right talent to give them a competitive advantage and ensure stakeholder and customer satisfaction.

To learn more about the “AWS Certified Developer - Associate” exam refer https://aws.amazon.com/certification/certified-developer-associate/

To check if there is any upcoming changes in any AWS exam refer https://aws.amazon.com/certification/coming-soon/

Exam Overview

  • Level Associate
  • Length 130 minutes to complete the exam.
  • Cost 150 USD
  • Format 65 questions, either multiple choice or multiple responses.
  • Delivery method Pearson VUE testing center or online proctored exam.
  • Passing ~72% **could be changed.

Download Exam Guide | Download Sample Questions

Who should take this exam?

AWS Certified Developer - Associate is a great starting point on the AWS Certification path for individuals who may have any of the following:

  • Experience working in a developer role with in-depth knowledge of at least one high-level programming language.
  • Experience in AWS technology.
  • Strong on-premises IT experience and understanding of mapping on-premises to the cloud.
  • Experience working in other cloud services.

Personal Notes

  • Code DVA-C01 / DVA-C02 (latest), both codes have the same syllabus and only the module distribution has changed.
  • Average Time 2 mins / question
  • Types of Questions Multiple Choice and Multiple Responses

Exam Breakdown

The whole exam is broken down into domains and sub-domains.

  • Deployment ~24% roughly 15-16 Questions
  • Security ~26% roughly 16-17 Questions
  • Development ~32% roughly 20-21 Questions
  • Monitoring and Troubleshooting ~18% roughly 11-12 Questions

Introduction to Elastic Beanstalk

Elastic Beanstalk Icon

It is a PaaS that allows you to quickly deploy and manage web apps on AWS without worrying about the underlying infrastructure.

What is Platform as a Service? (PaaS)

A platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app.

PaaS is like renting a pre-built cloud workspace for developing and running applications. It saves time and money and allows for easy scaling.


It is not recommended for “Production” applications. Talking about enterprise, large companies.

Powered by a CloudFormation template setup for you:

  • Elastic Load Balancer
  • Autoscaling Groups
  • RDS Database
  • EC2 Instance pre-configured (or custom) platforms
  • Monitoring (CloudWatch, SNS)
  • In-place and Blue/Green deployment methodologies
  • Security (Rotates Passwords)
  • Can run Dockerize environments

Supported Languages

  • Ruby
  • Python
  • PHP
  • Tomcat
  • NodeJS

Web vs. Worker Environment

Web Environment

  • Has two variants
    • Load Balanced Environment
      • Uses ASG and set to scale
      • Use an ELB
      • Designed to Scale
      • Variable cost associated based on load
    • Single-Instance Env
      • Still uses an AGS, but Desired Capacity is set to 1 to ensure the server is always running.
      • No ELB to save on cost.
      • The Public IP Address has to be used to route traffic to the server.
  • Creates an ASG (Auto Scaling Group)
  • Creates an ELB (Elastic Load Balance) - optional

web environment

Worker Environment

  • For backend jobs
  • Creates and ASG
  • Creates and SQS Queue
  • Installs the SQSD daemon on the EC2 Instances
  • Create CloudWatch Alarm to dynamically scale instances based on health.

worker environment

Deployment Policies

These are the deployment policies available with the Elastic Beanstalk

Deployment PolicyLoad Balanced EnvSingle Instance Env
All at Once👍👍
Rolling👍
Rolling with additional batch👍
Immutable👍👍

All at Once

All at Once Deployment

  • Deploy the new app version to all instances at the same time.
  • Takes all instances out of service during the deployment process.
  • Servers become available again

The fastest but also the most dangerous deployment method. In case of Failure, you need to roll back the changes by re-deploying the original version again to all instances.

Rolling

Rolling Deployment

  • Deploys the new app version to a batch of instances at a time.
  • Takes batch instances out of service while the deployment processes.
  • Reattaches updated instances.
  • Goes onto the next batch, taking them out of service.
  • Reattaches those instances (rinse and repeat)

In Case of Failure, You need to perform an additional rolling update in order to roll back the changes.

Rolling with Additional Batch

Rolling with additional batch ensure our capacity is never reduced. This is important for applications where a reduction in capacity could cause availability issues for users.

  • Launch a new instance that will be used to replace a batch.
  • Deploy update app version to new batch.
  • Attach the new batch and terminate the existing batch.

In case of failure, you need to perform an additional rolling update to roll back the changes.

Immutable

Immutable

  • Create a new ASG with EC2 instances.
  • Deploy the updated version of the app on the new EC2 instances.
  • Point the ELB to the new ASG and delete the old ASG, which will terminate the old EC2 instances.

The safest way to deploy for critical applications. In case of failure just terminate the new instances since the existing instances still remain.

EB - Deployment Methods

MethodImpact of failed deploymentDeploy timeNo downtimeNo DNS changeRollback progresscode deployed to Instances
All at onceDowntime👍ManualExisting
RollingSingle batch out of service; any successful batches before failure running new application version⏰⏰ *👍👍ManualExisting
Rolling with additional batchMinimal if first batch fails; otherwise, similar to Rolling⏰⏰⏰ *👍👍ManualNew and Existing
ImmutableMinimal⏰⏰⏰⏰👍👍Terminate NewNew
Blue/GreenMinimal⏰⏰⏰⏰👍Swap URLNew

* Time may vary

EB - In Place vs. Blue/Green Deployment

Elastic Beanstalk, by default, performs in-place updates.

👋🏼 In-Place and Blue/Green Deployment are not definitive in definition and the context can change the scope of what they mean.

comments powered by Disqus