Amazon CloudFront หลักการเร่งความเร็ว CDN และบทช่วยสอนการกำหนดค่า: "ย้าย" เว็บไซต์ของคุณไปที่ประตูของผู้ใช้

2026-05-27 阅读 13
1

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

วันนี้เมื่อ "หน้าเว็บโหลดนานกว่า3วินาทีผู้ใช้จะสูญเสียครึ่งหนึ่ง" ความล่าช้านี้เป็นอันตรายถึงชีวิต

จะแก้ไขอย่างไร? คำตอบคือ

CDN (เครือข่ายการกระจายเนื้อหา)

。ในด้านการประมวลผลแบบคลาวด์ Amazon CloudFront เป็น "ไปรษณีย์ด่วนพิเศษ" อันดับต้นๆวันนี้เราจะใช้ภาษาพื้นถิ่นเพื่อเจาะลึกหลักการเร่งความเร็วของ CloudFront อย่างละเอียดและนำคุณไปสู่การกำหนดค่าการต่อสู้จริง

1.หลักการหลัก: CloudFront กำจัดความล่าช้าได้อย่างไร?

หากคุณสรุปตรรกะหลักของ CloudFront ในประโยคเดียวนั่นคือ:

ใช้พื้นที่เพื่อแลกเปลี่ยนเวลาและ "โคลน" ทรัพยากรคงที่ไปยังสถานที่ที่ใกล้กับผู้ใช้มากที่สุด

เพื่อให้บรรลุเป้าหมายนี้ Amazon ได้สร้างเครือข่ายขนาดใหญ่ทั่วโลกซึ่งได้รับการสนับสนุนโดยแนวคิดหลักสามประการ:

[สถานีต้นทาง (S3/EC2)] <---> [Regional Edge Cache] <---> [Edge Location] <---> [ผู้ใช้ปลายทาง]

Origin: สถานที่ที่คุณจัดเก็บข้อมูลเว็บไซต์ต้นฉบับเช่นที่เก็บข้อมูล Amazon S3หรือเซิร์ฟเวอร์ EC2

Edge Location: ศูนย์ข้อมูลที่ใช้งานในเมืองใหญ่ๆทั่วโลก (หลายร้อยจุดทั่วโลก) พวกเขาไม่เรียกใช้รหัสธุรกิจที่ซับซ้อนแต่ทำเพียงสิ่งเดียว (ข้อมูลแคช)

Regional Edge Cache: "คลังสินค้าขนาดใหญ่" ระหว่างไซต์ต้นทางและไซต์ชายขอบเมื่อสถานีชายขอบหมดสต็อกให้ไปที่นี่ก่อนเพื่อค้นหาแทนที่จะแจ้งเตือนสถานีต้นทางโดยตรงเพื่อลดแรงกดดันต่อสถานีต้นทาง

เกิดอะไรขึ้นเมื่อผู้ใช้เข้าเยี่ยมชมเว็บไซต์ที่กำหนดค่า CloudFront?

การเข้าถึงที่ใกล้ที่สุด: ผู้ใช้ในโตเกียวเริ่มคำขอและ CloudFront จะส่งคำขอไปยังไซต์ชายขอบในโตเกียวโดยตรงผ่านการวิเคราะห์ DNS อัจฉริยะ

Cache Hit: หากไซต์ชายขอบนี้เพียงแค่แคชรูปภาพที่ผู้ใช้ต้องการดู (เช่น logo.png) จะส่งรูปภาพไปยังผู้ใช้โดยตรงในไม่กี่วินาทีอาจใช้เวลาเพียงไม่กี่มิลลิวินาทีและเว็บไซต์จะเปิดในไม่กี่วินาที!

Cache Miss: หากมีการเข้าชมไซต์นี้เป็นครั้งแรกและไม่มีรูปภาพนี้ไซต์จะ "ขอสินค้า" จากไซต์ต้นทางไปยังเครือข่ายกระดูกสันหลังภายในของ Amazon ทันทีหลังจากได้รับรูปภาพแล้วจะส่งไปยังผู้ใช้ในขณะที่บันทึกสำเนา (แคช) ด้วยตัวเองเพื่ออำนวยความสะดวกในการเดินทางครั้งต่อไป

