The Complete DevOps & Cloud Engineering Handbook
date
Nov 17, 2025
slug
devops-cloud-engineering-roadmap-and-handbook
status
Published
tags
Docker
Python
Go
Server Administration
server
Server Setup
DevOps
DevSecOps
Nginx
Kuber
Ubuntu
Cloudflare
summary
Your complete DevOps & Cloud Engineering handbook. Master Linux, AWS, Docker, Kubernetes, CI/CD, Terraform, and security with this step-by-step roadmap. Features hands-on guides and tutorials for all skill levels, providing a clear path to becoming a cloud professional.
type
Post
The Complete DevOps & Cloud Engineering Handbook
Introduction
Welcome to the comprehensive guide to mastering DevOps and Cloud Engineering. This book is designed to take you on a structured journey from the absolute fundamentals of the Linux command line to the complex, automated world of cloud-native orchestration. DevOps is not just a set of tools; it's a cultural philosophy that integrates software development (Dev) and IT operations (Ops) to shorten the development lifecycle and provide continuous delivery with high software quality.
This guide is built on a progressive framework. Each chapter builds upon the skills learned in the previous one. You will start by mastering a single machine, then learn how to connect it to the world, secure it, and serve content from it. From there, the focus shifts to automation, scalability, and resilience, leveraging version control, Infrastructure as Code (IaC), cloud platforms, and containerization. Finally, you will learn to observe and maintain these complex systems, completing the full lifecycle.
This is a hands-on guide. The goal is not just to understand the concepts but to apply them. Let's begin.
Part 1: The Foundation - Core System Skills
Chapter 1: Linux & Command Line Mastery (Ubuntu Focus)
Proficiency in Linux is the non-negotiable foundation for every DevOps engineer. The command line is the universal API for managing servers, automating tasks, and troubleshooting systems. We will focus on Ubuntu, a popular and beginner-friendly distribution, but the core skills are transferable across most Linux systems.
Core Command Line Skills
Begin by mastering the "verbs" of system interaction. These commands are your primary tools for navigating and manipulating the system.
- Navigation & File Inspection:
cd: Change directory.ls: List directory contents.pwd: Print the current working directory.cat,head,tail,less: View file contents.tail -f <file>is essential for watching log files in real-time.
- File & Directory Manipulation:
mkdir: Make a new directory.cp: Copy files or directories.mv: Move or rename files or directories.rm: Remove files or directories. Use with caution.touch: Create an empty file or update its timestamp.
- Text Processing:
grep: Search for patterns within text. Invaluable for filtering logs.awk: A powerful tool for processing columnar text data.sed: A "stream editor" for performing text transformations on an input stream.
- Networking Utilities:
curl&wget: Transfer data from or to a server. Used for testing API endpoints or downloading files.ssh: Securely connect to remote servers.ping,netstat,ip: Essential tools for network diagnostics.
Learning Resources:
- Video Course: Linux Command Line for Beginners (A comprehensive tutorial covering all basics).
- Tutorial: The Linux command line for beginners (Official Ubuntu guide).
- Article: Linux Command Line Tutorial – How to Use Common Terminal Commands (freeCodeCamp).
File Systems & Permissions
Linux security starts at the filesystem. Understanding the file hierarchy and how permissions work is critical for system administration.
- File Hierarchy: Familiarize yourself with the Filesystem Hierarchy Standard (FHS). Key directories include:
/etc: System-wide configuration files./var: Variable data, such as logs (/var/log)./home: User home directories./usr: User programs and data./opt: Optional add-on software.
- Permissions (
chmod): Controls what can be done with a file or directory. There are three permissions (read, write, execute) for three types of users (owner, group, others). - Symbolic Notation:
chmod u+x script.sh(adds execute permission for the user/owner). - Octal Notation:
chmod 755 script.sh. This is the most common method. The numbers represent permissions:4(read),2(write),1(execute). 7(4+2+1) =rwx(Full permissions)5(4+0+1) =r-x(Read and execute)
- Ownership (
chown): Controls who owns the file. Every file has a user owner and a group owner.sudo chown user:group filenamechanges both.
Learning Resources:
- Article: Linux chmod & chown Explained – How to Change File Permissions and Ownership (freeCodeCamp).
- Guide: An Introduction to Linux Permissions (DigitalOcean).
Shell Scripting for Automation (Bash)
Bash scripting is the art of automating repetitive tasks by combining shell commands into a single, executable file. This is the "glue" of DevOps.
- Scripting Fundamentals:
- Shebang: Start every script with
#!/bin/bashto specify the interpreter. - Variables: Store and reuse data (e.g.,
BACKUP_DIR="/backups"). - Control Structures: Use
if-elseconditionals,forloops, andwhileloops to add logic. - Error Handling: Use
set -euo pipefailat the top of your scripts. This makes them safer by ensuring they exit immediately on any error.
Example Automation Script (Simple Backup):
Learning Resources:
- Guide: Automating Tasks With Bash Scripts \[Practical Examples\] (Linux Handbook).
- Blog: Bash Scripting for Server Automation (Hostmycode).
- Tutorial: Bash Scripting Tutorial for Beginners (freeCodeCamp).
Essential Text Editors
Much of your time will be spent editing configuration files in the terminal.
- Vim: A powerful, modal editor with a steep learning curve but unmatched efficiency once mastered. Learn its modes (Normal, Insert, Visual) and essential commands (
:wto save,:qto quit). To start, simply typevimtutorin your terminal for an interactive tutorial.
- Nano: A simple, modeless editor perfect for beginners and quick edits. It displays helpful command shortcuts at the bottom of the screen.
Learning Resources:
- Video: Using Vim on Linux / Mac / Unix (Beginners Guide) (SavvyNik).
- Guide: A Beginner's Guide to Vim (freeCodeCamp).
Part 2: Networking & Web Infrastructure
Understanding how data travels across the internet is fundamental to deploying and maintaining any web application.
Chapter 2: Networking Fundamentals
Core Protocols
All web communication is built on a stack of protocols.
- TCP/IP (Transmission Control Protocol/Internet Protocol): The foundational suite of the internet. IP handles addressing and routing packets, while TCP ensures reliable, ordered, and error-checked delivery of data.
- DNS (Domain Name System): The "phonebook of the internet." It translates human-readable domain names (e.g.,
google.com) into machine-readable IP addresses (e.g.,142.250.184.174). Understanding this process is crucial, as misconfigurations are a common source of outages ("It's always DNS").
- HTTP/HTTPS (HyperText Transfer Protocol/Secure): The protocol for web communication. HTTP sends data in plain text, while HTTPS encrypts it using SSL/TLS, which is essential for security.
- SSH (Secure Shell): The protocol for secure remote command-line access and administration.
Learning Resources:
- Video: Network Protocols - ARP, FTP, SMTP, HTTP, SSL, TLS, HTTPS, DNS, DHCP (Practical Networking).
- Article: Understanding Networking: TCP/IP, DNS, HTTP/S, VPN, Load Balancers, Firewalls (LinkedIn).
Chapter 3: Web Servers & Proxies (Nginx)
Nginx is a high-performance web server, reverse proxy, and load balancer that powers a vast portion of the modern web.
Nginx Installation & Configuration
Nginx is installed via your distribution's package manager. Its configuration layout, however, differs between major Linux families.
- Debian/Ubuntu (apt-based):
- Installation:
sudo apt install nginx - Configuration: The main config is
/etc/nginx/nginx.conf. Individual site configurations (called "server blocks") are placed in/etc/nginx/sites-available/. To activate a site, you create a symbolic link from its config file to/etc/nginx/sites-enabled/. - Default Root:
/var/www/html/
- RHEL/CentOS/Rocky (dnf/yum-based):
- Installation:
sudo dnf install nginx(may require enabling the EPEL repository first). - Configuration: The main config is
/etc/nginx/nginx.conf. Additional site configurations are typically placed directly in/etc/nginx/conf.d/as.conffiles. There is nosites-available/sites-enabledstructure by default. - Default Root:
/usr/share/nginx/html/
Reverse Proxy Setup
A primary use case for Nginx is as a reverse proxy. It sits in front of your application server (e.g., a Node.js or Python app running on
localhost:8080) and forwards client requests to it. This provides SSL termination, load balancing, and a layer of security.Example Nginx Reverse Proxy Block:
Learning Resources:
- Tutorial: How to setup an Nginx reverse proxy server example (TheServerSide).
- Guide (Ubuntu): How To Configure Nginx as a Reverse Proxy on Ubuntu (DigitalOcean).
- Guide (RHEL): How to Install and Configure Nginx on CentOS and Rocky Linux (phoenixNAP).
Chapter 4: Securing the Perimeter
Firewalls (UFW for Ubuntu)
A firewall is your first line of defense, controlling network traffic. For Ubuntu, UFW (Uncomplicated Firewall) is a user-friendly frontend for the powerful
iptables system.- Enable:
sudo ufw enable
- Allow Services:
sudo ufw allow ssh,sudo ufw allow 'Nginx Full'(opens ports 80 and 443).
- Allow Specific Port:
sudo ufw allow 8080/tcp
- Check Status:
sudo ufw status numbered
Learning Resources:
- Tutorial: How to Set Up a Firewall with UFW on Ubuntu (DigitalOcean).
SSL/TLS Certificates with Let's Encrypt & Certbot
HTTPS is mandatory for all modern websites. Let's Encrypt is a free, automated Certificate Authority (CA) that provides SSL/TLS certificates. Certbot is the client software that automates the entire process of obtaining, installing, and renewing these certificates.
- How it Works: Certbot communicates with Let's Encrypt to prove you control the domain (usually via an HTTP-01 challenge, where it places a temporary file on your server). Once verified, it downloads the certificate and can automatically configure Nginx for you.
- Installation:
sudo apt install certbot python3-certbot-nginx
- Usage:
sudo certbot --nginx(This command will interactively guide you through selecting domains and will modify your Nginx config automatically).
- Renewal: Certificate renewal is handled automatically by a systemd timer or cron job installed by Certbot.
Learning Resources:
- Documentation: Let's Encrypt - How It Works
- Guide: Complete Tutorial on SSL Certificates and FREE Let's Encrypt (DevOpsSchool).
Chapter 5: Cloudflare for DNS & Security
Cloudflare provides a suite of services including DNS management, a Content Delivery Network (CDN), and DDoS protection.
DNS Management
To use Cloudflare, you update your domain's nameservers at your registrar to point to Cloudflare's nameservers. You then manage all your DNS records in the Cloudflare dashboard.
- A Record: Points a domain directly to an IPv4 address (e.g.,
example.com → 192.0.2.1).
- CNAME Record: Points a domain to another domain name (an alias). E.g.,
www.example.com → example.com. You cannot place a CNAME at the root/apex domain.
- Wildcard Record (): A catch-all record that matches any subdomain not explicitly defined. For example, a
.example.comA record will routefoo.example.com,bar.example.com, etc., to the same IP address.
The Cloudflare Proxy (Proxied vs. DNS-Only)
For each A, AAAA, or CNAME record, Cloudflare has a proxy status toggle:
- DNS Only (Gray Cloud): Cloudflare acts as a standard DNS provider. It resolves your domain to your origin server's real IP address, and traffic flows directly to your server.
- Proxied (Orange Cloud): This is Cloudflare's "magic." When proxied, Cloudflare resolves your domain to a Cloudflare IP address. All traffic is routed through Cloudflare's global network first. This hides your server's real IP and enables Cloudflare's CDN, DDoS protection, and Web Application Firewall (WAF).
Learning Resources:
- Guide: Configuring Cloudflare DNS (Render).
- Documentation: Proxy status · Cloudflare DNS docs.
- Documentation: Wildcard DNS records · Cloudflare DNS docs.
Part 3: Code, Containers, and Automation
With a solid understanding of individual servers, we now move to managing infrastructure and applications as code.
Chapter 6: Programming for DevOps
Git for Version Control
Version control is mandatory for both application code and infrastructure code. Git is the industry standard.
- Repository Management:
git init,git clone,git remote.
- Core Workflow:
git add(stage changes),git commit(save changes to local history),git push(send changes to a remote repository).
- Branching & Merging:
git branch,git checkout(orgit switch). Use branches to isolate work. Merge changes back into the main branch, often via a Pull Request on platforms like GitHub for code review.
- Best Practices: Write clear, atomic commit messages. Use feature branches for all new work.
Python for Automation (with Boto3 for AWS)
Python's simple syntax and powerful libraries make it the ideal language for DevOps automation. Boto3 is the official AWS SDK (Software Development Kit) for Python, allowing you to programmatically control every aspect of your AWS infrastructure.
- Core Boto3 Concepts:
- Authentication: Boto3 automatically finds credentials from environment variables, the AWS CLI config, or IAM roles.
- Clients vs. Resources: Use low-level clients for direct API access or high-level resources for an object-oriented interface.
- Common Use Cases:
- Automating EC2 instance creation and termination.
- Scripting S3 bucket operations (uploads, downloads, policy setting).
- Creating automated backup scripts for snapshots and data.
Example Boto3 Script (List S3 Buckets):
Learning Resources:
- Documentation: AWS SDK for Python (Boto3).
- GitHub Repo: python-scripts-for-aws: Automating AWS Tasks.
- Tutorial: Build Your Own AWS DevOps CLI with Python & Boto3 (DEV Community).
Go (Golang) for Cloud-Native Tools
Go's performance, simplicity, and powerful concurrency features have made it the language of the cloud-native ecosystem. Docker, Kubernetes, and Terraform are all written in Go.
- Why Go for DevOps?:
- Single Static Binary: Go compiles your application and all its dependencies into a single executable file with no external runtime required. This makes deployment incredibly simple.
- Performance: It's fast, compiled, and memory-safe.
- Concurrency: Built-in goroutines and channels make it easy to write highly concurrent network services.
Learning Resources:
- Article: Golang For DevOps: A Complete Guide (DevOpsCube).
- Video: Introduction to Go (Golang) - Lesson 01 (YouTube).
Chapter 7: Containerization with Docker
Containerization solves the "it works on my machine" problem by packaging an application and its dependencies into a portable, consistent runtime environment.
Core Concepts
- Image: A read-only, immutable template containing the application code, a runtime, libraries, and system tools.
- Container: A runnable instance of an image. It's a lightweight, isolated process running on the host's kernel.
- Dockerfile: A text file with instructions for building a custom Docker image.
- Container Registry: A repository for storing and distributing images (e.g., Docker Hub, AWS ECR).
Essential Docker Commands
Dockerfile Best Practices & Multi-Stage Builds
- Use official, minimal base images (e.g.,
python:3.9-slim).
- Leverage layer caching by ordering instructions from least to most frequently changing.
- Use multi-stage builds to create small, secure production images by separating the build environment from the final runtime environment.
- Run containers as a non-root user.
- Use a
.dockerignorefile to exclude unnecessary files from the build context.
Example Multi-Stage Dockerfile:
Docker Compose for Multi-Container Apps
Docker Compose is a tool for defining and running multi-container applications using a single YAML file. It's perfect for local development and simple deployments.
Learning Resources:
- Video: Docker Tutorial for Beginners (YouTube).
- Tutorial: A Docker Tutorial for Beginners (Docker Curriculum).
- Guide: Docker for Beginners: A Practical Guide to Containers (DataCamp).
Part 4: Cloud & Orchestration at Scale
With applications containerized, the next step is to deploy, manage, and scale them effectively in the cloud.
Chapter 8: Cloud Computing with AWS
AWS is the dominant public cloud provider, offering a vast array of services. We will focus on the core components.
Core Services
- EC2 (Elastic Compute Cloud): Provides scalable virtual servers ("instances"). You choose an instance type (CPU/memory), an Amazon Machine Image (AMI) (OS template), and configure networking.
- S3 (Simple Storage Service): A highly durable and scalable object storage service. Data is stored in "buckets" and is perfect for static assets, backups, and data lakes.
- VPC (Virtual Private Cloud): Your own isolated virtual network within AWS. You define your IP address range, create subnets, configure route tables, and set up gateways to control traffic flow.
- IAM (Identity and Access Management): The security backbone of AWS. It controls who (users, groups, roles) can do what (policies) with which resources. The Principle of Least Privilege is the golden rule: grant only the minimum permissions necessary.
Practical Example: Secure EC2 with IAM Role for S3 Access
A common and secure pattern is to grant an EC2 instance permissions to access other AWS services without hardcoding credentials.
- Create an IAM Role: In the IAM console, create a role for the EC2 service.
- Attach a Policy: Attach a policy to the role that grants the desired permissions (e.g.,
AmazonS3ReadOnlyAccess).
- Launch EC2 with Role: When launching an EC2 instance, attach the newly created IAM role to it.
- Access S3: Now, from the EC2 instance, you can use the AWS CLI (e.g.,
aws s3 ls) to access S3. The instance automatically receives temporary, rotated credentials from the role, which is far more secure than storing long-term access keys.
Learning Resources:
- Video: AWS Tutorial Course for Beginners | EC2, S3, RDS, VPC (YouTube).
- Video: AWS Accessing S3 using ec2 and IAM role (YouTube).
- Documentation: IAM tutorials (AWS).
Chapter 9: Infrastructure as Code (IaC)
IaC is the practice of managing infrastructure through code and automation, bringing version control, testing, and repeatability to your environments.
Terraform for Provisioning
Terraform is the industry-standard declarative IaC tool. You define the desired state of your infrastructure in configuration files, and Terraform figures out how to achieve that state.
- Providers: Plugins that interact with cloud APIs (AWS, Azure, Cloudflare, etc.).
- Resources: The infrastructure components you want to create (e.g.,
aws_instance,aws_s3_bucket).
- State: A
terraform.tfstatefile that maps your configuration to real-world resources. Best Practice: Store state remotely (e.g., in an S3 bucket with DynamoDB for locking) for team collaboration.
- Modules: Reusable packages of Terraform configurations to avoid repeating code.
- Workflow:
- Write: Define infrastructure in
.tffiles using HCL. - Init:
terraform initto download providers. - Plan:
terraform planto see a preview of changes. - Apply:
terraform applyto create or update infrastructure.
Learning Resources:
- Tutorial: What is Infrastructure as Code with Terraform? (HashiCorp).
- Guide: Terraform Infrastructure as Code (IaC) Guide With Examples (Spacelift).
Ansible for Configuration Management
While Terraform is excellent for provisioning infrastructure (creating the servers), Ansible is excellent for configuring it (installing software, managing files, and setting state on the servers after they exist).
- Agentless: Manages servers over standard SSH.
- Playbooks: YAML files that define a series of tasks to be executed.
- Idempotency: Running a playbook multiple times produces the same result. It only makes changes if the system is not already in the desired state.
- Terraform + Ansible: The "Better Together" Strategy: A common pattern is to use Terraform to provision the infrastructure (e.g., create an EC2 instance) and then use Ansible to configure the software on that instance (e.g., install Nginx, deploy application code).
Learning Resources:
- Video: Configuration Management With Ansible: A Whirlwind Tour (YouTube).
- Tutorial: An Introduction to Configuration Management with Ansible (DigitalOcean).
Chapter 10: Container Orchestration with Kubernetes (K8s)
⚠️ Important: Do not attempt Kubernetes until you have mastered Docker. K8s is a powerful but complex system that assumes a solid understanding of container fundamentals.
Kubernetes is the industry-standard platform for automating the deployment, scaling, and management of containerized applications.
Core Concepts
- Pod: The smallest deployable unit, containing one or more containers that share networking and storage.
- Deployment: A declarative way to manage a set of identical Pods. It ensures a specified number of replicas are running and handles rolling updates and self-healing.
- Service: Provides a stable network endpoint (a single IP address and DNS name) to access a group of Pods. This solves the problem of ephemeral Pod IPs.
- Ingress: Manages external HTTP/HTTPS access to services within the cluster, typically handling routing based on hostnames or paths.
- ConfigMaps & Secrets: Decouple configuration and sensitive data from your application containers.
Example Deployment YAML:
Learning Resources:
- Documentation: Deployments (Kubernetes.io).
- Documentation: Service (Kubernetes.io).
- Article: Kubernetes Service Vs Deployment: Complete Guide (Zeet).
Part 5: The DevOps Lifecycle - CI/CD, Security, and Observability
This final part brings everything together, focusing on the automated processes that define modern software delivery.
Chapter 11: CI/CD Pipelines with GitHub Actions
CI/CD (Continuous Integration/Continuous Deployment) is a practice that automates the build, test, and deployment pipeline, enabling rapid and reliable software releases.
- Continuous Integration (CI): Automatically building and testing code every time a change is pushed to version control.
- Continuous Deployment (CD): Automatically deploying every change that passes the CI stage to a production environment.
GitHub Actions Concepts
GitHub Actions allows you to build CI/CD pipelines directly within your GitHub repository using YAML workflow files.
- Workflows: Automated processes defined in
.github/workflows/.
- Events: Triggers that start a workflow (e.g.,
push,pull_request).
- Jobs: A set of steps that execute on a runner.
- Steps: Individual tasks that run commands or use pre-built Actions.
- Runners: Servers that execute your workflows (either GitHub-hosted or self-hosted).
Example CI/CD Workflow (Build & Test):
Learning Resources:
- Video: Complete Github Actions Tutorial | GitHub Actions CI/CD (TechWorld with Nana).
- Guide: How to build a CI/CD pipeline with GitHub Actions in four simple steps (GitHub Blog).
- Tutorial: GitHub Actions Tutorial – Getting Started & Examples (Spacelift).
Chapter 12: DevSecOps - Integrating Security
DevSecOps embeds security practices into every phase of the DevOps lifecycle. Security is not an afterthought; it's everyone's responsibility.
- Shift-Left Security: Integrate security testing early in the development process, not at the end.
- Least Privilege Access: Grant only the minimum permissions necessary for any user, service, or system.
- Defense in Depth: Implement multiple layers of security controls.
- Secrets Management: Never hardcode credentials in code or configuration files. Use a dedicated secrets manager like HashiCorp Vault or AWS Secrets Manager.
- Automated Scanning:
- SAST (Static Application Security Testing): Scans source code for vulnerabilities.
- SCA (Software Composition Analysis): Scans third-party dependencies for known vulnerabilities.
- Container Scanning: Scans container images for vulnerabilities before they are pushed to a registry.
Learning Resources:
- Article: Putting DevOps Security Into Practice: 10 DevSecOps Best Practices (Aqua Security).
- Guide: Top DevOps Security Best Practices for Secure Deployments (Checkmarx).
Chapter 13: Monitoring & Logging (Observability)
Observability provides visibility into your system's health, performance, and behavior, allowing for proactive issue detection and rapid troubleshooting.
Prometheus for Metrics
Prometheus is the industry-standard, open-source monitoring system for collecting time-series metrics. It operates on a "pull" model, scraping metrics from HTTP endpoints exposed by your applications or by exporters (like the
node_exporter for system metrics).Grafana for Visualization
Grafana is a powerful visualization tool that connects to data sources like Prometheus to create rich, interactive dashboards. You can build graphs, gauges, and tables using PromQL (Prometheus Query Language) and set up alerting rules to be notified of issues.
Docker Compose Example (Prometheus + Grafana + Node Exporter):
The ELK Stack for Logging
For centralized logging, the ELK Stack (Elasticsearch, Logstash, Kibana) is a popular solution for collecting, processing, storing, and visualizing log data from all your services.
Learning Resources:
- Video: Monitoring Made EASY with Grafana and Prometheus! (YouTube).
Conclusion & Next Steps
This handbook has provided a structured path from Linux fundamentals to advanced DevOps practices. The key to mastery is consistent, hands-on practice.
Summary Checklist
Topic | Essential Skill |
OS | Linux (Ubuntu) - CLI Mastery, Shell Scripting |
Networking | TCP/IP, DNS, HTTP/HTTPS, Firewalls (UFW) |
Web Server | Nginx (Reverse Proxy, SSL/TLS with Let's Encrypt) |
DNS/Proxy | Cloudflare (A/CNAME/Wildcard Records, Proxying) |
Code | Git, Python + Boto3, Go (Basics) |
Containers | Docker, Dockerfile Best Practices, Docker Compose |
Cloud | AWS (EC2, S3, VPC, IAM) |
IaC | Terraform (Provisioning), Ansible (Configuration) |
Orchestration | Kubernetes (Pods, Deployments, Services) |
CI/CD | GitHub Actions |
Security | DevSecOps Principles, Secrets Management, Scanning |
Monitoring | Prometheus + Grafana |
Hands-On Project Ideas
- Automated Web Server Deployment: Use Terraform to provision an EC2 instance, Ansible to configure Nginx, and GitHub Actions to deploy a static website to it.
- Multi-Container Application: Dockerize a full-stack application (e.g., React frontend, Node.js backend, PostgreSQL database) with Docker Compose.
- Complete CI/CD Pipeline: Build a GitHub Actions workflow that tests your application, builds a Docker image, pushes it to AWS ECR, and deploys it to an EC2 instance or ECS cluster.
- Infrastructure Monitoring Stack: Set up Prometheus and Grafana to monitor your EC2 instances using the Node Exporter and create a custom dashboard.
The world of DevOps and cloud engineering is constantly evolving. Embrace a mindset of continuous learning, stay curious, and build things. Good luck