Description
Book SynopsisIn the advanced section that follows, this simple EC2 server is expanded into an application that is deployed on an AWS EKS (Elastic Kubernetes Service) using AWS RDS (Relational Database Service) exposed through an AWS ALB (Application Load Balancer) protected using AWS ACM (AWS Certificate Manager), and accessible by setting the AWS Route53.
Table of ContentsPart I - Setting up GitOpsChapter 1: What is GitOps?
1. The Era of DevOps
2. Infrastructure as Code
3. What is GitOps?
Chapter 2: Introduction to AWS
1. Introduction to AWS
2. Creating an EC2 machine from AWS Console
3. Creating an EC2 machine using aws-cli
Chapter 3: Introduction to Terraform
1. Introduction to Terraform
2. Basic Syntaxes
3. Creating an EC2 machine using Terraform
Chapter 4: Introduction to Terraform Cloud and Workspaces
1. Preparing for Multi-environment
2. Introduction to Terraform Workspaces
3. Introduction to Terraform Cloud
4. Attaching Github Repo to Terraform Cloud
Chapter 5: Introduction to Github Actions
1. Drawbacks of connecting to Github Repository
2. Introducing Github Actions
3. Deploying EC2 terraform code using Github Actions
4. Multi-environment strategy
Chapter 6: WordPress on AWS EKS
1. AWS EKS,EFS,RDS Architecture
2. Walkthrough of Terraform Code
3. Walkthrough of Kubernetes Manifest Files
4. Deploying Wordpress in Dev and Prod.
Part II - Operating with GitOps
Chapter 7: Authentication and Authorization
1. Kubernetes Provider Authentication in Terraform
2. Exploring the aws-auth ConfigMap
3. Understanding IRSA(IAM Roles and Service Accounts)
4. Connect AWS IAM Role with Kubernetes Service Account
5. AWS User access in Kubernetes
Chapter 8: Security and Secret Management
1. Implementing HTTPS using AWS ACM
2. Storing Database Password in AWS Secrets Manager
3. Integrating Security tools in GitOps pipeline
Chapter 9: Backup and Disaster Recovery
1. Database Snapshot in AWS SSM Parameter Store
2. Deploying in Another AWS Region
Chapter 10: Observability
1. Collecting Metrics and Logs
2. Performance Monitoring using Graphana/Prometheus
3. Log Collection using EFK (Elastic Filebeat and Kibana)