Since some of us are lucky to enough to skip work today due to Labor Day I figured it was a great time to announce two new bonus chapters for my Learn AWS By Using It course.
I am very excited about this bonus content because it was sourced by those here on dev.to, my mailing list, and folks that reached out to me on Twitter.
The two questions I have been asked about most after the release of my book, How To Host, Secure, and Deliver Static Websites on Amazon Web Services, has been:
- How do I elevate my skills in AWS?
- What is the next thing I can practice with the static website use case?
These are two fantastic questions that led me to create these two chapters.
The focus of the course
To recap, the course focuses on teaching us AWS through the lens of solving a problem. The problem, in this case, is hosting, securing, and delivering static websites. This method of learning is what I view as learning by doing.
Instead of spending hours reading AWS documentation, let's get to work and actually start building something.
This allows us to learn services like S3, CloudFront, API Gateway, Web Application Firewall, and AWS Lambda while actually using them to solve our problem. In the course, we learn the ins and outs of hosting, securing, and delivery of a static website on AWS.
But, more importantly, we learn a framework for learning any service inside of the AWS ecosystem. The best way to learn cloud services is to actually use them.
The bonus content
Inspired by the incredible individuals that are passionate to learn AWS, I decided to put together two bonus chapters that focus on the two questions I heard the most.
Going Beyond The AWS Console: How To Implement Infrastructure as Code for AWS Infrastructure
In the course, we accomplished our goal of learning 6 different AWS services. We did this by focusing on our problem, hosting, securing, and delivering static websites.
In this bonus chapter, we take it to the next level.
At the start of this course, our focus was on getting familiar with AWS and solving our problem. But now that we have solved our problem, it's time we learn a more advanced best practice.
Here we focus on Infrastructure as Code and how to apply it to our static website use case. If you enjoyed my recent blog post on the topic, you are going to really enjoy this chapter.
We go much deeper into IaC and explore how to leverage Terraform to represent our static website infrastructure as code.
How To Continuously Deploy A Static Website Using GitHub and AWS
We have all heard of Continous Integration and Continous Deployment, but it often seems big and scary. But, it's really not.
This bonus chapter covers the basics of what CI/CD is, the benefits it provides and explores one implementation within AWS.
We can combine our static website knowledge with our Infrastructure as Code knowledge to create a continuous integration and deployment pipeline. We can then learn new AWS services, CodePipeline and CodeBuild, to automate the deployment of our static website to S3.
The two questions I heard the most
These two bonus chapters are focused solely on the two questions I heard the most.
How do I elevate my skills in AWS?
Going from knowing what AWS is to leveraging AWS is no small feat. But, it also isn't about knowing every service that exists. It's about knowing how to apply a given service to a problem you are facing, just in time. In fact, you might not even know what that service is truly for until you try to apply it.
Therefore, elevating your skills isn't about cramming as many services into your head as possible.
There is an emerging trend in the cloud space that can help you elevate your skills. That trend is all about automation.
Infrastructure creation, updating, and even destroying should be automated to the highest extent possible. Deployment of code and scaling of services should be handled automatically.
These two bonus chapters help you harness the power of automation via representing our infrastructure as code as well as continuously deploying our code with a CI/CD Pipeline.
What is the next thing I can practice with the static website use case?
Honestly, the static website use case is full of things you can implement in order to learn more about AWS, regardless of these two bonus chapters.
In these chapters, we focus on learning and implementing Continous Integration and Continous Deployment. Two concepts that are critical to any software development and applicable to most use cases. We focus on learning these within our static website context, but we can apply the concepts to dynamic websites as well.
We also learn how to take our static website use case and represent it in Terraform templates. This allows us to practice representing our infrastructure as code, review our infrastructure in pull requests, and share our infrastructure with other.
There are many more things that can be applied and subsequently learned within our static website use case. A few ideas that you may want to explore beyond these bonus chapters:
- Adding search functionality via API Gateway and AWS Lambda.
- Adding chat functionality via Lambda.
- Streaming video via AWS CloudFront.
Amazon Web Services is a massive platform nowadays with 100+ services and growing more each year. There is a lot of information. So much so that you can begin to feel lost in all of it.
My secret is to avoid the sea of information. Learn the services as you are applying them to a problem you are facing. Ask questions of people that are knowledgeable in this space when you are stuck as folks are always available to help.
This course really focuses on the way I learned AWS early on and focuses on the concepts I still use today. I hope that you enjoy these bonus chapters and if you have any questions or comments, please leave a comment below or shoot me a message on Twitter.