Here’s some stuff that might help anyone planning on doing the AWS certified developer exam. I’ve just done it and passed with a blistering 70%. It was harder than I thought it would be and the exam prep that I did, didn’t really prepare me for it…
To put it simply, if you want to pass the exam, real, practical experience will go a long way. Most of the questions are scenario based and you’re expected to analyse the scenario and choose the right answer/s (sometimes you need to select 2,3 or even 4 options). For me, the focus of the exam was services like VPC, EC2, S3 and IAM. DynamoDB was also a large part. Minor areas that were touched on included SQS, SNS and AWS responsibilities. There were very few questions that were short (e.g. What status code indicates success?) and none that simply asked you to identify what a particular service was (e.g. What is Route53?).
So, to prepare for the certification, I looked at a few different websites –
This website has videos, labs and quizzes not just for AWS but also Google and Azure. There’s a specific learning path designed to help budding associate developers too! The only problem here are that most of the videos are incredibly boring, the labs are for the most part just ‘follow the instructions and click on the button’ type experiences and the quizzes don’t really prepare you for real questions that you’d face in the exam.
There’s a free app that I’d probably recommend downloading (just called CloudAcademy) that has all the same kind of stuff. The problem I found though was that I did the quizzes so much, I ended up just memorising the questions and stock answers rather than thinking about what the answers meant. Plus the associate developer level quizzes are far simpler than the actual exam questions.
However, doing the more advanced quizzes just seemed too hard (e.g. What is the average queue length recommended by AWS to achieve a lower latency for the 200 PIOPS EBS volume? eh?) These kinds of question were never covered in the developer learning path so you just end up feeling completely unprepared.
I found this to be a more helpful site. It has a great forum area where people can write about their own experiences, offer tips, talk about what was covered in the exam etc. The learning path for the associate developer is also focused more on the exam. However, when it came to the exam, I still found the actual questions harder than the ones covered in the practise quizzes and practise exams on offer.
Qwik Labs offer loads of labs and ‘quests’ to get real practise with the AWS services. It also has some ‘challenge’ labs where you have a scenario and you’re required to work out the answers yourself. I found this a very effective way to re-enforce the ideas but not hold your hand through everything. The ‘quests’ for the developer associate didn’t seem very focused on the actual exam. It has labs about lambda, API gateway, Kinesis etc, which just aren’t part of the exam so don’t really help.
Mock exam by Kryterion
I would recommend doing a mock exam before attempting the real one. Its only 20 questions but does cover the type of questions you’ll really face in the exam and in the format they are presented. The mock exam and real exam both have questions where you’re required to select 2,3 or even 4 right options, not just choose 1. There does seem to be some discrepancy in the questions though. In the exams, you’re graded on 4 areas – AWS fundamentals, designing and developing, deployment and security, and debugging. In the mock exam I aced the fundamentals bit (100%!) but in the real exam let’s just say the percentage was less than stellar.
In the exam you get 55 questions and 80 minutes to answer them. I used every second of that and I’d say 90% of the questions really required some thought. Maybe I didn’t study hard enough or wasn’t completely ready, but I have to say, the AWS exam is not just some gimmick by Amazon to get people’s money off them. Its a real qualification and if you pass, it in theory means you are fairly competent with AWS.
In the next bit, I’ll go through some topics that were covered. I’m not going to write actual questions that were used (because I can’t remember them now), but rather talk about the level of detail and depth that the questions seemed to be aimed at.
- API-specifics: I got asked at least 3 questions that required me to identify the API call to carry out a particular request.
- how to get the URL of an ELB?
- how to list all AMI’s?
- what’s the API call to attach EBS to an EC2 instance? None of the training I did covered this.
- Supported AWS SDK’s: I got asked to choose 2 out of a list of 5. Again, not something I saw anywhere in the training I did.
- VPC: One scenario was 3 instances in a VPC that can communicate with the Internet. You add a 4th but it can’t communicate. What do you do?
- One question focused on how to grant access to an S3 bucket for someone who had logged in using their Facebook credentials.
- Another question asked how LDAP could be used to authenticate IAM users.
- One scenario involved a NAT instance having been set up, but an instance connected to that NAT in a private subnet not being able to call out to the Internet.
- Another one talked about how an application that sat on an EC2 instance could get the instances public/private IP addresses.
- ELB: Load testing was being performed on 2 AZ’s but only 1 AZ got hit with traffic. How could you ensure that both AZ’s get tested properly. Didn’t have a clue about that one.
- S3 (there was a fair bit on this topic)
- What name for log files would lead to optimised storage in S3? (nothing I read prepared me for that one)
- You upload a file to a bucket in the US-Standard region but can’t immediately access it with an API call. Why? (this highlights the tricky nature of the questions, since you immediately think, all PUT operations for new items are read-after-write. Some of the options were, items aren’t available until they have been replicated across region, US-Standard imposes a 1 second delay after writes.)
- You have an S3 bucket which is private and only paying customers should be able to download objects. How do you accomplish this?
- You have 2 buckets, one serving a website, one serving fonts. However, the website can’t access the fonts. Whats the problem?
- There were a couple of questions about read/write throughput calculations. It was fairly minor for me though
- Which aspects of DynamoDB do you need to contact AWS in order to increase?
- What is a good hash key schema for provisioned throughput efficiency?
Some other misc questions included
- What are the parts of an SNS request?
- You’re burning through cycles to get messages from an SQS queue but getting nothing back. What do you do? (VisibilityTimeout?)
- What happens in cloudformation if it fails?
- Which services used key/value pairs? (e.g. S3, Autoscaling, EC2, ELB etc)
- Which services do you not pay for?
I’d say the best way to increase confidence is practising until you can do stuff from memory. Do the qwik labs and cloud academy labs but don’t just follow the instructions, try and set up something real. Or better yet, set up your own AWS account and make a real application. I set up an account but I got worried about getting charged for stuff so I mainly stuck to doing things inside the lab environments where there’s no danger of forgetting to terminate an instance or stop an EBS volume.
From my perspective, knowing about the services on offer in theory should inform how I architect applications to utilise cloud-based design patterns. That’s the idea anyway.