We build things and write about it
KKloud Tarus is a small team of engineers and creators who love turning ideas into real things. We share what we learn along the way.
Recent Writing

Migrating & Upgrading GitLab 15.6.1 to 19.2: New Box, Going Private, Cutover Behind Production
One long night migrating GitLab EE 15.6.1 to 19.2. Build a new box, restore, step-upgrade through a dozen required-stops, move GitLab from public (Cloudflare + ELB) to private (NLB + PrivateLink + Transit Gateway), then cut over with split-horizon DNS — all without touching the old box. With real upgrade bugs, speed-up tricks, and seven post-cutover issues and their fixes.

Deploying ReadEase on AWS with ECS Fargate and Terraform
Bringing ReadEase — a platform that helps children who struggle with reading — onto AWS with ECS Fargate, RDS PostgreSQL, S3 and Terraform, in a Single-AZ architecture tuned for a portfolio/demo.

From Messy Bank Statements to AI Insights in 48h: An AWS-Native AI Money Coach System Design
The real-world AWS architecture story behind BudgetBot, an AI Money Coach for Vietnamese users: upload a statement or payment screenshot and the AI auto-classifies transactions, computes budgets, and advises spending. Async pipeline, 4-level deduplication, ~$30/month cost optimization, and financial-data security.
Popular posts
Things GitHub Actions Tutorials Tend to Skip
After Part 1's first pipeline, this article covers 9 things basic CI/CD tutorials skip about GitHub Actions: concurrency control (with the github.ref gotcha), the branch rule for reading YAML on external events, the workflow_* family (dispatch, call, run — with the head_sha gotcha), cache dependencies, matrix strategy, Docker Hub instead of building on the server, GITHUB_TOKEN permissions, OIDC for AWS (no more long-lived SSH keys), and environment + required reviewers.
Infrastructure as Code, What Terraform Is, and Getting to Know the CLI
The series opener: why managing infrastructure by hand eventually breaks, what Infrastructure as Code solves, and where Terraform fits in that picture. We dissect the core and provider architecture, install Terraform 1.15, and tour the main CLI commands.
Docker Architecture: Client, Daemon, containerd and runc
A deep dive into Docker architecture: the client and daemon talk over a REST API, and beneath dockerd sit containerd and runc. Understand what really happens when you type docker run, with diagrams and commands you can verify yourself.
Series
CI/CD with GitHub Actions for Newbies
A two-part series for beginners: start with CI/CD fundamentals through a first-hand pipeline that deploys a React + Node.js web app to AWS EC2 with Docker, then dive into the things basic GitHub Actions tutorials tend to skip — concurrency, the branch rule for reading YAML, the workflow_* family, dependency caching, matrix, Docker Hub instead of building on the server, GITHUB_TOKEN permissions, OIDC to retire long-lived credentials, and environment + approval gates.
2 parts→
AWS Monthly: What's New + Hands-On
A recurring digest of what AWS just shipped: filtering for the most notable new features and services, explaining why they are worth watching, and actually trying out the ones that are testable. Every item is grounded in the official AWS documentation, with demos run for real on a real account and then torn down. Demo code at github.com/nghiadaulau/aws-whats-new-demos.
1 part→
Serverless in Practice on AWS: URL Shortener + Realtime Analytics
Build a complete serverless product on AWS from scratch: a URL shortening service with realtime analytics. The series does not teach each service in isolation; it builds one production-ready backend end to end — Lambda, API Gateway, DynamoDB single-table, Cognito, EventBridge, Step Functions, WebSocket API — then operates it for real: idempotency, DLQ, X-Ray tracing, cold start, IAM least-privilege, CI/CD canary, cost analysis and load testing. All infrastructure is built with AWS SAM, code in Node.js + TypeScript, every command run for real on AWS, code at github.com/nghiadaulau/serverless-url-shortener-aws. Grounded in the official AWS documentation.
21 parts→
The Team Behind KKloud Tarus
Engineers, creators, and problem solvers.