Lesson 1 Theory

Cloud Concepts

ก่อนสร้าง Infrastructure บน AWS ต้องเข้าใจว่าทำไม Cloud ต่างจาก Data Center แบบเดิม และคำอย่าง IaaS, PaaS, SaaS, Scalability หรือ Shared Responsibility Model ส่งผลต่อการออกแบบระบบอย่างไร

Mental model Cloud คือ infrastructure ผ่าน API สร้าง แก้ ลบ และ automate resource ได้โดยไม่ต้องซื้อ hardware เอง
Decision point IaaS, PaaS, SaaS เลือกตามระดับ control ที่ต้องการและภาระ operation ที่รับได้
Risk model Shared responsibility AWS ดูแลชั้นล่าง แต่ identity, data, config และ app security ยังเป็นของคุณ

Cloud คืออะไร

Cloud คือการใช้ Compute, Storage, Network, Database และ Service อื่นผ่านผู้ให้บริการแทนการซื้อและดูแล Hardware เอง ผู้ใช้สร้าง Resource เมื่อต้องการ ใช้งานเท่าที่จำเป็น และลบทิ้งเมื่อไม่ใช้แล้ว

แนวคิดสำคัญคือ Infrastructure กลายเป็นสิ่งที่จัดการผ่าน API ได้ เช่น สร้าง EC2, VPC, S3 Bucket หรือ Budget ด้วย Console, AWS CLI, SDK หรือ Infrastructure as Code

IaaS, PaaS และ SaaS

Modelคุณดูแลมากแค่ไหนตัวอย่าง
IaaSดูแล OS, runtime, application และ config ส่วนใหญ่เองAmazon EC2, EBS, VPC
PaaSเน้น deploy application ผู้ให้บริการดูแล platform หลายส่วนElastic Beanstalk, managed database patterns
SaaSใช้ application สำเร็จรูป ไม่ต้องดูแล InfrastructureEmail, CRM, collaboration tools

Shared Responsibility Model

AWS รับผิดชอบ security of the cloud เช่น Data center, Hardware, physical network และ foundational infrastructure ส่วนลูกค้ารับผิดชอบ security in the cloud เช่น IAM permission, data classification, OS patching บางกรณี, Security Group, encryption setting และ application security

จำง่าย: ยิ่ง Service managed มากเท่าไร AWS จะดูแลชั้นล่างให้มากขึ้น แต่คุณยังต้องดูแล Identity, Permission, Data, Configuration และการใช้งานให้ถูกต้อง

Availability, Scalability และ Elasticity

  • High Availability: ระบบยังให้บริการได้เมื่อบางส่วนเสีย เช่น กระจาย Resource หลาย Availability Zones
  • Scalability: ระบบรองรับ Load ที่มากขึ้นได้ เช่น เพิ่ม EC2 หรือเพิ่ม Capacity ของ Database
  • Elasticity: ระบบเพิ่มหรือลด Resource ตาม Load ได้อัตโนมัติ เพื่อลดค่าใช้จ่าย
  • Fault Tolerance: ระบบทนต่อความเสียหายและทำงานต่อได้โดยผู้ใช้อาจไม่รู้สึกถึงปัญหา
  • Disaster Recovery: แผนกู้คืนระบบหลังเหตุการณ์ใหญ่ โดยใช้แนวคิด RTO และ RPO

Best practices

  • ออกแบบให้ล้มเหลวได้บางส่วน อย่าฝากทุกอย่างไว้กับ Instance หรือ AZ เดียว
  • ใช้ managed service เมื่อลดภาระ operation ได้จริง
  • คิดเรื่อง Cost ตั้งแต่ Design ไม่ใช่หลัง Deploy
  • ใช้ Tag, Budget และ Alert เป็น guardrail พื้นฐานตั้งแต่เริ่มเรียน

Common mistakes

  • คิดว่า AWS ดูแล Security ทั้งหมดให้แล้ว จึงไม่ตั้ง IAM, MFA หรือ Network control ให้ดี
  • เปิด Resource ทิ้งไว้หลัง Lab เพราะคิดว่า Free Tier ครอบคลุมทุกอย่าง
  • ออกแบบระบบใน Region เดียวและ AZ เดียวโดยไม่เข้าใจผลต่อ Availability

Review questions

Before next lesson
  1. อธิบายได้ว่า Cloud resource ถูกจัดการผ่าน API อย่างไร
  2. เลือก IaaS, PaaS หรือ SaaS ให้เหมาะกับ use case ง่าย ๆ ได้
  3. แยกได้ว่าส่วนไหน AWS รับผิดชอบ และส่วนไหนลูกค้าต้องรับผิดชอบ
  1. IaaS ต่างจาก PaaS อย่างไรในมุม Operation?
  2. ยกตัวอย่างสิ่งที่ลูกค้าต้องรับผิดชอบใน Shared Responsibility Model 3 อย่าง
  3. Elasticity ช่วยเรื่อง Cost อย่างไร?