Vibe Coding & Bài Học 1.6 Triệu: Khi AI Tự Động Deploy Cloud Run

@Nguyễn Ngô Thượng//~6 phút đọc0
Chia sẻ:
Vibe Coding & Bài Học 1.6 Triệu: Khi AI Tự Động Deploy Cloud Run

TL;DR:

  • "Vibe coding" giúp deploy nhanh nhưng AI thường ưu tiên hiệu năng (performance) hơn là tối ưu chi phí cho ví tiền của bạn.
  • Case study thực tế: Một tool PDF nhỏ bị AI cấu hình min-instances: 2 (chạy 24/7) dẫn đến chi phí dự kiến 1.6 triệu/tháng.
  • Bài học: Luôn review kỹ file config (app.yaml, deploy.sh), thiết lập Budget Alert nhiều tầng và chấp nhận đánh đổi Cold Start để tiết kiệm 95% chi phí.

Mở bài: Khi "Vibe" Gặp Thực Tế Phũ Phàng

Chúng ta đang sống trong kỷ nguyên vàng của Vibe Coding. Chỉ cần mở Cursor hay Claude Code, gõ vài dòng prompt kiểu "Viết cho tôi cái app convert HTML sang PDF, deploy lên Google Cloud Run luôn nhé", và... BÙM! Mọi thứ xong xuôi. Code được viết, Dockerfile được tạo, và ứng dụng đã chạy online. Cảm giác quyền lực đó thực sự gây nghiện.

Nhưng cảm giác "phê" đó có thể vụt tắt nhanh chóng khi bạn nhận được email thông báo từ Google Cloud Platform (GCP). Đó chính xác là những gì đã xảy ra với tôi. Một công cụ nội bộ nhỏ xíu, chỉ dùng để test convert file, lại "được" AI hào phóng cấu hình để tiêu tốn 1.650.000 VNĐ/tháng.

Bài viết này không phải để chê trách AI, mà là một lời cảnh báo (và hướng dẫn) để bạn vẫn có thể tận hưởng vibe coding mà không bị "cháy túi".

AI "Hào Phóng" Quá Mức Cần Thiết

Mọi chuyện bắt đầu khi tôi nhờ AI (cụ thể là Claude Code) deploy dự án pdf-tool lên Cloud Run. Tôi chỉ bảo "deploy giúp tôi", và AI đã làm rất tốt nhiệm vụ đó: App chạy mượt, phản hồi nhanh tức thì.

Tuy nhiên, khi kiểm tra lại cấu hình và log commit (commit 1459a42), tôi mới tá hỏa nhận ra sự thật đằng sau sự mượt mà đó.

Những con số biết nói

AI đã tự động thêm các tham số sau vào lệnh deploy:

  1. --min-instances 2: Đây là thủ phạm chính. Tham số này yêu cầu Google Cloud LUÔN LUÔN giữ ít nhất 2 server chạy 24/7, bất kể có ai dùng hay không. Mục đích là để khi có user truy cập, họ không phải chờ server khởi động.
  2. --cpu-boost: Một tính năng giúp khởi động CPU nhanh hơn, nhưng tất nhiên, giá cũng cao hơn.

Hậu quả là:

  • Trước khi tối ưu: 2 instances chạy liên tục + CPU boost = ~1.650.000 VNĐ/tháng.
  • Mục đích sử dụng: Tool demo, thỉnh thoảng mới có người vào test.
  • Sự lãng phí: 99% thời gian server chạy không tải (idle) nhưng vẫn bị tính tiền.
Chi phí GCP tăng vọt vì AI cấu hình min-instances: 2
!

Lưu ý quan trọng: AI được huấn luyện để đưa ra giải pháp "tốt nhất" về mặt kỹ thuật (best practice cho production). Với production, việc giữ min-instances để giảm độ trễ (latency) là đúng. Nhưng với dự án cá nhân hay môi trường dev/test, đây là một "cái bẫy" chi phí khổng lồ.

Câu Chuyện Về Chiếc Budget Alert "Vô Dụng"

Nhiều bạn sẽ hỏi: "Sao không set Budget Alert (Cảnh báo ngân sách)?"

Thực tế là tôi ĐÃ set alert ở mức 100k - 200k VNĐ. Nhưng tại sao tôi vẫn xém chút nữa mất tiền triệu?

  1. Ngưỡng quá thấp và độ trễ: Với tốc độ đốt tiền của 2 instances chạy 24/7, ngưỡng 100k có thể bị vượt qua chỉ trong vòng 1-2 ngày.
  2. Độ trễ của Report: Hệ thống Billing của Cloud không phải realtime 100%. Thường có độ trễ từ vài tiếng đến 1 ngày để con số cập nhật lên dashboard. Khi bạn nhận được email cảnh báo "Vượt quá 100k", thực tế con số có thể đã là 150k hoặc hơn.
  3. Alert không tự chặn: Budget Alert chỉ gửi email thông báo, nó KHÔNG tự động tắt server của bạn. Nếu email rơi vào mục Spam hoặc bạn không check mail cuối tuần, tiền vẫn tiếp tục bị trừ.

