สวัสดีค่าา EP.4 มาแล้วววว

EP นี้จะพูดถึงสองเรื่องที่เกี่ยวกันคือ Networking กับ Cloud ฟังดูน่ากลัวนะ แต่จริงๆพื้นฐานไม่ได้ยากขนาดนั้น มันแค่ต้องมี mental model ที่ถูกต้องก่อนแล้วทุกอย่างจะ click เอง

ขอเปรียบเทียบแบบนี้นะ networking ก็เหมือนระบบเส้นทางในงาน HYROX ที่ต้องวิ่งจาก station ไป station แต่ละ station มี protocol ของตัวเอง มีกฎว่าต้องทำอะไรก่อนหลัง แล้วถ้าใครไม่รู้จักเส้นทาง ก็วิ่งหลง เสียเวลา และพังในที่สุด 5555


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

IP Address คืออะไร

IP Address คือที่อยู่ของ device บน network เหมือนเลขที่บ้าน ทุก device ที่เชื่อมต่อ internet ต้องมี IP

  • IPv4 เช่น 192.168.1.100 รูปแบบตัวเลข 4 ชุด
  • IPv6 เช่น 2001:0db8:85a3::8a2e:0370:7334 รูปแบบใหม่ที่รองรับ address ได้มากกว่า
  • Public IP เห็นได้จากภายนอก internet
  • Private IP ใช้ภายใน network ส่วนตัวเช่น 192.168.x.x หรือ 10.x.x.x

DNS คือระบบ "สมุดโทรศัพท์" ของ internet

เราพิมพ์ chawanee.com แต่คอมพิวเตอร์จริงๆมันคุยกันด้วย IP ไม่ใช่ชื่อ DNS เลยทำหน้าที่แปลงชื่อเป็น IP ให้

คุณพิมพ์: chawanee.com ↓ DNS lookup: chawanee.com = 104.21.x.x ↓ browser เชื่อมต่อไปที่ 104.21.x.x

Port คือ "ประตูบ้าน"

IP address บอกว่าจะไปบ้านไหน แต่ port บอกว่าจะเข้าประตูไหน server เดียวกันรันหลาย service ได้โดยใช้ port ต่างกัน

Portใช้กับอะไร
80HTTP (เว็บปกติ)
443HTTPS (เว็บแบบ encrypted)
22SSH
3306MySQL
5432PostgreSQL
6379Redis

HTTP vs HTTPS

HTTP คือ protocol ที่ browser ใช้คุยกับ server ส่วน HTTPS คือเวอร์ชันที่ encrypt ข้อมูลระหว่างทางด้วย TLS ทุกเว็บในปัจจุบันควรใช้ HTTPS เสมอ

# ดู response header ของเว็บ
curl -I https://chawanee.com

# ทดสอบ endpoint
curl https://api.example.com/users
curl -X POST -H "Content-Type: application/json" \
  -d '{"name":"chao"}' https://api.example.com/users

Load Balancer

เมื่อ traffic มาก server เครื่องเดียวรับไม่ไหว Load Balancer จะกระจาย traffic ไปหลาย server

Users → Load Balancer → Server A ↘ Server B ↘ Server C

ถ้า Server A พัง Load Balancer จะส่ง traffic ไป B และ C แทน ผู้ใช้ไม่รู้เลยว่ามีอะไรพังอยู่ข้างหลัง


Cloud Computing คืออะไร

แทนที่จะซื้อ server มาตั้งที่บ้านหรือออฟฟิศ Cloud คือการ "เช่า" computing resources จากบริษัทใหญ่ที่มี data center อยู่ทั่วโลก จ่ายแค่ที่ใช้จริง

เปรียบเหมือนการเช่า gym แทนที่จะซื้อ equipment ทั้งหมดมาไว้บ้าน ใครจะซื้อ squat rack, cable machine, sled มาไว้บ้านทั้งหมด 5555 เช่าใช้ดีกว่า ยืดหยุ่นกว่า และมีคนดูแล maintain ให้ด้วย

Big Three Cloud Providers

Providerย่อว่าmarket shareเด่นที่
Amazon Web ServicesAWS~32%บริการเยอะที่สุด ecosystem ใหญ่ที่สุด
Microsoft AzureAzure~22%integrate กับ Microsoft ได้ดี enterprise นิยม
Google Cloud PlatformGCP~12%ML/AI tools และ data analytics แข็งแกร่ง

