PlAwAnSaI
Administrator
Transcript of AWS re:Invent 2024 - Scaling on AWS for the first 10 million users (ARC201) - YouTubeToTranscript.com
Read the full transcript of AWS re:Invent 2024 - Scaling on AWS for the first 10 million users (ARC201) by AWS Events available in 2 language(s).
“เริ่มจากศูนย์ วางสถาปัตยกรรมให้ไปถึง 10 ล้านผู้ใช้”
วันนี้เริ่ม EP.1 ของ Series ที่ AWS Startup Team มาเล่าแบบจับมือทำ ว่าเราควรคิดเรื่อง Scale ตั้งแต่วันแรกยังไง ถ้าเป้าหมายคืออยากให้ App โตได้จนถึงระดับ 10 ล้านผู้ใช้
วิทยากรคือ
Christine – Senior Startup Solutions Architect
Skye – Manager จากทีม Startup Solutions Architect
สองคนนี้คุยกับ Startup มาเยอะมากก จนเห็น Pattern ชัด ๆ ว่า Startup ส่วนใหญ่ไม่ได้ติดเรื่องเขียน Code แต่ติดเรื่อง สถาปัตยกรรมที่ไม่พร้อม Scale แบบไว ๆ มากกว่า
เลยกลายเป็นสาเหตุให้ต้อง Refactor บ่อย หรือบางทีต้องรื้อสถาปัตยกรรมใหม่ทั้งชุดเมื่อผู้ใช้โตขึ้น ซึ่งเสียเวลาและเสียเงินมาก
EP. แรกนี้คือการปูพื้นเพื่อเข้าใจ Mindset ก่อนลงลึกใน Technique การ Scale ใน EP ถัด ๆ ไป
Christine เริ่มต้นด้วยการตั้งคำถามง่าย ๆ แต่สำคัญมากว่า
Code:
จริง ๆ แล้ว “Application” ของเราหมายถึงอะไร?
เพราะคำนิยามนี้มันกว้างมาก
- บางบริษัทใหญ่ ๆ App = แค่ 1 Feature ใน Ecosystem ขนาดใหญ่
- บาง Team ใช้คำว่า App = ระบบหลังบ้าน + ระบบหน้าบ้าน + API + Mobile + Service
- Startup บางแห่ง = App คือ "ตัวบริษัททั้งบริษัท"
เพื่อให้ทุกคนเห็นภาพตรงกัน Christine เลยตั้งสมมติฐานว่า
Session นี้จะใช้ 3-tier Web Application เป็น Model กลาง ได้แก่
UI ที่ผู้ใช้เห็น เช่น Web / Mobile / SPA
Business Logic ทั้งหมด
API / Authentication / Function ต่าง ๆ
ส่วนเก็บข้อมูล เช่น Database, Cache, Storage
แม้ App จริง ๆ ของแต่ละคนจะต่างกัน แต่ Pattern 3-tier นี้ใช้เป็นกรอบอธิบายการ Scale ได้ดีมาก เพราะเป็นพื้นฐานของเกือบทุก Project
Christine ย้ำว่า สิ่งที่เราสร้างวันนี้ จะไม่เหมือนของเมื่อ 5 ปีก่อนแล้ว เพราะ Technology มันเปลี่ยนเร็วมากกก
จาก HTML+PHP → กลายเป็น JavaScript Framework เต็มรูปแบบ
React, Next.js, Vue, Nuxt, Astro ฯลฯ
มีตัวช่วย Build แบบ End-to-end
เร็วขึ้น
Deploy ง่ายขึ้น
หรือแยกเป็น Microservices ตั้งแต่แรกแบบ Effortless
Startup ยุคนี้ใช้ Managed Services เยอะมาก เพราะมันลดภาระ DevOps
ลดเวลา Setup
ลดความเสี่ยงจาก Human Error
และเพิ่มความเร็วในการออก Feature ได้เต็มที่
ยุค Social ทำให้ “Load พุ่งในชั่วโมงเดียว” เป็นเรื่องปกติ
เมื่อก่อนเติบโตแบบเป็นสัปดาห์
ตอนนี้ Clip เดียวพา Load พุ่งหลายล้าน Request ได้ทันที
เพราะงี้คำว่า “Scale ง่าย ๆ ไว้ก่อน” ไม่ใช่เรื่องไกลตัวอีกต่อไป แต่เป็น Survival Skill ของทุก Team
ประโยคนี้ดีมากและจริงมาก
Code:
No architecture is designed for hyper-scale on day one.
ถ้าเริ่มต้นโดยพยายามออกแบบทุกอย่างให้รองรับ 10 ล้านผู้ใช้ตั้งแต่วันแรก คุณจะไม่เสร็จอะไรเลย
เพราะคุณจะเสียเวลาคิดสถาปัตยกรรมมากกว่าเปิด Product ให้ User ใช้จริง
AWS แนะนำ Mindset ว่า
Build → Measure → Learn → Improve
คือ
- Build: สร้างแบบ Simple ก่อน
- Measure: ดูว่า Bottleneck อยู่ตรงไหน
- Learn: วิเคราะห์ว่าเกิดจากอะไร
- Improve: ปรับสถาปัตยกรรมเฉพาะจุด
- เราปรับตามผู้ใช้จริง ไม่ใช่ตามจินตนาการ
- ทำให้ไม่เสียเวลาไปกับการ Optimize สิ่งที่ยังไม่เกิด
- ระบบ Evolve ตามธุรกิจได้อย่างเป็นธรรมชาติ
Christine สมมติว่า Day 1
- มีแค่ Founder ใช้ 2-3 คน
- มี Beta Tester นิดหน่อย
Load ไม่เท่าไหร่ แต่ สิ่งสำคัญคือโครงสร้างต้องขยายได้
แต่พอ Load ขึ้นปุ๊บ ทุกอย่างคอขวดทันที- ต้องย้าย ต้องแยก ต้องรื้อ ต้องปวดหัว
AWS เลยแนะนำว่าอย่างน้อยที่สุด
แม้ผู้ใช้จะมีน้อยก็ตาม
เพราะมันเป็น Foundation ให้ Scale ได้ในอนาคต
Christine แอบเล่าว่าเมื่อก่อน Team ส่วนใหญ่เริ่มจาก
- Run Web Server บน EC2
- ใส่ Auto Scaling Group
- ทำ Load Balancer
- ใช้ Shared Storage
- Database แยกอยู่ข้างนอก
EP ต่อ ๆ ไป Christine จะเล่าให้ฟังว่าปัจจุบันมีอะไรที่ดีกว่า ง่ายกว่า และยืดหยุ่นกว่า
EP. นี้ยังไม่ลงลึกเรื่อง Scale แต่ปูพื้นด้วยความคิดสำคัญมาก ๆ เสียก่อนว่า:
พอเริ่มทำระบบสักพัก ทุก Team จะเจอคำถามเดิมเสมอว่า “Web ทำไม Load ช้าลง?”
จริง ๆ แล้วมันไม่ใช่เพราะ Code แย่อย่างเดียว แต่เพราะผู้ใช้เริ่มเยอะขึ้น File เริ่มใหญ่ขึ้น และปริมาณ Asset (รูป / JS / CSS) ที่ต้อง Load เริ่มบวมขึ้นเรื่อย ๆ
สิ่งที่แก้ได้ง่ายที่สุด และให้ผลชัดที่สุดคือ ใช้ CDN (เช่น CloudFront)
CDN คืองานง่าย ๆ ที่หลาย Startup ไม่รู้ว่าช่วยได้เยอะมาก เพราะมัน Cache File ไว้ใกล้ผู้ใช้ ทำให้เปิด Web เร็วกว่าเดิมหลายเท่าโดยไม่ต้องเพิ่มเครื่อง ไม่ต้องคิดโครงสร้างอะไรเลย
ทุกวันนี้ Framework พัฒนาเร็วมาก ทั้ง React, Next.js, Remix, Astro ฯลฯ
ปัญหาจริง ๆ สำหรับ Team Dev ไม่ใช่แค่ “Web Load ช้า” แต่คือ
“ฉันอยากพัฒนาให้เร็ว และ Deploy ให้เร็ว โดยไม่ปวดหัวกับ Infrastructure”
เพราะถ้ายังใช้ S3 + CloudFront แบบเดิม ๆ
– Dev ต้องจัด Build Pipeline เอง
– ต้อง Config เองทุกอย่าง
– อยาก Deploy แยก Branch ก็ไม่ได้
– Rollback ยาก
– Preview ไม่สะดวก
– ไม่มีการ Integrate ลึกกับ Framework สมัยใหม่
ตอนนี้โลกมันเลยเปลี่ยนไปสู่ “Purpose-built Frontend Hosting” หรือบริการ Host Web ที่ออกแบบมาเพื่อ Frontend Framework โดยเฉพาะ
และนี่คือจุดที่ AWS Amplify Hosting เข้ามาแก้ปัญหาแบบเต็มรูปแบบ
Amplify เป็นบริการที่ Dev เขียน Code อย่างเดียว แล้วโยง GitHub ส่วนเรื่อง Deploy–Build–Scale ทั้งหมด AWS จัดการให้แบบอัตโนมัติ
จุดเด่นที่ทำให้หลาย Startup เลือก Amplify
✔ ไม่ต้องดูแล Infrastructure
✔ Build อัตโนมัติทุกครั้งที่ Push Code
✔ มี Atomic Deployment (พัง = Rollback เอง)
✔ มี Branch Deployment (สร้าง URL Preview ทุก Branch ได้)
✔ Integrate ลึกกับ Next.js, React, SSG ทุกตัว
✔ ไม่ต้องผูก S3 + CloudFront เองให้ยุ่งยาก
✔ ไม่ต้องมี DevOps เต็ม Team ตอนเริ่มต้น
✔ Scale อัตโนมัติทันทีเวลา Web โต
ถ้าทำ Web แบบ Next.js + SSR จะรู้เลยว่า ถ้า Host บน S3 ทำแทบไม่ได้ แต่ Amplify ทำได้ครบหมด ทั้ง SSR, ISR, Static Export, Image Optimization
นี่คือเหตุผลว่าทำไม Early-stage Startup ใช้ Amplify เยอะมาก
Team เล็ก 3–5 คน ไม่อยากเสียเวลาทำ Infra อยาก Focus ที่ Product + Go-to-market ก่อน Amplify ตอบโจทย์เลยเต็ม ๆ
1) Client-Side Rendered (CSR) เช่น React SPA ที่ Load Code ทั้งหมดไป Render บน Browser เหมาะกับ Web ทั่วไปที่ไม่ต้อง SEO หนัก
2) Server-Side Rendered (SSR) เช่น Next.js ที่ Render HTML บน Server ก่อนส่งให้ผู้ใช้ เหมาะกับ Web ที่ต้อง SEO, ใช้ Dynamic Content, ต้อง Load เร็ว
3) Static Site Generator (SSG) เช่น Astro, Hugo หรือ Next.js Static Export เหมาะกับ Web ที่เป็น Content เยอะ ๆ แต่คงที่ > เร็วที่สุด + ค่าใช้จ่ายต่ำที่สุด
ไม่ว่าทำ Web แบบไหน Amplify ก็รองรับทั้งหมดแบบ Out-of-the-box
พอคุยเรื่อง Frontend แล้ว สิ่งต่อไปที่ทุก Team ถาม คือ “Backend จะใช้ EC2, Container หรือ Serverless?”
เลือกผิดตั้งแต่ต้น แก้ทีหลังเหนื่อยมาก, ค่าใช้จ่ายบาน, Scale ไม่ได้, Load ไม่ Balance, Maintain ยุ่งกว่าเดิม 10 เท่า
Last edited: