CDN ย่อมาจาก Content Delivery Network คือ บริการที่ทำให้สามารถเรียกเว็บไซต์, เข้าถึง หรือดาวน์โหลดข้อมูลต่างๆ ที่ผ่านอินเทอร์เน็ตสามารถเข้าถึงข้อมูลได้อย่างรวดเร็ว ไม่ว่าจะอยู่ที่ใดของโลกใบนี้ก็ตาม เราลองมานึกภาพตามกันก่อนที่จะทำความรู้จักแบบลงรายละเอียดกันครับ
ตัวอย่างปัญหา
ถ้าเราทำเว็บไซต์ขึ้นมา 1 เว็บ แล้วนำเว็บไซต์ดังกล่าว ฝากไว้บน Web Server ที่อยู่ภายในประเทศไทย
- เมื่อผู้เข้าชมเว็บไซต์เข้าเว็บจากอินเทอร์เน็ตจากประเทศ จะเข้าได้เร็วเนื่องจาก Web Server อยู่ภายในประเทศ
- แต่ถ้ามีผู้เข้าชมเว็บไซต์เข้าเว็บไซต์จากต่างประเทศ จะเข้าใช้งานได้ช้าเนื่องจากต้องวิ่งผ่านอินเทอร์เน็ตจากต่างประเทศเข้ามาที่ Web Server ที่อยู่ภายในประเทศไทย
จากตัวอย่างปัญหาที่เกิดขึ้น จะไม่เป็นปัญหาถ้ากลุ่มของผู้เข้าใช้งานเว็บไซต์ คือ ภายในประเทศไทยเท่านั้น แต่ถ้ากลุ่มของผู้เข้าใช้งานเว็บไซต์ต้องมาจากทั่วโลก ก็คงต้องแก้ไขปัญหาดังกล่าวแล้วล่ะครับ
คิดวิธีการแก้ไขปัญหา
คิดแบบตรงไป ตรงมาคือ ก็เอาเว็บไซต์ไปฝากไว้ทั่วโลกก็ได้ ง่ายๆ แต่จะมีปัญหาอื่นๆ ตามมา เช่น
- ค่าใช้จ่ายที่จะต้องเช่า Web Server หลายๆที่ทั่วโลก
- จะจัดการ Web Traffic ของผู้เข้าใช้งานเว็บไซต์ของแต่ละประเทศ หรือทวีปอย่างไรเนื่องจากผู้เข้าใช้งานเว็บไซต์
- Web Traffic จัดการได้ยากมาก ถ้าไม่มีการแบ่งโดเมนเนม (Domain Name) แบบรายประเทศ
- ถ้ามีการแบ่งโดเมนเนม (Domain Name) แบบรายประเทศก็จะต้องเสียเวลาในการจัดการแบบมหาศาล
- เมื่อมีการวาง Web Server หลายที่ ก็ต้องมีการบริหารจัดการหลายที่
- Code และ Content ต้องมีการ update หลายจุด
- และอื่นๆ อีกมากมาย (แค่คิดก็ปวดหัวแล้ว….)
แก้ไขปัญหาโดยการใช้งาน CDN กันดีกว่า
หลักการทำงานของ CDN คือ กลุ่มของ Server ขนาดใหญ่ที่มีการวางเป็นจุดๆ เรียกว่า Node (หรือบางคนเรียก Edge) กระจายไปอยู่ในประเทศ หรือทวีปต่างๆ ทั่วโลกโดยมีการซิงค์ (Sync) ข้อมูลจาก Node หนึ่งไปอีก Node หนึ่ง เมื่อมีการ update ข้อมูลโดยที่เราไม่ต้องทำการ update เอง และเมื่อมีการเรียกใช้ข้อมูล หรือเข้าชมเว็บไซต์ระบบ CDN ก็จะทำการหาเส้นทางของข้อมูลที่วิ่งผ่านอินเทอร์เน็ตเพื่อเข้าถึง Server ที่เป็นเส้นทางสั้นที่สุด เพื่อความรวดเร็วในการเข้าถึงของข้อมูลนั้นๆ
จากรูปเป็นตัวอย่างที่ผู้เข้างานเว็บไซต์ที่อยู่ภายในประเทศไทย ก็จะทำการวิ่งไปที่ Server CDN Node ที่อยู่ประเทศไทย
ข้อควรระวังของการใช้งาน CDN
- เนื่องจากการทำงานของ CDN ต้องมีการซิงค์ข้อมูลไปที่ Node อาจจะทำให้ข้อมูลไม่ Realtime เท่าที่ควร (ขึ้นอยู่กับผู้ให้บริการ)
- ต่อจากข้อ 1. ควรมีวิธีการตรวจสอบว่ามีการซิงค์ข้อมูลเรียบร้อยหรือไม่
ตัวอย่างผู้ให้บริการ CDN