Infra101 - Content Delivery Network (CDN) เข้าเว็บไซต์ได้ลื่นปรื๊ด?

Engiblog
KBTG Life
Published in
2 min readDec 7, 2023

ขอแนะนำซีรีย์ 101 by Engiblog ที่จะพาทุกคนไปทำความรู้จักกับคำศัพท์เบสิกในโลกเทคโนโลยีที่คุณอาจจะรู้อยู่แล้วหรือไม่เคยรู้มาก่อน เรามาเรียนรู้กันไปด้วยกันใน 2 นาทีครับ

Photo by Austin Distel on Unsplash

เว็บไซต์ที่ดีนอกจากจะมีเนื้อหา (Content) ดีที่ถูกใจผู้เข้าใช้งานเว็บไซต์ (Visitor) แล้วนั้น โครงสร้างพื้นฐาน (Infrastructure) ของเว็บไซต์ก็เป็นอีกส่วนสำคัญที่ควรมีการออกแบบให้รองรับผู้เข้าใช้งานเว็บไซต์และการเข้าถึงเว็บไซต์ได้อย่างรวดเร็วแบบไม่ต้องรอนาน เพราะคนที่เข้าใช้งานก็คงไม่อยากรอนานๆ แน่นอน

เรามาเริ่มจากการดูส่วนประกอบของเว็บไซต์ว่ามีอะไรบ้างกันครับ

  1. Domain Name หรือชื่อเว็บไซต์ ตัวอย่างเช่น www.google.com, www.kbtg.tech, www.kasikornbank.com
  2. Web Hosting หรือ Web Server ที่เก็บโค้ดของเว็บไซต์ เพื่อทำหน้าที่ในการส่งข้อมูลเว็บไซต์ไปแสดงผลที่บราวเซอร์ของคนที่เรียกเว็บไซต์

ซึ่งในส่วนของ Web Hosting นี่แหละเป็นโครงสร้างพื้นฐานสำคัญที่ส่งผลต่อความเร็วในการเข้าเว็บไซต์ของเรา

ตัวอย่างปัญหา

ถ้าเราทำเว็บไซต์ขึ้นมา 1 เว็บ แล้วนำเว็บไซต์ดังกล่าวไปฝากไว้บน Web Server ที่อยู่ภายในประเทศไทย เมื่อผู้เข้าชมเว็บไซต์เข้าเว็บจากอินเทอร์เน็ตของประเทศไทย ก็จะเข้าได้เร็ว เนื่องจาก Web Server อยู่ภายในประเทศ แต่ถ้ามีผู้เข้าชมเว็บไซต์เข้าเว็บไซต์จากต่างประเทศ จะเข้าใช้งานได้ช้า เนื่องจากต้องวิ่งผ่านอินเทอร์เน็ตจากต่างประเทศ เข้ามาที่ Web Server ที่อยู่ภายในประเทศไทย

จากกรณีที่ยกตัวอย่างมานี้ ถ้ากลุ่มเป้าหมายของผู้เข้าใช้งานเว็บไซต์คือภายในประเทศไทยเท่านั้น ก็ไม่ได้เป็นปัญหาใดๆ สำหรับเรา แต่ถ้าเราต้องการกลุ่มของผู้เข้าใช้งานเว็บไซต์มาจากทั่วโลกด้วย เราก็ต้องจัดการแก้ไข เพื่อให้ทุกคนสามารถเข้าใช้งานเว็บไซต์ได้อย่างรวดเร็ว ไม่ว่าจะอยู่ที่ไหนกันครับ

Photo by Pejmon Hodaee on Unsplash

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

  • ค่าใช้จ่ายที่จะต้องเช่า Web Server หลายๆ ที่ทั่วโลก
  • อย่างนั้นจะจัดการ Web Traffic ของผู้เข้าใช้งานเว็บไซต์ของแต่ละประเทศหรือทวีปอย่างไร
  • Web Traffic จัดการได้ยากมาก ถ้าไม่มีการแบ่งโดเมนเนม (Domain Name) แบบรายประเทศ
  • ถ้ามีการแบ่งโดเมนเนม (Domain Name) แบบรายประเทศ ก็จะต้องเสียเวลาในการจัดการแบบมหาศาล
  • เมื่อมีการวาง Web Server หลายที่ ก็ต้องมีการบริหารจัดการหลายที่
  • โค้ดและ Content ต้องมีการอัพเดตหลายจุด
  • และอื่นๆ อีกมากมาย (เริ่มปวดหัวแล้ว…)

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

CDN (Content Delivery Network)