Bài học: Đừng chỉ tin vào Alert. Hãy tin vào cấu hình.

Thiết lập nhiều mức Budget Alert (100k, 200k, 500k, 1tr) trong GCP Console

Tối Ưu Chi Phí - Chấp Nhận Đánh Đổi (Trade-off)

Ngay khi phát hiện, tôi đã thực hiện một cú "refactor" hạ tầng (bạn có thể xem chi tiết trong commit 1459a42eccbf81a43abdf44ccaf3046dc83659b6 của repo).

# Minh họa thay đổi cấu hình deploy
  gcloud run deploy pdf-tool \
    --source . \
    --region asia-southeast1 \
-   --min-instances 2 \
-   --cpu-boost \
-   --max-instances 5
+   --min-instances 0 \
+   --no-cpu-boost \
+   --max-instances 3

Các thay đổi chính:

  1. min-instances về 0:

    • Đây là chìa khóa của Cloud Run (Serverless). Khi không có request, số lượng server là 0. Bạn không tốn một xu nào cả.
    • Cloud Run chỉ tính tiền khi CPU xử lý request (trong vòng vài trăm mili-giây).
  2. Tắt cpu-boost:

    • Với tool nội bộ, chúng ta không cần tốc độ khởi động thần thánh.
  3. Giảm max-instances:

    • Giảm từ 5 xuống 3 để tránh trường hợp bị tấn công DDoS hoặc lỗi code gây loop request khiến chi phí tăng đột biến.

Kết quả:

  • Chi phí dự kiến: Giảm từ 1.650.000 VNĐ xuống còn khoảng 50.000 - 150.000 VNĐ/tháng (tùy lượng dùng thực tế).
  • Mức giảm: ~95%.
Chi phí giảm ~95% sau khi đổi về min-instances: 0

Cái giá phải trả: Cold Start

Không có bữa trưa nào miễn phí. Khi set min-instances: 0, nếu server đang ngủ (scale to zero) mà có người truy cập, Google sẽ mất khoảng 5-10 giây để khởi động server mới.

User đầu tiên sẽ thấy app load hơi chậm. Các user tiếp theo (trong vòng 15-20 phút sau đó) sẽ thấy nhanh bình thường.

-> Với các dự án Vibe Coding, Indie Hacker, Demo: Đây là sự đánh đổi HOÀN TOÀN XỨNG ĐÁNG.

Checklist "Vibe Coding" An Toàn

Để tránh rơi vào tình cảnh "code vui, trả tiền buồn", hãy lưu ý checklist này khi nhờ AI deploy:

1

Hỏi giá trước khi chốt

Luôn hỏi AI: "Với cấu hình deploy này (min instance, cpu, memory), ước tính chi phí hàng tháng là bao nhiêu?" trước khi đồng ý chạy lệnh.

2

Soi keyword nhạy cảm

Mở file app.yaml, service.yaml hoặc lệnh gcloud deploy mà AI tạo ra. Tìm các từ khóa:

  • min-instances (Nếu > 0 -> Cẩn thận)
  • no-cpu-throttling (Nghĩa là tính tiền CPU kể cả lúc không chạy -> Cẩn thận)
  • memory (AI hay set 2Gi, 4Gi dù app chỉ cần 512Mi)
3

Chiến lược Budget Alert thông minh

Đừng chỉ set 1 mốc. Hãy set nhiều mốc:

  • 50% ngân sách: Cảnh báo sớm.
  • 90% ngân sách: Cảnh báo nguy cấp.
  • 100% ngân sách: Cảnh báo vỡ trận. Quan trọng: Set cả alert cho Forecasted costs (Chi phí dự báo) để chặn trước khi sự việc xảy ra.

Kết Luận

AI là một trợ lý lập trình tuyệt vời, nhưng nó giống như một anh chàng quản gia giàu có tiêu tiền không tiếc tay. Nhiệm vụ của bạn - người chủ ví tiền - là phải kiểm soát chặt chẽ những gì "anh quản gia" này mua sắm.

Vibe coding là tương lai, nhưng đừng để "vibe" làm lu mờ sự cảnh giác. Hãy kiểm soát file config cũng kỹ như cách bạn kiểm soát logic code vậy.

Bạn đã bao giờ bị AI "đốt tiền" oan uổng chưa? Chia sẻ câu chuyện đau thương (và bài học) của bạn để anh em cùng tránh nhé!

Bài viết hữu ích?

Chia sẻ để nhiều người biết đến!

Chia sẻ:

>_ LLM-Friendly Copy

Copy as Markdown to use with ChatGPT, Claude, or other AI tools

1,350 words|7,143 characters

Bài viết liên quan

Khám phá thêm những bài viết cùng chủ đề với Vibe Coding & Bài Học 1.6 Triệu: Khi AI Tự Động Deploy Cloud Run

Bài viết hữu ích? Hãy kết nối với Diginno!

Chúng tôi giúp doanh nghiệp SME ứng dụng AI và automation vào quy trình làm việc - từ tư vấn chiến lược đến triển khai thực tế.