AWS has so many puzzle pieces which makes it hard to figure out if you’ve never explored them before. From their most basic offerings like EC2 to more complex services, most of the jargon is fairly thick. This even extends to the certification process, which can lead to some frustration. Our goal here is to clarify this one corner of AWS that many professionals use as an entry point to begin their cloud expertise journey: AWS Certified Developer Associate.
Think In Real-World Context
Like most of the AWS universe, Amazon Web Services Developer Associate is a bit of a mouthful and doesn’t capture what is going on beneath the hood. The certification is designed to introduce the building blocks of AWS for a technical professional looking to learn the ropes of designing and implementing cloud solutions using AWS. This means there are a lot of different services covered in the course material which can be overwhelming, especially if this is your first exposure to AWS in detail.
Think about the services in a real-world context. When you do this you start to see that the AWS Developer associate certification essentially boils down to how to create, deploy, and secure a cloud application from scratch using both server-based and serverless application stacks.
Creating applications using AWS
The hardest thing about creating your first cloud application is how many different services are needed just to make something basic. This leaves a first-time developer feeling very overwhelmed.
Luckily the AWS Developer Associate certification is designed to walk through the critical services needed to set up any basic application. The first thing you might notice when making your way through the topics is that some offerings seem to fulfill the same purpose. This is not an accident, the topics covered are designed to teach the basics about both server and serverless applications.
Traditionally, cloud applications in AWS are created using Elastic Cloud Compute. This service, commonly referred to as EC2, is a computer somewhere in an AWS data center that users can do anything they would use a normal machine to do. Anything from APIs and batch processing to machine learning is possible on an EC2 instance. This powerful service combined with several other AWS offerings allows users to run a server-based application in the cloud with no fuss over maintaining hardware and complicated networking. The major drawback to this approach is that you must pay a regular fee for the use of an instance, regardless of the workload on the machine.
On the other hand, AWS also offers serverless compute options by way of AWS Lambda. This type of development is often used in IoT design. This service allows code to run in the cloud without any server management at all. Most importantly you only need to pay for the time your code is running. Lambda, along with a suite of related services such as API Gateway, allows for complete cloud applications that involve no instance management and a pay-per-usage model that is attractive for many different use cases.
But not every application falls neatly into these categories. There are several odd ducks on the exam that don’t really fit nicely in a category but are still useful skills to have. These include messaging services like SNS and SQS, which can be used to move notifications and messages between applications in a decoupled way, as well as containerization services like ECR. Container services are covered at a higher level on the Developer Associate exam so don’t worry about buying any docker textbooks, but it will be important to know the basics.
A special mention goes to Simple Storage Service or, S3. S3 is one of the most popular AWS services and is used in a huge variety of applications. S3’s ability to store data in an easy-to-access and understand way makes it an important tool in any cloud developer’s belt so of course, Amazon is going to ask at least several questions on the exam about S3.
Deploying and Managing AWS Applications
A big challenge in IoT development is deploying and managing applications across many different platforms. Luckily AWS provides some pretty sweet tools for continuous deployment and integration as well as good tracking and monitoring tools to see what’s going on with your cloud applications in near real-time.
Naturally, these essential features for successful products are covered in the Developer Associate exam. You’ll find a lot of nitty-gritty on the exam about deployment strategies so I’ll give an overview of the tools used to enact those strategies as there’s a ton of written stuff out there on how to set up Blue/Green or cutover deployments.
The most important feature here is AWS Cloud Formation. This tool is Amazon’s solution for the super popular concept called Infrastructure as Code.
Cloud Formation allows a complex set of cloud services to be stored as a template and repeatedly set up and torn down in a managed and automated manner. This is extremely powerful as it unlocks a huge variety of application deployment strategies that would otherwise be extremely difficult to automate.
Another key feature that falls into this category is AWS Cloudwatch.
Cloudwatch is an incredibly powerful monitoring tool that allows for detailed application monitoring. The list of metrics that can be looked at could be its own blog but needless to say, you can really get deep cuts on what is going on with your application without having to write much code at all.
A tool that really dovetails nicely into Cloudwatch is Alarms. This allows notifications to be sent to a variety of sources when certain thresholds are reached. This can be used in a huge number of ways, including autoscaling your applications when usage is high or sending emails to administrators when there is a rise in errors.
Securing AWS Applications
Any IoT consulting engagement that involves cloud development will eventually lead to a conversation about security. Conveniently, once you complete this certification you will know all there is to know about the basic security features provided in AWS.
The foundation for much of the security in AWS is Identity and Access Management (IAM). IAM allows an organization to tightly control what users can access and use specific features. IAM is a notoriously complex system but at a high level, it assigns users roles or permissions that allow them to do things in AWS. There will certainly be questions about IAM on the exam because of how fundamental it is to AWS so make sure to verse yourself on the basics.
There is also a smorgasbord of other security features that the exam covers tools of all stripes from Cloudtrail, for auditing data and application access, to tools like Secrets Manager which has an uncharacteristically descriptive name. These are questioned on the exam to varying degrees but it’s good to be generally familiar with what tools are available even if the implementation details aren’t readily recalled.
So altogether, there is a huge variety of topics on the AWS Developer Associate exam. You’ll find as you study that the sheer volume of different services that Amazon wants you to know about is the most challenging aspect. Fortunately for us, beyond the really key services highlighted in this blog post, just knowing that a service like Secrets Manager exists and what it’s used for is enough for most exam questions. As frustrating as information overload can be, it is somewhat necessary.
Creating a production-grade cloud application requires knowledge of many different areas of software and a large toolkit to back that knowledge up. Once you dispel the jargon around AWS and cut into what services are available you’ll be well on your way to becoming an AWS Certified Developer Associate.
You may be asking yourself: What’s next after I complete my certification? We recommend creating something using the tools you’ve just been professionally certified to use in order to solidify your knowledge.