CDN ย่อมาจาก Content Delivery Network คือเทคโนโลยีที่ช่วยให้เราสามารถเรียกเว็บไซต์หรือดาวน์โหลดข้อมูลต่างๆ บนเว็บไซต์ผ่านอินเทอร์เน็ต ผู้ใช้งานสามารถเข้าถึงข้อมูลได้อย่างรวดเร็วไม่ว่าจะอยู่ที่ใดของโลกใบนี้ก็ตาม

อธิบายหลักการทำงานของ CDN แบบง่ายๆ คือเราจะมีกลุ่มของ Server ขนาดใหญ่ที่มีการวางเป็นจุดๆ เรียกว่า Node (หรือบางคนเรียก Edge) กระจายไปอยู่ในประเทศต่างๆ หรือทวีปต่างๆ ทั่วโลก (ขึ้นอยู่กับผู้ให้บริการแต่ละราย) โดยทำงานจะมีการซิงค์ (Sync) ข้อมูลจาก Node หนึ่งไปอีก Node หนึ่งเมื่อมีการอัพเดตข้อมูลเว็บไซต์ของเรา โดยที่เราไม่ต้องทำการอัพเดตเอง และเมื่อมีการเรียกใช้ข้อมูลหรือเข้าชมเว็บไซต์ ระบบ CDN ก็จะทำการหาเส้นทางของข้อมูลที่วิ่งผ่านอินเทอร์เน็ต เพื่อหาว่าเส้นทางใดที่เป็นเส้นทางสั้นที่สุดระหว่างผู้เข้าใช้งานเว็บไซต์และ Server ช่วยเพิ่มความรวดเร็วในการเข้าถึงของข้อมูลนั้นๆ โดยส่วนมากก็จะเป็นเส้นทางเครือข่าย (Network) ภายในประเทศของผู้เข้าใช้งานเว็บไซต์นั่นเอง

จากรูปข้างต้น จะเป็นตัวอย่างที่ผู้เข้างานเว็บไซต์ที่อยู่ภายในประเทศไทย จะเห็นว่าระบบจะทำการวิ่งไปที่ Server CDN Node ที่อยู่ประเทศไทย

ข้อควรระวังของการใช้งาน CDN

เนื่องจากการทำงานของ CDN ต้องมีการซิงค์ข้อมูลไปที่ Node อาจจะทำให้ข้อมูลไม่เรียลไทม์ (ขึ้นอยู่กับผู้ให้บริการ) จึงควรมีวิธีการตรวจสอบว่ามีการซิงค์ข้อมูล (Sync Data) เรียบร้อยหรือไม่

ตัวอย่างผู้ให้บริการ CDN

ผู้ให้บริการ CDN มีหลายรายด้วยกัน ที่นิยมจะมีดังนี้

  • Cloudflare ซึ่งนอกจากบริการ CDN แล้ว Cloudflare ยังมีบริการอื่นๆ ที่ทำให้เว็บไซต์ของเรามีความปลอดภัยมากขึ้น เช่น Web App Firewall (WAF), DDoS, SSL และอื่นๆ อีกมากมาย ที่สำคัญมีบริการฟรีหลายบริการมากๆ เหมาะสำหรับคนที่ต้องการทำเว็บไซต์มือใหม่หรือที่งบประมาณไม่มาก
  • Amazon Cloudfront ผู้ให้บริการที่มีชื่อเสียงในเรื่องของบริการ Cloud อยู่แล้ว ซึ่ง Cloudfront ก็เป็นส่วนหนึ่งที่ทาง Amazon มีให้บริการเพื่ออำนวยความสะดวกสำหรับคนที่ทำเว็บไซต์และใช้บริการของ Amazon อยู่แล้ว แต่บริการนี้จะไม่ฟรีนะครับ
Cloudflare
Amazon Cloudfront

นอกจากเว็บไซต์ของเราจะสามารถเข้าใช้งานได้อย่างรวดเร็วด้วย CDN แล้วนั้น เรื่องของความปลอดภัยของเว็บไซต์เราก็เป็นส่วนประกอบที่สำคัญไม่แพ้กัน ยังไงอย่าลืมศึกษาเพิ่มเติมกันนะครับ ซึ่งถ้าใครอยากเรียนรู้เพิ่มเติมเรื่องความปลอดภัยของเว็บไซต์ ก็สามารถติดตามบทความที่ผมเขียนได้เลยนะครับ มีอัพเดตเรื่อยๆ แน่นอน

สำหรับใครที่ชื่นชอบบทความนี้ อย่าลืมกดติดตาม Medium: KBTG Life เรามีสาระความรู้และเรื่องราวดีๆ จากชาว KBTG พร้อมเสิร์ฟให้ที่นี่ที่แรก

--

--