Infra101 - Content Delivery Network (CDN) เข้าเว็บไซต์ได้ลื่นปรื๊ด?
ขอแนะนำซีรีย์ 101 by Engiblog ที่จะพาทุกคนไปทำความรู้จักกับคำศัพท์เบสิกในโลกเทคโนโลยีที่คุณอาจจะรู้อยู่แล้วหรือไม่เคยรู้มาก่อน เรามาเรียนรู้กันไปด้วยกันใน 2 นาทีครับ
เว็บไซต์ที่ดีนอกจากจะมีเนื้อหา (Content) ดีที่ถูกใจผู้เข้าใช้งานเว็บไซต์ (Visitor) แล้วนั้น โครงสร้างพื้นฐาน (Infrastructure) ของเว็บไซต์ก็เป็นอีกส่วนสำคัญที่ควรมีการออกแบบให้รองรับผู้เข้าใช้งานเว็บไซต์และการเข้าถึงเว็บไซต์ได้อย่างรวดเร็วแบบไม่ต้องรอนาน เพราะคนที่เข้าใช้งานก็คงไม่อยากรอนานๆ แน่นอน
เรามาเริ่มจากการดูส่วนประกอบของเว็บไซต์ว่ามีอะไรบ้างกันครับ
- Domain Name หรือชื่อเว็บไซต์ ตัวอย่างเช่น www.google.com, www.kbtg.tech, www.kasikornbank.com
- Web Hosting หรือ Web Server ที่เก็บโค้ดของเว็บไซต์ เพื่อทำหน้าที่ในการส่งข้อมูลเว็บไซต์ไปแสดงผลที่บราวเซอร์ของคนที่เรียกเว็บไซต์
ซึ่งในส่วนของ Web Hosting นี่แหละเป็นโครงสร้างพื้นฐานสำคัญที่ส่งผลต่อความเร็วในการเข้าเว็บไซต์ของเรา
ตัวอย่างปัญหา
ถ้าเราทำเว็บไซต์ขึ้นมา 1 เว็บ แล้วนำเว็บไซต์ดังกล่าวไปฝากไว้บน Web Server ที่อยู่ภายในประเทศไทย เมื่อผู้เข้าชมเว็บไซต์เข้าเว็บจากอินเทอร์เน็ตของประเทศไทย ก็จะเข้าได้เร็ว เนื่องจาก Web Server อยู่ภายในประเทศ แต่ถ้ามีผู้เข้าชมเว็บไซต์เข้าเว็บไซต์จากต่างประเทศ จะเข้าใช้งานได้ช้า เนื่องจากต้องวิ่งผ่านอินเทอร์เน็ตจากต่างประเทศ เข้ามาที่ Web Server ที่อยู่ภายในประเทศไทย
จากกรณีที่ยกตัวอย่างมานี้ ถ้ากลุ่มเป้าหมายของผู้เข้าใช้งานเว็บไซต์คือภายในประเทศไทยเท่านั้น ก็ไม่ได้เป็นปัญหาใดๆ สำหรับเรา แต่ถ้าเราต้องการกลุ่มของผู้เข้าใช้งานเว็บไซต์มาจากทั่วโลกด้วย เราก็ต้องจัดการแก้ไข เพื่อให้ทุกคนสามารถเข้าใช้งานเว็บไซต์ได้อย่างรวดเร็ว ไม่ว่าจะอยู่ที่ไหนกันครับ
สำหรับวิธีแก้ปัญหา คิดแบบตรงไปตรงมา ถ้าอยากให้เว็บไซต์สามารถเข้าได้เร็วจากทั่วโลก แค่เอาเว็บไซต์ไปฝากไว้ทั่วโลกก็ได้ง่ายๆ แต่มันจะมีปัญหาอื่นๆ ตามมาอีกมากมายน่ะสิ เช่น
- ค่าใช้จ่ายที่จะต้องเช่า 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 อยู่แล้ว แต่บริการนี้จะไม่ฟรีนะครับ
นอกจากเว็บไซต์ของเราจะสามารถเข้าใช้งานได้อย่างรวดเร็วด้วย CDN แล้วนั้น เรื่องของความปลอดภัยของเว็บไซต์เราก็เป็นส่วนประกอบที่สำคัญไม่แพ้กัน ยังไงอย่าลืมศึกษาเพิ่มเติมกันนะครับ ซึ่งถ้าใครอยากเรียนรู้เพิ่มเติมเรื่องความปลอดภัยของเว็บไซต์ ก็สามารถติดตามบทความที่ผมเขียนได้เลยนะครับ มีอัพเดตเรื่อยๆ แน่นอน
สำหรับใครที่ชื่นชอบบทความนี้ อย่าลืมกดติดตาม Medium: KBTG Life เรามีสาระความรู้และเรื่องราวดีๆ จากชาว KBTG พร้อมเสิร์ฟให้ที่นี่ที่แรก