I am a fan of Cloud services and in particular AWS Cloud. I have been working with AWS services since 2018 when I realized how powerful the AWS infrastructure is and how convenient its services are for developers, compared with equivalent services offered by traditional hosting services in data centers.
Recently I was able to receive 2 AWS certifications, Solutions Architect Associate (SAA-C03) and Developer Associate (DVA-C02). And in this short article I want to share my journey and study plan and resources which helped me prepare for the exams. You can check out my certifications on LinkedIn.
Experience with AWS
As I mentioned before, I started working with AWS services few years ago and back then I mostly maintained a couple of PHP applications deployed on Elastic Beanstalk and RDS MySQL, a few Python scripts on EC2, and of course our domains and TLS certificates on Route53 and Certificate Manager. Then there was an interesting task, ETL (Extract, Transform, Load). I did some research and found a suitable solution: SQS and SNS. That task gave the opportunity to work with more services.
After that, whenever I had some spare time I would check out other services such as Lambda, Step Functions, ECR, ECS. I deployed a sample Ruby on Rails application on ECS with Fargate only to satisfy my curiosity!
I explained my experience with AWS services to emphasize the importance of some level of exposure before taking an exam as that would be very beneficial. I had never worked with S3 before so I did not know about its capabilities and configuration options. As I was preparing for my first exam, I created some buckets and played with its options!
Solutions Architect Associate
I first studied for the Solutions Architect exam. I finished a course on Udemy by Ryan Kroonenburg:
The course is not available on Udemy anymore but it is now updated and available on ACloudGuru. It’s a great course which focuses on key points for the exam and has good labs for you to understand services better.
I can also recommend this course by Stéphane Maarek (I didn’t study this course myself) which explains almost all the services that AWS Exam Guideline has mentioned:
After I finished the course, I studied practice exams and spent 1 week on this course:
While reviewing each exam, I realized there were some other important points about different services that I needed to know to prepare for the actual exam. For instance, I never noticed a particular configuration option for a particular service until I saw it in a practice question! So I did more research and used AWS official documents and other resources.
I cannot stress enough how important this step is! Having a good level of knowledge about a service and getting familiar with exam scenario questions together will help you succeed in your exam. So I definitely recommend that you spend as much time as you need to study different exam questions.
For this exam, I studied another course by Stéphane Maarek on Udemy, which takes a deep dive into almost all the required services for the exam:
As I will explain in next sections, I could skip many sections on this course because I already knew about them from the first course I studied for Solutions Architect.
Again, after I finished the course I studied practice exams and spent almost a week on this course and of course on AWS official documentation and other sources whenever I needed to better understand a topic:
There are tons of other resources, books, videos and articles on various AWS services which you can use. I should also mention AWS Skill Builder which has a great amount of resources and labs which can help you on this journey and are provided in a few languages other than English as well.
Overall I spent 3 months on Solutions Architect Associate (20 hours per week on average) and after I took the exam and passed, I booked for Developer Associate within 4 weeks. The reason was that I knew these exams have a significant amount of overlap and share common topics and services. I was able to skip many sections on the second course (Developer Associate) as I already knew about the topics such as S3, EC2, RDS, KMS, Parameter Store, etc.
As you may already know, there are two types of questions on the exam: multiple choice and multiple response.
If you look at sample questions for Solutions Architect (or Developer), you will understand the categories of questions which can be summarized as:
- Choosing the best service for a particular scenario (e.g. KMS vs Secrets Manager vs Parameter Store to store application credentials)
- Choosing a chain of services to solve a problem (e.g. using an Application Load Balancer with EC2 Auto Scaling vs Lambda functions with API Gateway)
- Optimizing existing services for a specific use case (e.g. adding RDS read replicas for huge read traffic or converting to Multi-AZ for disaster recovery)
- Service options (e.g. S3 encryption options: SSE-S3 vs SSE-KMS vs SSE-C)
One last point is that, unless mentioned otherwise, you should also consider the cost factor when selecting an answer. So if a solution suggests using EC2 On-Demand instances and another solution is about using a single Lambda function (or Spot instances), you should probably choose the second answer.
Extra 30-minute extension
You can ask for a time extension for your exam according to AWS exam policy and information:
A 30-minute exam extension is available upon request to non-native English speakers when taking an exam in English. The accommodation, “ESL +30,” only needs to be requested once, prior to registering for an exam.
So after creating an account on aws.training/certification, you can enable this option in Request Exam Accommodations.
A final point is that these exams include 15 unscored questions that do not affect your score. AWS collects some information about the exams using these questions for future. These unscored questions are not identified on the exam.
Differences and Similarities
The Solutions Architect Associate exam is mainly about designing and maintaining an optimized, secure and cost-effective cloud solution with more emphasis on:
- VPC (Virtual Private Cloud) and its different services and options (e.g. NAT, Subnets, ACLs, Route Tables, Endpoints)
- Storage (e.g. S3, EFS, EBS, FSx, RDS, ElasticCache)
- EC2 Auto Scaling and Load Balancing (e.g. ALB, NLB, Launch Template, Target Groups)
Please note that not all services/features of AWS need to be studied deeply. For instance, AWS FSx is a service for managing high-performance file systems in the cloud but for the exam you only need to know about its types (e.g. Windows, Lustre), its applications (e.g. HPC) and the difference between FSx and EFS.
The Developer Associate exam is more about deploying applications in an optimized and secure way using specific services and tools with more emphasis on:
- CI/CD tools (e.g. CodePipeline, CodeBuild, CodeDeploy)
- Storage (e.g. S3, RDS, ElasticCache, DynamoDB)
- Lambda, API Gateway, ECS, Elastic Beanstalk
- Deployment automation (e.g. CloudFormation)
You should expect to see questions about core services such as EC2, S3, RDS, KMS and Secrets Manager in both exams.
When I first started watching courses for the exams, there were a lot of things I did not know which made me feel uncertain. As I progressed, I had to look up some topics and services to better understand what I was dealing with. I took lots of notes of every new point I learned from the courses and practice exams and the notes helped me prepare well for the exams.
I hope this article can help you pass your AWS exam and become an AWS Certified architect/developer!