การซื้อบัญชี Google Cloud: หลักการเร่งความเร็ว GoogleCloudCDN และบทช่วยสอนการกำหนดค่า
ในแวดวงทะเลและทีม SaaS ข้ามชาติเมื่อพูดถึงการเร่งความเร็วของเครือข่ายปฏิกิริยาแรกของหลายๆคนคือการซื้อ CDN ของบุคคลที่สามแต่ถ้าธุรกิจเซิร์ฟเวอร์หรือที่เก็บข้อมูล Cloud ของคุณถูกวางไว้บน Google Cloud (GCP) แล้วให้เลิกใช้เนทีฟ
Google Cloud CDN
มันเป็นเพียงความรุนแรง
พี่น้องหลายคนไม่รู้อะไรเกี่ยวกับพลังของ Google วันนี้เราจะฉีกเอกสารอย่างเป็นทางการที่คลุมเครือออกและพูดคุยเป็นภาษาท้องถิ่น: เหตุใด Google Cloud CDN จึงอนุญาตให้ผู้ใช้ทั่วโลกเข้าถึงคุณได้เร็วพอๆกับ LAN ในพื้นที่และเราจะหลีกเลี่ยงหลุมที่ซ่อนอยู่ในการกำหนดค่าจริงได้อย่างไร
ส่วนที่1: การลดขนาดของ Google Cloud CDN: สถาปัตยกรรม Anycast
CDN ธรรมดาทำงานอย่างไร? หลังจากที่คุณติดตั้งชื่อโดเมนแล้วผู้ผลิต CDN จะให้ที่อยู่ CNAME แก่คุณเมื่อผู้ใช้เข้าถึงคำขอของผู้ใช้จะถูก "เปลี่ยนเส้นทาง" ไปยังโหนดที่ใกล้ที่สุดผ่านการแยกวิเคราะห์ DNS วิธีนี้เป็นแบบดั้งเดิมมากแต่มีข้อบกพร่อง:
การแก้ปัญหา DNS ต้องใช้เวลาและมักจะแก้ไขสถานที่ที่ไม่ถูกต้องเมื่อข้ามตัวดำเนินการ
และ Google ได้ใช้เส้นทางที่แตกต่างไปจากเดิมอย่างสิ้นเชิงโดยใช้เทคโนโลยีสีดำที่ดีที่สุดในอุตสาหกรรมอินเทอร์เน็ต-
ออกอากาศ IP เดียวทั่วโลก (Global Anycast IP)
。
คุณสามารถดูแผนภาพสถาปัตยกรรมด้านบนนี่คือความเหี้ยมโหดของ Google Cloud Network:
คนทั้งโลกแชร์ IP: ไม่ว่าผู้ใช้ของคุณจะอยู่ในลอสแองเจลิส (LAX) หรือนิวยอร์ก (NYC) เมื่อพวกเขาเยี่ยมชมเว็บไซต์ของคุณ IP เครือข่ายสาธารณะที่แยกวิเคราะห์จะเหมือนกันทุกประการ
การสกัดกั้นโหนดขอบโดยตรง: ดังแสดงในรูปผู้ใช้ในลอสแองเจลิสเริ่มคำขอทันทีที่การรับส่งข้อมูลออกไปโหนด Edge POP LAX ท้องถิ่นของ Google ถูกบล็อกโดยตรงที่เลเยอร์การกำหนดเส้นทางเครือข่าย
แหล่งอินทราเน็ตที่น่ากลัว: จะเกิดอะไรขึ้นหากไม่มีข้อมูลที่ผู้ใช้ต้องการใน Edge Caches? หากคุณเปลี่ยนเป็น CDN ธรรมดาคุณต้องใช้เครือข่ายสาธารณะที่แออัดและกลับไปที่แหล่งมหาสมุทรหลังจากโหนดขอบของ Google สกัดกั้นการรับส่งข้อมูลมันจะถูกยัดเข้าไปในเครือข่ายกระดูกสันหลังส่วนตัวของ Google (Google Network) ที่ครอบคลุมทั่วโลกโดยตรงและไฟสีเขียวจะกะพริบกลับไปที่ไซต์ต้นทางของคุณ
Old Bird Vacular: ด้วย Google Cloud CDN ผู้ใช้ได้ดาวน์โหลดหน้าเว็บบนโหนด Google ซึ่งอยู่ห่างจากเขาเพียงไม่กี่กิโลเมตรก่อนที่จะเริ่มการค้นหา DNS ข้ามพรมแดนที่ยาวนาน
ส่วนที่2: สอนการกำหนดค่า Google Cloud CDN
ใน GCP,
Cloud CDN ไม่สามารถสร้างได้อย่างอิสระ
。เป็น "กาฝาก" โดยตรงใน
GCP โหลดทั่วโลก
สมดุล (Cloud Load Balancing, HttpClient/HTTPS LB)
บนสวิตช์
ลองเพิ่มความเร็วของเว็บไซต์ที่โฮสต์บน Compute Engine เป็นตัวอย่างและทำตามขั้นตอนการกำหนดค่ามาตรฐาน:
ขั้นตอนที่1: สร้างโหลดบาลานซ์และเปิดสวิตช์ CDN
เข้าสู่คอนโซล GCP ค้นหาบริการเครือข่าย $ \ rightarrow $ โหลดบาลานซ์ (Load Balancing) คลิกสร้าง
เลือก HTTPS Load Balancing (โหมดการปรับใช้ทั่วโลก) จากอินเทอร์เน็ตไปยังเครื่องเสมือนของฉัน
เมื่อกำหนดค่าบริการแบ็คเอนด์ให้เลือกกลุ่มอินสแตนซ์ของเซิร์ฟเวอร์ที่คุณใส่หน้าเว็บ
[Core One]: ที่ด้านล่างของการกำหนดค่าบริการส่วนหลังคุณจะเห็นช่องทำเครื่องหมายที่ไม่เด่น: "Enable Cloud CDN" (เปิดใช้งาน Cloud CDN) ติดมันโดยไม่ลังเล!
ขั้นตอนที่2: เลือก "โหมดแคช" ของคุณ (โหมดแคช)
หลังจากตรวจสอบ CDN ระบบจะให้คุณเลือก
โหมดแคช
นี่คือตัวเลือกที่สำคัญในการกำหนดประสิทธิภาพและกระเป๋าสตางค์ของคุณ:
โหมด1: ใช้หัวตอบสนองสถานีต้นทาง (Default) GCP จะแคชเฉพาะเมื่อโค้ดแบ็คเอนด์ของคุณ (เช่น Nginx หรือ Node.js) ส่งคืน Cache-Control: public, max-age = 3600อย่างชัดเจนหากรหัสแบ็คเอนด์ของคุณไม่ได้รับการติดตั้ง CDN จะไร้ประโยชน์และการเข้าชมจะทะลุทะลวงทุกวัน
โหมด2: แคชเนื้อหาแบบคงที่ทั้งหมด (RECOMMENDED) แนะนำให้ไปทะเลสถานีอิสระหรือแอพเลือกสิ่งนี้ Google จะจดจำรูปภาพวิดีโอ CSS และ JS สำหรับแคชโดยอัตโนมัติ
โหมด3: บังคับให้แคชเนื้อหาทั้งหมด (Force Cache) ไม่ว่าแบ็กเอนด์จะพูดอย่างไรแคชจะตาย [Dakeng] เว้นแต่เว็บไซต์ของคุณจะเป็นหน้าเว็บที่ตายแล้วทั้งหมดอย่าเลือกสิ่งนี้! เมื่อเลือกแล้วสถานะการเข้าสู่ระบบของผู้ใช้ตะกร้าสินค้าและ API ที่ละเอียดอ่อนในพื้นหลังจะถูกแคชโดยเครือข่ายทั้งหมดซึ่งจะทำให้เกิดอุบัติเหตุหมายเลขซีเรียลที่ร้ายแรงโดยตรง
ส่วนที่3: คู่มือ "การประหยัดเงินและการช่วยชีวิต" สำหรับการดำเนินงานและการบำรุงรักษา
สิ่งต่างๆของ Google ใช้งานง่ายและใช้งานง่ายแต่ "แพง" ก็เป็นเรื่องจริงเช่นกันหากการกำหนดค่าไม่เหมาะสมการเรียกเก็บเงินรายเดือนสามารถทำให้คุณเจ็บปวดได้สามจุดต่อไปนี้เป็นบทเรียนของนกเก่าที่ใช้เงินจริง:
1.ระวังการเรียกเก็บเงินซ้ำซ้อนที่เกิดจาก "Dynamic API Back Source"
หากชื่อโดเมนของคุณ (เช่น
Api.yourdomain.com
) ทั้งหมดเชื่อมต่อกับโหลดบาลานซ์ที่เปิด CDN แม้ว่าคุณจะใส่
/Api/
เส้นทางถูกตั้งค่าให้ไม่แคชแต่การรับส่งข้อมูลแบบไดนามิกเหล่านี้จะยังคงผ่านเครือข่ายของโหนด CDN
Google กำหนดเป้าหมาย
ตาม
การจราจรแบบไดนามิกที่ผ่านโหนด CDN แต่พลาด (CDN Cache Misses)
, ค่าธรรมเนียมการรับส่งข้อมูลเครือข่ายที่เรียกเก็บมักจะแพงกว่าการเยี่ยมชมเครือข่ายสาธารณะที่มีภาระงานเท่ากันเล็กน้อย
แนวทางที่ถูกต้อง: ทรัพยากรแบบคงที่ (รูปภาพไฟล์ส่วนหน้า) ใช้โดเมนย่อยที่เป็นอิสระ (เช่น static.yourdomain.com) และเปิด CDN API แบบไดนามิกที่บริสุทธิ์ใช้โดเมนย่อยอื่นโดยไม่ต้องเปิด CDN และใช้โหลดบาลานซ์โดยตรงดังนั้นการเรียกเก็บเงินจะดูดีขึ้นมาก
2.ใช้ประโยชน์จาก "TTL Coverage" เพื่อป้องกันไม่ให้สถานีต้นทางถูกชะล้าง
ในการกำหนดค่าขอแนะนำให้ตั้งค่าด้วยตนเอง
"เวลาความล้มเหลวสูงสุดของแคช (Maximum TTL)"
。ตัวอย่างเช่นตั้งเป็น7วัน
ด้วยวิธีนี้แม้ว่า Nginx ที่แบ็คเอนด์ของคุณจะเขียนไฟล์คอนฟิกูเรชันผิดโดยไม่ได้ตั้งใจส่งผลให้ภาพนิ่งบางภาพไม่มีส่วนหัวแคช Google จะบังคับให้คุณมีทราฟฟิก7วันที่โหนดขอบและจะไม่ปล่อยให้คำขอของผู้ใช้ที่ปั่นป่วนโดยตรงทำลายเซิร์ฟเวอร์แบ็คเอนด์ที่เปราะบางของคุณ
3.วิธีการทำความสะอาดแคชข้อผิดพลาดในไม่กี่วินาที (Cache Invalidation)
รหัสออนไลน์และมีข้อบกพร่องฉันควรทำอย่างไรหาก JS ที่ไม่ถูกต้องถูกแคชโดย Google ทั่วโลก
อย่าตกใจไปที่หน้าโหลดบาลานซ์ของคุณคลิกเพื่อเข้าสู่แท็บ CDN และค้นหา
"Invalidate Cache" (ทำให้แคชไม่ถูกต้อง)
。
ป้อนในเส้นทาง
/*
(ทำความสะอาดทั้งไซต์) หรือ
/Static/js/main.js
(ทำความสะอาดไฟล์เดียว) ต้องขอบคุณเครือข่ายกระดูกสันหลัง Anycast ทั่วโลกของ Google ความเร็วในการรีเฟรชจึงเร็วมากโดยปกติ
ภายใน1ถึง2นาที
สามารถกำจัดแคชข้อผิดพลาดทั้งหมดของโหนดทั่วโลกได้
สรุป
Google Cloud CDN ไม่ใช่ "เครื่องมือประหยัดแบนด์วิดท์" ง่ายๆแต่ได้รับการแก้ไขโดยการลงทุนหลายล้านล้านดอลลาร์ของ Google ในช่วงสองทศวรรษที่ผ่านมา
ทางหลวงเครือข่ายส่วนตัวชั้นนำของโลก
, เช่าให้คุณโดยตรง.
ตราบใดที่คุณชี้แจงความสัมพันธ์ทางชีวภาพระหว่างมันกับการทำโหลดบาลานซ์ให้จับคู่กฎการแคชของการแยกแบบไดนามิกและแบบไดนามิกและหลีกเลี่ยงกับดักการเรียกเก็บเงินของแหล่งรับส่งข้อมูลแบบไดนามิกอย่างระมัดระวังก็สามารถใช้ IP เดียวที่เรียบง่ายเพื่อช่วยให้คุณจัดการได้อย่างง่ายดายการเข้าถึงพร้อมกันสูงและรวดเร็วโดยผู้ใช้หลายร้อยล้านคนทั่วโลก

