Gcp Cloud Run Serverless Containers Cloud

Gcp Cloud Run Serverless Containers

📅 2026-02-09 | โดย อ.บอม กิตติทัศน์ เจริญพนาสิทธิ์ — SiamCafe.net Since 1997

Gcp Cloud Run Serverless Containers คืออะไร / ทำไมถึงสำคัญ

Cloud Run เนี่ย มันคือบริการของ Google Cloud Platform (GCP) ที่ทำให้เราสามารถรัน containerized application แบบ serverless ได้ง่ายๆ เลย สมัยผมทำร้านเน็ตฯ เนี่ย การดูแลเซิร์ฟเวอร์เองเป็นเรื่องปวดหัวมาก ต้องคอยอัพเดทแพทช์ ดูแลความปลอดภัย แถมถ้าคนไม่เข้าเว็บก็เสียเงินเปล่า Cloud Run เลยเข้ามาแก้ปัญหานี้แหละ

สำคัญยังไงน่ะเหรอ? ลองคิดดูนะ เราไม่ต้องกังวลเรื่องเซิร์ฟเวอร์เลย! Cloud Run จัดการให้หมด ทั้งเรื่อง scale, load balancing แถมจ่ายเงินเฉพาะตอนที่มีคนใช้งานจริงๆ ด้วยนะ ประหยัดงบไปได้เยอะเลย เหมาะสำหรับ microservices, API หรือแม้แต่เว็บแอปง่ายๆ ที่ต้องการความรวดเร็วในการ deploy

พื้นฐานที่ต้องรู้

Container คืออะไร?

Container เนี่ย เปรียบเหมือนกล่องที่เก็บทุกอย่างที่แอปพลิเคชันเราต้องการ ทั้งโค้ด ไลบรารี และ dependencies ต่างๆ ทำให้แอปฯ ของเราทำงานได้เหมือนกันทุกที่ ไม่ว่าจะบนเครื่องเรา เครื่องเพื่อน หรือบน Cloud Run เอง สมัยก่อนตอนทำร้านเน็ตฯ ผมเคยเจอปัญหาโค้ดที่รันบนเครื่องผมได้ แต่ไปรันบนเซิร์ฟเวอร์ไม่ได้ Container เลยเข้ามาแก้ปัญหานี้แหละ

Docker เป็นเครื่องมือที่นิยมใช้ในการสร้างและจัดการ Container ลองศึกษาดูนะ จะช่วยให้ชีวิตง่ายขึ้นเยอะเลย

Serverless คืออะไร?

Serverless ไม่ได้แปลว่าไม่มีเซิร์ฟเวอร์นะ! แค่เราไม่ต้องจัดการเองต่างหาก Cloud provider อย่าง GCP จะดูแลให้หมด เราแค่โฟกัสกับการเขียนโค้ดอย่างเดียว สมัยก่อนต้องมานั่งปรับแต่งเซิร์ฟเวอร์เอง Serverless เลยเป็นอะไรที่ "สวรรค์" มากๆ

ข้อดีของ Serverless คือความยืดหยุ่นในการ scale และจ่ายเงินเฉพาะที่ใช้จริงเท่านั้น

วิธีใช้งาน / เริ่มต้นยังไง

การเริ่มต้นใช้งาน Cloud Run ไม่ยากอย่างที่คิด แค่มี Docker image แล้วก็ deploy ขึ้นไปได้เลย

ขั้นตอนปฏิบัติจริง

สร้าง Docker Image

อันดับแรก เราต้องสร้าง Docker image ก่อน ถ้ายังไม่เคยลองใช้ Docker แนะนำให้ลองทำตาม tutorial ง่ายๆ ดูก่อนนะ SiamCafe Blog มีบทความเกี่ยวกับ Docker อยู่บ้าง ลองเข้าไปอ่านดูได้

สมมติว่าเรามีไฟล์ Dockerfile หน้าตาประมาณนี้:


FROM node:16-alpine

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 8080

CMD ["npm", "start"]

จากนั้นเราก็ build image ได้ด้วยคำสั่ง:


docker build -t gcr.io/[PROJECT_ID]/my-app:latest .

