Why I Migrated My Blog From Next.js to Astro (And Fixed CloudFront S3 403 Errors for Good)
How I replaced Next.js with Astro for my static blog, eliminated CloudFront 403 Access Denied errors on S3 with OAC, and codified the fix in Terraform.
How I replaced Next.js with Astro for my static blog, eliminated CloudFront 403 Access Denied errors on S3 with OAC, and codified the fix in Terraform.
Step-by-step tutorial to install Grafana on an AWS EC2 instance, connect CloudWatch as a data source, and build real-time monitoring dashboards.
Deploy to Amazon EKS using GitHub Actions with OIDC authentication. No static AWS credentials needed. Includes ECR, IAM, and Kubernetes setup.
Replace SSH keys and bastion hosts with AWS SSM Session Manager for secure, auditable EC2 access using IAM roles and CloudWatch logging.
Build an automated CI/CD pipeline to deploy to EC2 using AWS CodePipeline, CodeBuild, and CodeDeploy. Eliminate manual SSH with this step-by-step guide.
Build a GitHub Actions CI/CD pipeline to deploy Docker containers to EC2 and static files to S3 and CloudFront using OIDC and self-hosted runners.
Complete guide to deploying an Amazon EKS cluster in a private VPC using Terraform and AWS SSM. No bastion hosts or SSH keys required.
How to fix Next.js CloudFront 403 access denied errors caused by URL routing mismatches on S3 static exports using CloudFront Functions.
How to fix the AWS Lambda S3 trigger error 'Configuration is ambiguously defined' caused by overlapping suffixes in hidden event notification rules.
Automate static website deployment from GitHub to S3 using AWS CodePipeline. A step-by-step CI/CD tutorial with IAM and version control.
Step-by-step Terraform tutorial to create an AWS Auto Scaling Group with ALB, launch templates, and EC2 instances in private subnets. Includes fixing 502 errors.
Step-by-step guide to deploying a static website on AWS using Terraform with S3, CloudFront, IAM, and GitHub Actions CI/CD automation.