
Discover a course using AWS, Terraform, and GitHub Actions to build a website with infrastructure as code and ci cd pipelines, S3, IAM, CloudFront, Route 53, and AWS Certificate Manager.
Create a professional personal website using HTML and CSS, importing content from your GitHub page or a provided zip, with a live server preview and an S3 deployment plan.
Set up an S3 bucket, organize folders for images and styles, upload index.html, and enable static website hosting to publish a live site.
Identify automation gaps by moving from http to https, enabling CI/CD that builds, tests, creates resources, and deploys, and switching from public to private S3 buckets with a GitHub repository.
Create a GitHub repository from VSCode, perform initial commits, and set up a GitHub Actions workflow that runs on master pushes and workflow dispatch.
Create an AWS role for GitHub Actions via an OpenID Connect provider, link your GitHub org/repo, grant scoped permissions (not full access), and test by listing S3 buckets.
Configure a GitHub Actions workflow to assume an AWS role, use secrets for the role and region, and list S3 buckets with aws s3 ls.
Create a Terraform backend using an S3 bucket to store the state file and a DynamoDB table with a lock ID to prevent concurrent changes when using GitHub Actions.
Set up a Terraform project with main.tf, provider.tf, output.tf, and variables.tf, configure an AWS backend using an S3 bucket and DynamoDB table, and add GitHub Actions and Terraform extensions.
Create an AWS S3 bucket with Terraform by defining a resource in main.tf, using a variable for the bucket name, and passing it via GitHub secrets in a workflow.
Run terraform from a GitHub Actions workflow using checkout and terraform actions to init, plan, and apply in a working directory. Pass the bucket name via GitHub secrets and variables.
Create a repository secret named bucket name in GitHub Actions, then pass it to Terraform plan and apply using env variables and --var, and enable auto-approve to streamline deployment.
Troubleshoot and iterate a Terraform and GitHub Actions workflow to fix an S3 bucket typo, adjust DynamoDB permissions, and deploy the bucket contents to S3.
Upload index.html, images, and styles to the s3 bucket using aws s3 cp with recursive, bucket name from secrets, then commit and push via GitHub Actions.
Update Terraform to enable static website hosting on an S3 bucket by configuring a website block, bucket policy, and public access settings, then deploy via GitHub Actions.
Troubleshoot a permissions error by adjusting the Terraform apply order and using depends_on for the AWS S3 bucket public access, then commit, push, and verify the website via GitHub Actions.
Test the deployment pipeline by editing index.html in VSCode, committing and pushing changes, and verifying that GitHub Actions deploys to the bucket and updates the page.
Register a domain using Route 53 to manage DNS and create a hosted zone in AWS, following an end-to-end checkout and domain status workflow.
Learn how to verify your email to complete domain registration and prevent suspension by clicking the verification link.
Make the S3 bucket private, disable static website hosting, and block public access; then connect a CloudFront distribution via Route 53 to map your domain.
Create a CloudFront distribution for an S3 bucket, set origin access control and update its policy, issue a custom SSL certificate with ACM, enabling https via DNS validation.
Configure a custom domain in route 53 with alias records to a CloudFront distribution for root and www, enable https, verify the site, and plan Terraform and GitHub actions automation.
Perform a final cleanup by disabling and deleting CloudFront, emptying and removing S3 buckets, and deleting the certificate and Route 53 records, leaving the two Terraform buckets.
Demonstrate making an S3 bucket private with Terraform by removing public access and policies, committing changes, and applying updates via GitHub Actions, plan to add SSL, CloudFront, and Route53 records.
Create an AWS ACM certificate with Terraform in us-east-1 for CloudFront, configure DNS validation via Route 53, and use a create_before_destroy lifecycle while integrating with GitHub actions and IAM permissions.
Validate an SSL certificate with Terraform by provisioning AWS Route 53 records and AWS ACM certificate validations, using a loop to generate DNS records and fetch the hosted zone ID.
Learn to fetch AWS Route 53 zone IDs with a Terraform data block, fix typos, commit, push to GitHub, and troubleshoot permissions to validate certificates and prepare CloudFront distribution.
Create a CloudFront distribution with an S3 origin using Terraform, including an origin access control, an ACM certificate, a JSON bucket policy, and HTTPS redirection.
Fix a get typo, commit changes, and push to trigger GitHub Actions. Reconfigure IAM roles for CloudFront access, re-run the pipeline, and verify the new CloudFront distribution URL works.
Add DNS records using Terraform with Route 53, configure alias to CloudFront, copy zone IDs, and verify changes via GitHub Actions.
Destroy resources using terraform and GitHub Actions with a manual workflow. Empty the S3 bucket and run terraform destroy to clean up AWS resources.
Pay about half a euro per month for hosted zones, and keep an unused zone for future use instead of deleting it.
Discover how to improve this AWS, Terraform project by configuring the force destroy attribute to delete non-empty S3 buckets, and plan deployments across dev, test, and production environments.
Move an S3 bucket to eu-north-1 while keeping the us-east-1 ACM certificate by configuring Terraform multiple providers with aliases and a GitHub Actions deployment workflow.
Learn to build a Node.js RESTful API with a Postgres database, deploy to EC2 and Elastic Beanstalk, first manually then via Terraform and GitHub actions, and explore next project ideas.
Explore cloud computing's on-demand, pay-as-you-go model and wide service options, illustrated by launching an AWS EC2 instance, configuring Apache via user data, and serving a hello world page.
Cloud computing delivers on-demand resources over the internet with pay-as-you-go pricing, removing the need for physical data centers and enabling faster, cheaper, global deployment.
Explore AWS certificates across foundational, associate, professional, and specialty levels, and learn to view exam details, domain coverage, and the official study guide.
Explore cloud computing models—infrastructure as a service, platform as a service, and software as a service—and deployment types: public, private, and hybrid clouds.
Explore AWS infrastructure, including 34 regions, 108 availability zones, 600+ points of presence with regional edge caches and CloudFront, to enable low latency, fault tolerance, and data residency.
Understand the AWS acceptable use policy and that you’re responsible for misuse, potentially closing your account. Compare support plans, from trusted advisor to enterprise, with faster responses.
Create a brand new AWS account by verifying email and phone, adding a credit card, and selecting a personal plan. Then access the console to explore regions, EC2, and IAM.
Enable multi-factor authentication for the AWS root user and secure accounts by using a Google Authenticator app, scanning a QR code, and entering codes during sign-in.
Set up a budget alarm with CloudWatch billing alerts in the North Virginia region to trigger on total estimated charge and enable AWS free tier alerts via an SNS email.
Explore how the AWS console, CLI, SDK, and Terraform call the AWS API, and learn to install and verify the AWS CLI on Windows.
Explore identity and access management basics by creating a user and a developers group with administrator access. Manage sign-in, permissions, and S3 access for Alice.
Explore how IAM policies define what users can do, from administrator access to structured JSON rules, including statements, actions, resources, and optional conditions.
Configure the aws cli using access keys and IAM credentials, set a default region and output format, describe and manage EC2 instances through the cli.
Learn how iam roles enable Terraform workflows on GitHub Actions by attaching an ec2 role, avoiding hard credentials, and listing s3 buckets via the aws cli.
Review IAM password policies and custom settings, including expiration, minimum length, uppercase and special characters, and enable MFA while analyzing user activity with credential reports.
Learn how Amazon resource names (ARNs) uniquely identify AWS resources by specifying partition, service, region, account, and resource type or ID, with examples for IAM users and S3 buckets.
Master AWS, GitHub Actions, and Terraform
Ready to take your engineering skills to the next level? Then this course is for you!
This is an ongoing course, and I will continuously add new projects over time. In this course, you'll explore AWS services while leveraging Terraform and GitHub Actions for automation. You'll learn how to:
Explore and work with key AWS services to build and manage cloud infrastructure efficiently.
Automate deployments with GitHub Actions, creating an efficient CI/CD pipeline for faster updates and error-free deployments.
Use Terraform to define and provision your AWS infrastructure with Infrastructure as Code (IaC) principles, ensuring your setup is maintainable.
Project 1 : Deploy a Personal Website with Cloud Infrastructure
In this project, you'll learn how to deploy a personal website on AWS using industry-standard cloud technologies, including S3, CloudFront, IAM, Route 53, Certificate Manager, GitHub Actions, and Terraform. Whether you're a beginner or an experienced developer, this hands-on project will teach you a lot about these services and technologies.
What you'll learn in Project 1:
How to host a static website on AWS S3 and configure CloudFront for faster content delivery worldwide.
Connect your personal domain to your AWS website using Route 53, and set up SSL certificates for secure browsing.
How to create and manage AWS resources using Terraform for automated and consistent infrastructure deployment.
How to integrate GitHub Actions with AWS, allowing Terraform to run seamlessly within your CI/CD pipeline.
Why enroll?
Learn from real-world examples and gain practical experience with industry-leading tools used by professionals worldwide.
Master cloud technologies like AWS, Terraform, and GitHub Actions that are in high demand in today's tech market.
Ideal for developers, engineers, and tech enthusiasts who want to enhance their cloud skills
Enroll now and get started building your cloud-based website today!