อย่าลืมเปลี่ยน [PROJECT_ID] เป็น Project ID ของ GCP เราด้วยนะ

Deploy ขึ้น Cloud Run

หลังจากที่เรา build image เสร็จแล้ว เราก็ push image ขึ้น Google Container Registry (GCR) ก่อน:


docker push gcr.io/[PROJECT_ID]/my-app:latest

จากนั้นไปที่ Cloud Run ใน GCP console แล้วคลิก "Create Service" เลือก Container image ที่เราเพิ่ง push ขึ้นไป ตั้งชื่อ service แล้วก็เลือก region ที่ต้องการได้เลย

ที่สำคัญ อย่าลืมตั้งค่าให้ Cloud Run อนุญาตให้เข้าถึงได้จาก public internet นะ

สุดท้าย กด Create Service แล้วรอ Cloud Run จัดการให้ แค่นี้ก็เรียบร้อย!

เปรียบเทียบกับทางเลือกอื่น

Cloud Run ไม่ได้เป็นทางเลือกเดียวในการรัน application บน GCP นะ ยังมีตัวเลือกอื่นๆ อีก เช่น App Engine, Compute Engine หรือ Kubernetes Engine แต่ละตัวก็มีข้อดีข้อเสียต่างกัน

บริการ ข้อดี ข้อเสีย เหมาะสำหรับ
Cloud Run Serverless, scale อัตโนมัติ, จ่ายเงินตามการใช้งานจริง จำกัด runtime, container-centric Microservices, API, เว็บแอปขนาดเล็ก
App Engine ใช้งานง่าย, managed platform, รองรับหลายภาษา จำกัด runtime, vendor lock-in เว็บแอป, mobile backend
Compute Engine ควบคุมได้เต็มที่, custom configuration ต้องดูแลเซิร์ฟเวอร์เอง, ค่าใช้จ่ายสูง แอปพลิเคชันที่ต้องการ custom configuration สูง
Kubernetes Engine orchestration ที่ทรงพลัง, scale ได้อย่างยืดหยุ่น ซับซ้อน, ต้องมีความรู้ Kubernetes แอปพลิเคชันขนาดใหญ่ที่ต้องการ scale complex

สมัยก่อนตอนทำร้านเน็ตฯ ผมใช้ Compute Engine เป็นหลัก เพราะต้องควบคุมทุกอย่างเอง แต่ถ้าให้เลือกใหม่ตอนนี้ Cloud Run นี่แหละตอบโจทย์ที่สุด SiamCafe Blog ก็รันอยู่บน Cloud นะ (แต่เป็น VM สมัยเก่า 😅)

Best Practices / เคล็ดลับจากประสบการณ์

เอาล่ะน้องๆ มาถึงส่วนที่สำคัญที่สุดแล้ว นั่นคือ "ทำยังไงให้ Cloud Run มันเวิร์คจริงในโลกธุรกิจของเรา" สมัยผมทำร้านเน็ตฯ น่ะ เรื่อง performance นี่สำคัญสุดๆ ใครโหลดช้า ใครเล่นเกมแล้วแลค มีหวังโดนด่าหูชา

Cloud Run ก็เหมือนกัน ถ้าตั้งค่าไม่ดี มีหวังเปลืองเงินแถม user หนีหมด วันนี้พี่เลยจะมาแชร์เทคนิคที่กลั่นมาจากประสบการณ์จริง 28 ปี ที่คลุกคลีกับ IT มานะ

1. Container Image ต้อง Lean & Mean

จำไว้เลยว่า Container Image เปรียบเสมือนรถแข่ง ถ้าใส่ของเยอะ อืดอาด ก็วิ่งช้า สมัยก่อนผม optimize image นี่แทบจะบ้าตาย แต่ผลลัพธ์มันคุ้มค่ามากจริงๆ

หลักการง่ายๆ คือ ใช้ base image ที่เล็กที่สุดเท่าที่จะทำได้ และลบไฟล์ที่ไม่จำเป็นออกให้หมด ตอน build image ลองใช้ multi-stage build ดูนะ มันช่วยลดขนาด image ได้เยอะเลย


FROM node:16-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

2. ปรับ Resource ให้เหมาะสม

