Create An AWS S3 Website Using Terraform And Github Actions

We’ve talked a lot recently about infrastructure as code and setting up cloud environments. But nothing beats getting hands on with a technology to help learning. A workflow I’ve used a lot recently is Terraform (and remote state) using a Github Actions pipeline. It’s cheap, straight-forward and a great little workflow for creating cloud resources. Today, let me show you why.

Terraform logo

So I thought setting up a basic workflow for creating a website would be a great hands-on way to get your head around some different topics: AWS, Terraform and Github Actions. Today we’ll go through how to setup an S3 bucket (which could function as a website) in AWS and use a Github Actions pipeline to create the infrastructure and upload our files.

By the end of this article you’ll know how to configure an AWS S3 bucket using Terraform and deploy it using Github Actions. 

What is Immutable Infrastructure?

Ever had to SSH into a production server to manually copy over files, or to run a command? Palms sweaty and shaking. You don’t know what the outcome of the update will be, and if something goes wrong the system could go down? If you haven’t, you’re one of the lucky ones!

Making manual changes onto an existing server means you’re likely operating with “mutable infrastructure” — whether you know it or not. But, there is another way. And that’s immutable infrastructure. And today we’re discussing exactly that, what immutable infrastructure is, the benefits and the tools you can use to implement it.

By the end of this article you’ll have a clear understanding of what immutable infrastructure is and why it’s important, the pro’s, con’s and trade offs.

3 Steps To Migrate Existing Infrastructure To Terraform

When everyone keeps talking about Infrastructure As Code you might feel stuck and frustrated because a lot of your cloud infrastructure was created manually. Infrastructure As Code feels like a million miles away for you…

Terraform logo

With Terraform it’s possible to bring existing infrastructure under code management in a safe, and incremental way. And today we’re going to go through the three steps you’ll need to take if you want to apply Terraform Infrastructure As Code to your existing infrastructure.

By the end of this article you’ll understand the 3 steps to get started with Terraform Infrastructure As Code on existing infrastructure. 

5 Important Reasons To Learn Terraform Before Cloud Computing.

Ever wanted to learn Kubernetes? Serverless? Write some Microservices in AWS or GCP? Awesome… But don’t. Or at least, not yet. Why? Because the first thing you should learn is Terraform. Don’t touch Serverless. Definitely don’t touch Kubernetes, and I’d probably not even bother creating an AWS S3 bucket.

Terraform

There are many reasons for you to be excited to learn Cloud Engineering as a whole. But no other decision impacted my ability to learn Cloud Engineering than: first learning Infrastructure As Code. In hindsight, I wish I did it sooner.

In todays article I’ll try (and hopefully successfully) to convince you why Infrastructure As Code is the most logical starting point for learning Cloud Engineering concepts and tools.

By the end of the article you’ll know what Infrastructure As Code (with Terraform) is and I’ll give you 5 reasons why Terraform should be your starting skill when learning Cloud Engineering. 

Terraform Modules: A Guide To Maintainable Infrastructure As Code

If you’re new to Terraform, you might have started experimenting creating resources. Before long it’s likely that all your Terraform files are inside one large file, or even many large files.

Planning a Terraform resource

After a certain amount of time this process will start to break down and become hard to maintain. And that’s where Terraform modules come in.

By the end of this article you’ll understand the basics of Terraform modules, and know how to break down large Terraform files into modules. 

Declarative vs. Imperative Infrastructure As Code

Not all infrastructure as code is born equal. Some styles of infrastructure as code give us great benefits — whereas other kinds can cause a lot of headache.

Writing good infrastructure as code doesn’t mean simply bundling code that creates infrastructure into a repository and walking away. Knowing the in declarative vs. imperative infrastructure as code can mean the difference between having an easy life or a total nightmare.

By the end of this article you’ll know what the difference is between declarative and imperative infrastructure as code, why it matters and when you should use each. 

Learn The 6 Fundamentals Of Terraform — In Less Than 20 Minutes

Terraform is a really useful tool when it comes to learning cloud engineering. In my opinion Terraform will become as ubiquitous for infrastructure provisioning as tools like git are for version control.

Terraform

Today we’re going to talk about the 6 key fundamentals topics you need to know in order to get working with Terraform quickly. We won’t be covering the concepts in great depth (a good thing!) but we’ll just enough so that you’re aware of what the concept is and how it works before you go diving deep.

By the end of this article you’ll be aware of the 6 key concepts of Terraform, everything from the language to how to structure your files.

3 Terraform Features to Help You Refactor Your Infrastructure Effortlessly

Ever created an app, like a website? You create the app and get everything working. But when you go to make a change the thought scares you to death.

Does this sound like you? I’ve been in that very same position, too. Writing code that’s flexible and malleable to change isn’t easy. When it comes to writing infrastructure that’s flexible that’s where a tool like Terraform can help us out.

Terraform

If you’re not already familiar with Terraform, don’t worry, you’re in safe hands! Terraform is an Infrastructure as Code  tool with some awesome features that allow us to write infrastructure code that’s flexible to change.

By the end of this article, you’ll understand what Terraform is, why it’s a great first infrastructure-as-code tool to learn and how the main features help you to write infrastructure that’s easy to refactor. 

Infrastructure As Code: A Quick And Simple Explanation.

One of the most essential topics when you’re a Cloud Native Software Engineer is a concept called Infrastructure as Code. Infrastructure As Code continues to be an essential topic for Cloud Native technology especially alongside concepts like Serverless.

Just like many concepts in technology, infrastructure as code sounds scary. But in reality it’s a simple concept that any software engineer (or would be software engineer) can easily understand. I promise. Once you get over the first few hurdles you’ll wonder why you didn’t explore it sooner.

By the end of this article you will understand what Infrastructure as Code is, why you need it and why you should ALWAYS create infrastructure in code and not manually.