Table of Contents
The $10 Confession: How I Hypnotized Myself into Google Cloud’s Bitter Billing Trap
Let’s cut the crap. I am an idiot. Or more accurately, I managed to play the part of a textbook idiot for exactly two months, and Google Cloud Platform (GCP) charged me 10,148 KRW (about $7.50) to officially certify it.
What makes this absolutely humiliating is that I wasn’t clueless. I knew the rules. I had literally written about the dangers of hoarding “Static External IPs” in Chapter 11 of my blogging journey. Yet, I blindfolded myself, walked straight into Google’s marketplace minefield, and let them silently siphon money from my wallet while I was busy celebrating my “free” website.
If you are a zero-budget beginner trying to deploy a “100% Free WordPress Blog” on GCP’s e2-micro tier, read this post very carefully. This isn’t a neat, sanitized tutorial. This is an autopsy of my own stupidity, designed to make sure you don’t pay the same architectural tuition fee to Google.
The Technical Blueprint of My Blind Spot
To understand how a human brain completely bypasses obvious red flags, we have to look at the architectural illusion Google sets up through its Click-to-Deploy marketplace tool. Here is the exact chain of events that led to my financial bleeding:
1. The Creation of the “Ghost Vessel” (Feb 9th)
On day one, I followed the standard manuals. I spun up a clean, blank VM instance matching the precise Always Free tier requirements: e2-micro, 30GB Standard Persistent Disk, located in a US region (us-central1). Google automatically assigned a static external IP to this server. Let’s call this Server A. It was a perfect, compliant, free entity.
2. The Marketplace Illusion
Next came the task of installing WordPress. I went to the GCP Marketplace and hit “Google Click-to-Deploy WordPress.” In my naive beginner mind, “installing software” meant adding packages inside the house I just built (Server A).
The Reality Check: Click-to-Deploy does not install software on your existing server. It provisions a completely separate, brand-new virtual machine from scratch (Server B) with WordPress pre-baked into it.
The moment Server B was born, Google automatically generated a second static external IP for it. Suddenly, my account was running two servers and hoarding two static IPs.
3. The Execution of “Tunnel Vision”
When routing my domain via Porkbun, my eyes literally looked at both IP addresses. My brain distinctively recognized that there were two numbers. But because I was drowning in a sea of Linux terminal commands, dealing with terrifying 500 internal server errors, and fighting for permission changes, my survival instinct kicked in: “The website is live. Don’t touch a single button, or the whole thing will blow up.”
I chose immediate peace over future audits. And Google’s automated billing meter started ticking immediately.
Decoding the Crime Scene: The Invoice Breakdown
For two months, I was trapped in an existential dread, avoiding my laptop, pretending everything was fine. When I finally gathered the courage to open the billing dashboard, the numbers spelled out my exact negligence:
| SKU Description | The Real Cost | Why Google Charged Me |
|---|---|---|
| Static IP Charge on Standard VM | ~7,000 KRW | Penalty fee for holding a static IP that is assigned to a non-preemptible VM but left idle (Server A was sitting empty). |
| Storage PD Snapshot / Balanced Disk | ~3,000 KRW | The deployment marketplace silently set up standard snapshots and sneaky storage tiers that slightly spilled over the strict 30GB free ceiling. |
Google’s Always Free tier allows exactly one instance and one IP. Because Server A was running empty while Server B was serving my blog, I was paying premium prices for a ghost server I never even logged into.
How to Slay the Ghost Server Instantly
If you suspect you’ve fallen into this exact same deployment trap, do not wait for the next billing cycle. Open your console right now and perform this surgical extraction:
- Exterminate the Duplicate VM: Go to
Compute Engine > VM Instances. Look for the original, blank server you made on day one (often namedinstance-1or containing your initial setup date). If your WordPress site is running on the marketplace VM, Delete the blank one permanently. - Release the Hostage IP: Deleting the server doesn’t delete the IP. Navigate to
VPC Network > IP Addresses. Find the External IP that says “In use by: None”. Select it and click Release Static Address. If you keep it, Google will charge you by the hour for hoarding it.
Conclusion: The Premium Price of Human Friction
I spent weeks telling myself I would fix it tomorrow. I knew the theory, but I feared the execution. That 10,148 KRW invoice wasn’t a charge for computing power; it was a tax on my psychological avoidance.
GCP is a magnificent tool, but it is engineered like a casino—the defaults are always set up to make the house win the moment you slip into a state of panic or fatigue. The ghost server has officially been destroyed, the unused IP has been dissolved, and my billing meter is back to a cold, hard zero. My pride took a hit, but the lesson is finally hardcoded into my system. Don’t let them tax your hesitation.
📌 Previous: Building a Free WordPress Server on GCP #1
👉 Next: The SSL Setup on GCP #3