Week 3 - Writing CloudFormation Scripts
In this post, I'll be sharing a recap of my notes from Day 15 to 21 of learning in the Udacity Cloud DevOps Engineer Nanodegree classroom.
These are compiled from my daily IG posts, as part of my #3MonthsOfCDE series and only slightly edited for platform suitability.
Day 15 - Cloud Infrastructure Diagrams
Remember how I said the Cloud infrastructure lesson didn’t come with a challenge exercise?
I was wrong; it did.
Apart from the recommendation to check out reference architectures from AWS, there was an exercise to create a diagram for a corporate-only cloud; in simple terms, private connections (with VPNs and customer and virtual gateways) from your corporate data center to your resources in the cloud.
The first diagram was my attempt and the other one, the solution provided. Although not correct, I think I captured some of the basics and I would explore creating more infrastructure diagrams (with resources used to achieve specific case studies).
My attempt
The solution
Day 16 - Networking Infrastructure
After starting this lesson, I understood why infrastructure diagrams had to be introduced before practicing more CF scripts. With the diagram as a guide we got started with creating a template to provision the resources. We only focused on the networking resources for the lesson, but so far I’ve learnt and practiced more things.
There was a template guide but like the teacher advised, it really is better to follow along and write them on your own, so you can: 1) read through more of the documentation for the resource types, and 2) run into errors and fix them yourself.
I liked the progress I made yesterday and I’m looking forward to completing the lessons so I can be able to work on the next project myself.
Day 17 + 18 - “What You Should Know as a DevOps Engineer”
I barely spent any time in the classroom on Day 17. I opened up the Routing part of the lesson but dozed off the minute I started, literally.
On the other hand, I decided to learn out of the Udacity classroom for Day 18. I had a scheduled connect session so I took about an hour exploring resources on a take-home assignment: “Research on key knowledge areas, skills and tools you need to know to be a DevOps engineer”.
I read several articles and it was quite overwhelming. During the session, I shared some of these concerns with the session lead and his feedback actually helped put things in better perspective. As always, he was very upfront about what a DevOps engineer should know, but he also shared a sample roadmap/checklist that could help and that’s now saved in my resource list.
Afterwards, I spent the rest of my time on AWS Pricing. I focused on AWS Free Tier in particular and what it entails. I had signed up for a personal account prior to starting the nanodegree (so that’s a Free tier for 12 months) but the Nigerian in me still needed to be fully aware of what the plan covers so I could have peace of mind.
One last thing from the connect session made me pause to think. For me, this journey is a marathon, not a sprint. I am not looking to urgently switch into a DevOps role nor am I desperately “hoping” to be able to secure it by a certain deadline. I think that puts a lot more pressure on one’s learning and it’s easy to burn out and fail.
I may not have an explicit roadmap but I know I want this to have a spread-out learning timeline. At the same time, this does not mean I intend to approach my learning at a snail pace.
I’ll keep going though; see where this nanodegree leads me.
Day 19 + 20 - CloudFormation Scripts
- I had my first 'debugging' battle yesterday (and I call it my first because I still could not figure out what was wrong). Even though I practiced something similar, I decided to actually write a script for Challenge 1*.
The lessons under the "IaC" course have challenge exercises to attempt and test your knowledge.
- That was how it turned into hours of trying to figure out why I was running into “connection timed out” errors. Long story short, I tested by provisioning the resources via console and I didn’t run into the issue. So I know something is not working right from the terminal. I’d be revisiting it later, because it still bugs me to this day.
If you have an idea of what might be wrong, please let me know!
- For day 20, I focused on writing more scripts and finishing the module on Networking infrastructure. I wrote scripts for the diagrams referenced and they worked out fine.
P.S I’m adding my exercises and challenges solutions to a GitHub repo - check here.
Day 21 - Servers and Security Groups
I started the lesson on provisioning servers via CF and I made it halfway through. There were a couple “how-am-I-supposed-to-know-these” moments, so I spent some more time on those areas.
I also checked out the second course project to see if I had enough knowledge/practice to start working on it. I should have the bases covered soon and then, I can commence the project.
Day 15-21: 11th May, 2022 - 17th May, 2022
Subscribe to my newsletter
Read articles from Airat Yusuff directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Airat Yusuff
Airat Yusuff
Software Engineer learning about Cloud/DevOps. Computing (Software Engineering) MSc. Computer Engineering BSc. Honours.