Deploying a Jekyll website to AWS S3 with GitHub Actions and AWS CloudFormation

Introduction

Fatzombi
8 min readJan 1, 2023

In this tutorial, we will configure a static website using Jekyll, GitHub Actions, AWS S3, AWS Route 53, AWS Certificate Manager, AWS CloudFront, and AWS CloudFormation. And yes, that sounds like a mouthful, but trust me, it’s not as intimidating as it sounds.

To begin, we’ll highlight the main technologies being used and the role they play in our solution.

Next, I’ll dive into the roles of each AWS offering used in this architecture, including how CloudFormation is used to create and manage the infrastructure for our website, how Route 53 and Certificate Manager are used to manage our domain, DNS records, and TLS certificates, and how CloudFront will be used for content delivery and caching.

Lastly, I’ll discuss how GitHub Actions are used to trigger the workflows in AWS that deploy updates to our website.

Solution Overview

Setting up AWS CloudFormation

AWS CloudFormation is a powerful service that allows you to create and manage your infrastructure as code. Using CloudFormation, we can define our infrastructure using templates written in either JSON or YAML, then we can create and update those resources…

--

--

Fatzombi

Started with code, ended up breaking things, now into AppSec, safeguarding digital somethings.