แนะนำให้เริ่มที่ AWS ก่อนค่ะ เพราะ market share ใหญ่ที่สุด job ส่วนใหญ่ก็ถามเรื่อง AWS documentation เยอะมาก


Service Models: IaaS, PaaS, SaaS

Cloud มี 3 รูปแบบหลัก เปรียบกับยิมก็ได้

ModelCloud ให้อะไรเราจัดการอะไรตัวอย่าง
IaaS
Infrastructure as a Service
VM, network, storageOS, runtime, app ทั้งหมดAWS EC2, GCP Compute Engine
PaaS
Platform as a Service
OS, runtime, middleware ด้วยแค่ app และ dataHeroku, AWS Elastic Beanstalk
SaaS
Software as a Service
ทุกอย่างแค่ใช้งานGmail, Slack, Figma

AWS Concepts พื้นฐาน

Region และ Availability Zone

AWS มี data center อยู่ทั่วโลก แบ่งออกเป็น Region (เช่น ap-southeast-1 คือ Singapore) แต่ละ Region มีหลาย Availability Zone (AZ) ซึ่งเป็น data center แยกกันทางกายภาพ

การกระจาย app ให้รันใน หลาย AZ คือ basic ของ high availability ถ้า AZ นึงพัง AZ อื่นยังรันอยู่

EC2 (Elastic Compute Cloud)

คือ virtual machine บน AWS เหมือนเช่าคอมพิวเตอร์ที่ run Linux อยู่บน cloud

# หลังจาก launch EC2 แล้ว connect ผ่าน SSH
ssh -i "my-key.pem" ubuntu@ec2-xx-xx-xx-xx.ap-southeast-1.compute.amazonaws.com

S3 (Simple Storage Service)

Storage สำหรับเก็บไฟล์ทุกอย่าง รูปภาพ, video, backup, static files ราคาถูกมาก เก็บได้แบบ unlimited

VPC (Virtual Private Cloud)

Network ส่วนตัวของเราบน AWS กำหนดได้ว่า resource ไหนเปิดให้ internet เข้าได้ ไหนซ่อนไว้ข้างใน

VPC: 10.0.0.0/16 ├── Public Subnet: 10.0.1.0/24 ← internet เข้าได้ (Load Balancer อยู่ที่นี่) └── Private Subnet: 10.0.2.0/24 ← internet เข้าไม่ได้ (Database อยู่ที่นี่)

Security Group

เหมือน firewall ระดับ instance กำหนดได้ว่า IP ไหน port ไหนเข้าออกได้บ้าง

# ตัวอย่าง Security Group rules
Inbound:
  Port 22 (SSH)    - จาก IP ของเราเท่านั้น
  Port 80 (HTTP)   - จากทุกที่ (0.0.0.0/0)
  Port 443 (HTTPS) - จากทุกที่ (0.0.0.0/0)

Outbound:
  ทุก port - ออกได้หมด

Serverless ทางเลือกที่ไม่ต้องดูแล server

Serverless ไม่ได้แปลว่าไม่มี server จริงๆ แต่หมายความว่าเราไม่ต้องดูแล server เองค่ะ เขียนแค่ function แล้ว cloud จะจัดการ scale และ infrastructure ให้เอง

  • AWS Lambda รัน function เมื่อมี event เกิดขึ้น จ่ายตามจำนวนครั้งที่รัน
  • Google Cloud Functions เหมือนกันฝั่ง GCP
  • Vercel / Netlify สำหรับ frontend และ serverless functions ง่ายมากเหมาะกับ web dev

💡 สำหรับมือใหม่ แนะนำให้เริ่มสมัคร AWS Free Tier แล้วลอง launch EC2 instance ฟรีให้ได้ก่อน จะได้คุ้นกับ console และ concept พื้นฐาน ก่อนไปเรียนอย่างอื่นต่อค่ะ


สรุป EP.4

  • IP address คือที่อยู่ของ device บน network, DNS แปลงชื่อเป็น IP
  • Port คือประตูที่ service รันอยู่ ต้องรู้ port สำคัญอย่าง 22, 80, 443
  • Cloud คือการเช่า computing resources จ่ายตามใช้จริง
  • IaaS (EC2) จัดการ VM เอง, PaaS จัดการแค่ app, SaaS ใช้งานอย่างเดียว
  • VPC, Security Group, Region, AZ คือพื้นฐาน AWS ที่ต้องรู้