Cloud Run มันดีตรงที่ปรับ resource ได้ตามใจชอบ แต่ถ้าปรับไม่ดี ก็เหมือนเอารถสปอร์ตไปวิ่งในโคลน คือเสียของเปล่าๆ

ลอง monitor CPU และ Memory usage ของ container ดู แล้วค่อยๆ ปรับ resource ให้เหมาะสม ถ้า container ใช้ CPU ไม่ถึง 50% ก็ลด CPU ลงหน่อย ถ้า memory เหลือน้อย ก็เพิ่ม memory เข้าไป

3. Caching is Your Friend

เรื่อง caching นี่สำคัญมากๆ โดยเฉพาะพวก static assets อย่างรูปภาพ หรือไฟล์ CSS/JS ลองใช้ Cloud CDN หรือ Cloud Storage มาช่วย cache พวกนี้ดูนะ รับรองว่า response time เร็วขึ้นเยอะ

สมัยก่อนผมใช้ Squid Cache ที่ร้านเน็ตฯ มันช่วยลด load ของ server ได้มหาศาล Cloud CDN ก็ทำหน้าที่คล้ายๆ กันแหละ แค่ scale ได้เยอะกว่า

4. Logging and Monitoring

อย่าละเลยเรื่อง Logging และ Monitoring เด็ดขาด! Cloud Run มันเป็น serverless ก็จริง แต่เราก็ต้องคอยดูว่ามันทำงานได้ดีหรือเปล่า

ใช้ Cloud Logging และ Cloud Monitoring ช่วย monitor error rate, latency, และ resource usage ถ้าเจออะไรผิดปกติ จะได้รีบแก้ไขได้ทันท่วงที

อีกเรื่องที่สำคัญคือการตั้ง alert ถ้า error rate สูงเกินไป หรือ latency เกินค่าที่กำหนด จะได้รู้ตัวก่อนที่ลูกค้าจะโวยวาย

FAQ คำถามที่พบบ่อย

Cloud Run มันเหมาะกับงานแบบไหน?

Cloud Run เหมาะกับงานที่ scale ได้ง่ายๆ เช่น REST API, Web Applications, หรือ Background Jobs ที่ไม่ต้องการรันตลอดเวลา ถ้างานของคุณมีลักษณะแบบนี้ Cloud Run คือคำตอบ

Cloud Run กับ Cloud Functions ต่างกันยังไง?

Cloud Functions เหมาะกับงานที่สั้นๆ ง่ายๆ เช่น trigger function จาก event ส่วน Cloud Run เหมาะกับงานที่ซับซ้อนกว่า ต้องการ control environment มากกว่า และรันได้นานกว่า

Cloud Run มันแพงไหม?

Cloud Run คิดเงินตาม resource ที่ใช้จริง ถ้า application ของคุณไม่ได้ใช้งาน resource เยอะ ก็ไม่แพง แต่ถ้า application ของคุณใช้ resource เยอะ อาจจะต้องพิจารณา option อื่นๆ เช่น Compute Engine

Container Registry ที่ใช้กับ Cloud Run ควรเป็นอะไรดี?

Cloud Run สามารถใช้ได้กับ Container Registry หลายแบบ แต่ Cloud Container Registry (GCR) ของ Google เองก็เป็นตัวเลือกที่ดี เพราะมัน integrated กับ Cloud Run ได้อย่างราบรื่น

สรุป

Cloud Run เป็นเครื่องมือที่ทรงพลังมากๆ ในการ deploy containerized applications แต่การใช้งานให้ได้ผลลัพธ์ที่ดีที่สุด ต้องอาศัยความเข้าใจในหลักการทำงาน และประสบการณ์ในการปรับแต่ง

หวังว่าเทคนิคที่พี่แชร์ไปวันนี้ จะเป็นประโยชน์กับน้องๆ ในการใช้งาน Cloud Run นะครับ ถ้ามีคำถามอะไรเพิ่มเติม ถามมาได้เลย พี่จะพยายามตอบให้ดีที่สุด

อย่าลืมไปลองเล่น SiamCafe Blog กันด้วยนะ มีบทความดีๆ อีกเยอะเลย และถ้าใครสนใจเรื่องการลงทุน ลองดู iCafeForex นะจ๊ะ