ผู้ใช้ปักกิ่งมารับ

นอกเหนือจากการเร่งความเร็วของไฟล์แบบคงที่ (รูปภาพ CSS, JS) แล้ว CloudFront ยังสามารถเร่งความเร็วได้อีกด้วย

คำขอแบบไดนามิก

(เช่นการเข้าสู่ระบบอินเทอร์เฟซ API) แม้ว่าจะไม่สามารถแคชข้อมูลแบบไดนามิกได้แต่ก็ช่วยให้ผู้ใช้สามารถเข้าสู่ไซต์ที่ใกล้ที่สุดได้

เครือข่ายกระดูกสันหลังเคเบิลออปติคอลทั่วโลกที่สร้างขึ้นเองของ AWS

。มันเหมือนกับการขับรถบน "ทางหลวงพิเศษมาตรฐานสูง" หลีกเลี่ยงความแออัดและทางอ้อมของเครือข่ายสาธารณะโดยสิ้นเชิง

2.บทช่วยสอนการต่อสู้จริง: กำหนดค่าการกระจาย CloudFront ครั้งแรกของคุณ

แค่พูดอย่าฝึกสไตล์ปลอมๆลองใช้สถานการณ์ที่พบบ่อยที่สุด-"ใช้ CloudFront เพื่อเร่งเว็บไซต์/รูปภาพแบบคงที่ในที่เก็บข้อมูล Amazon S3" เป็นตัวอย่างและทำตามขั้นตอนการกำหนดค่าที่สมบูรณ์

ขั้นตอนที่1: สร้างการกระจาย (การกระจาย)

เข้าสู่คอนโซลการจัดการ AWS ป้อน CloudFront ในแถบค้นหาแล้วคลิกป้อน

คลิกปุ่ม Create distribution ที่มุมขวาบน

ขั้นตอนที่2: กำหนดค่าการตั้งค่าต้นทาง (Origin Settings)

Origin domain (ชื่อโดเมนต้นทาง): คลิกที่ช่องป้อนข้อมูล AWS จะแสดงรายการทรัพยากรภายใต้บัญชีปัจจุบันของคุณโดยอัตโนมัติเลือกถังเก็บ S3ที่คุณพร้อม (เช่น my-website-bucket.s3.amazonaws.com)

Origin access (การเข้าถึงแหล่งที่มา): ขอแนะนำให้เลือก Origin access control settings (OAC)💡คู่มือการหลีกเลี่ยงหลุม: สามเณรหลายคนตั้งค่าถังเก็บ S3เป็น "เปิดอย่างสมบูรณ์" เพื่อความสะดวกมันอันตรายมาก! หลังจากเลือก OAC แล้วถังเก็บข้อมูล S3ของคุณจะยังคงเป็นส่วนตัวและมีเพียง CloudFront เท่านั้นที่มีสิทธิ์ในการอ่านผู้ใช้ไม่สามารถข้าม CDN เพื่อปัดการเข้าชม S3ของคุณได้โดยตรงซึ่งปลอดภัยและประหยัดเงิน

คลิก Create new OCI เพื่อสร้างกลยุทธ์การควบคุมโดยตรงโดยใช้การกำหนดค่าที่แนะนำเริ่มต้น

ขั้นตอนที่3: กำหนดค่าพฤติกรรมเริ่มต้น (Default cache behavior)

ส่วนนี้จะพิจารณาว่า CDN จัดการกับคำขอของผู้ใช้อย่างไร:

Viewer Protocol policy: เลือก Redirect HTTP to HTTPS เว็บไซต์ปัจจุบันปลอดภัยไว้ก่อนและแปลงทราฟฟิก HTTP ที่ไม่ปลอดภัยเป็น HTTPS ที่ปลอดภัยโดยอัตโนมัติ

Allowed HTTP methods (วิธี HTTP ที่อนุญาต): หากเป็นเพียงการเร่งความเร็วแบบคงที่ให้เลือก GET, HEAD หากเป็นการผสม API แบบไดนามิกให้เลือก GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE

Cache key and

Origin requests (แคชคีย์และคำขอต้นทาง): ขอแนะนำให้เก็บค่าเริ่มต้นแคช allowed และ origin request settings ไว้เลือก CachingOptimized ใน Cache policy (นโยบายการแคช) นี่เป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับการกำหนดค่าอย่างเป็นทางการของ AWS โดยจะเปิดการบีบอัด Gzip และ Brotli โดยอัตโนมัติเพื่อลดขนาดไฟล์โค้ดของคุณได้มากกว่า70% และส่งได้เร็วขึ้น

ขั้นตอนที่4: ตั้งค่าการตั้งค่าและชื่อโดเมนสำรอง

ชั้นราคา: หากธุรกิจของคุณมุ่งเน้นไปที่โลกให้เลือก Use all edge locations (ใช้ไซต์ขอบทั้งหมด) หากงบประมาณมีจำกัดและผู้ใช้ส่วนใหญ่อยู่ในยุโรปและอเมริกาคุณสามารถเลือกชั้นเรียนที่ถูกกว่าได้

Alternate domain name (CNAME): ป้อนชื่อโดเมนที่สวยงามของคุณเองเช่น cdn.yourdomain.com

Custom SSL ใบรับรอง: เนื่องจากคุณใช้ชื่อโดเมนของคุณเองคุณจึงต้องมีใบรับรองคลิกที่ข้อกำหนดด้านล่างเพื่อขอใบรับรอง SSL ฟรีผ่าน AWS Certificate Manager (ACM) หลังจากสมัครสำเร็จแล้วให้รีเฟรชหน้าเพื่อเลือก

Default root object (วัตถุรากเริ่มต้น): ถ้าเป็นเว็บไซต์แบบคงที่ให้กรอก index.html 。

หลังจากตรวจสอบแล้วให้คลิกที่ด้านล่าง

Create distribution

。เสร็จแล้ว! AWS เริ่มปรับใช้การจัดจำหน่ายของคุณทั่วโลกและสถานะจะกลายเป็น

Deploying

。ใช้เวลาประมาณ3ถึง5นาทีเมื่อสถานะกลายเป็น

Enabled

เมื่อคุณได้รับรูปร่าง

D111111abcdef8.cloudfront.net

ชื่อโดเมนเร่งความเร็วอย่างเป็นทางการ

ขั้นตอนที่5: การอัปเดตกลยุทธ์ถังเก็บข้อมูล S3ที่สำคัญ

จำได้ไหมว่าเราเลือก OAC ในขั้นตอนที่สอง? ในตอนนี้ CloudFront ได้สร้างสิทธิ์แล้วแต่คุณต้องไปที่ถังเก็บ S3เพื่อ "เปิดประตูรับ"

ในหน้าเคล็ดลับสำหรับการสร้าง CloudFront ที่ประสบความสำเร็จคุณจะเห็นเคล็ดลับสีเหลืองที่โดดเด่นให้คลิก Copy policy

ไปที่ถังเก็บ S3ของคุณและคลิกที่แท็บ Permissions (สิทธิ์)

ค้นหานโยบาย Bucket (นโยบายถังเก็บข้อมูล) คลิกแก้ไขโพสต์โค้ด JSON ที่คุณเพิ่งคัดลอกและบันทึก

ตอนนี้ไปที่ผู้ให้บริการโดเมนของคุณ (เช่น GoDaddy, Alibaba Cloud, DNSPod) และใส่โดเมนย่อยของคุณ (เช่น

Cdn.yourdomain.com

) เป็น

บันทึก CNAME

ชี้ไปที่ CloudFront สำหรับคุณ

.Cloudfront.net

ชื่อโดเมน

3.การปรับแต่งขั้นสูงและทักษะการแฮ็กแบบประหยัดเงิน

การกำหนดค่าเป็นเพียงการผ่านหากคุณต้องการใช้อย่างรวดเร็วและประหยัดเงินในธุรกิจจริงคุณต้องรู้สามจุดต่อไปนี้:

1.ศิลปะของการรีเฟรชแคช (Invalidation)

เมื่อคุณอัปเดตรูปภาพหรือไฟล์ JS บนเว็บไซต์และแคชใน CloudFront ยังไม่หมดอายุ (TTL ยังไม่หมดอายุ) ผู้ใช้เก่ายังคงเห็นเวอร์ชันเก่า

วิธีแก้ปัญหาที่รุนแรง: ไปที่แท็บ Invalidations บนคอนโซล CloudFront สร้างงานรีเฟรชป้อน/* (รีเฟรชทั้งไซต์) หรือ/images/* สิ่งนี้จะบังคับให้ไซต์ชายขอบทั่วโลกลบแคชและกลับไปที่แหล่งที่มา

โซลูชันที่หรูหรา (แนะนำ): เพิ่มหมายเลขเวอร์ชันหรือไฟล์ Hash ในวิศวกรรมส่วนหน้าตัวอย่างเช่นเมื่ออัปเดตรูปภาพจะไม่ครอบคลุม logo.png แต่ตั้งชื่อว่า logo_v2.png ด้วยวิธีนี้ไม่จำเป็นต้องรีเฟรชแคชด้วยตนเองแคชเก่าจะไม่ถูกยกเลิกและคำขอใหม่จะถูกส่งไปยังไฟล์ใหม่โดยอัตโนมัติซึ่งเป็นมิตรกับไซต์ต้นทางมาก

2.ระวังการสลายแคชและอัตราการคืนสินค้า

หลักฐานที่ CDN ช่วยคุณประหยัดเงินคือ

อัตราการตีแคชสูง

。หากแต่ละคำขอต้องกลับไปที่ไซต์ต้นทางเพื่อรับข้อมูล CDN จะกลายเป็นการแสดงผลและคุณต้องรับภาระค่าบริการข้อมูลเพิ่มเติมอีกสองรายการ (ไซต์ต้นทางไปยัง CDN CDN ไปยังผู้ใช้)

พยายามอย่าใส่ Query String ที่มีการเปลี่ยนแปลงบ่อย (เช่นการประทับเวลา? T = 123456) สิ่งนี้ทำให้ CDN เชื่อว่าทุกคำขอเป็นไฟล์ใหม่เอี่ยมซึ่งจะทำให้เกิดการกลับไปยังแหล่งที่มาอย่างบ้าคลั่ง

3.ใช้ CloudFront Functions เพื่อจัดการกับตรรกะขอบ

บางครั้งคุณต้องการแสดงหน้าในภาษาต่างๆสำหรับผู้ใช้ในประเทศต่างๆหรือเขียน URL ใหม่ในอดีตสิ่งเหล่านี้ต้องเขียนในเซิร์ฟเวอร์ (เช่น Nginx) ตอนนี้คุณสามารถใช้ CloudFront

การคำนวณขอบ (Functions / Lambda @ Edge)

。เรียกใช้โค้ด JavaScript แบบเรียบง่ายสองสามบรรทัดโดยตรงบนไซต์ชายขอบและประมวลผลข้อกำหนดก่อนที่คำขอจะถูกส่งไปยังไซต์ต้นทางความเร็วในการบินเร็วมากและสามารถประหยัดค่าใช้จ่ายในการคำนวณเซิร์ฟเวอร์ได้มาก

บทสรุป

ในยุคอินเทอร์เน็ตปัจจุบันที่มีความล่าช้าหนึ่งวินาทียาวนาน Amazon CloudFront ไม่เพียงแต่เป็นส่วนประกอบทางเทคนิคเท่านั้นแต่ยังเป็น "คูเมือง" สำหรับประสบการณ์ของผู้ใช้ด้วย

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

ในทุกหลุมของนโยบายการอนุญาตและการแคชคุณจะพบว่าการเร่งความเร็วระดับโลกที่ดูเหมือนจะสูงนั้นใช้เวลาเพียงสิบนาทีในการกำหนดค่า

1
← 返回新闻中心