ตั้งค่าการแจกจ่าย Amazon CloudFront สำหรับ Amazon S3 อย่างไร
Amazon CloudFront ทํางานร่วมกับ Amazon Simple Storage Service (Amazon S3) ได้อย่างราบรื่นเพื่อเร่งความเร็วในการส่งมอบเนื้อหาเว็บของคุณและลดภาระบนเซิร์ฟเวอร์ต้นทาง Amazon S3 เป็นตัวเลือกที่ยอดเยี่ยมสําหรับผู้ที่ต้องการจัดเก็บข้อมูลในระบบคลาวด์และจัดส่งเป็นเนื้อหาเว็บ หากคุณต้องการจัดส่งฟังก์ชันการทํางานหรือเนื้อหาแบบไดนามิก โปรดดูวิธีตั้งค่าการกระจาย Amazon CloudFront สําหรับ Amazon Elastic Compute Cloud (Amazon EC2)
ข้อดีของการตั้งค่าการกระจาย Amazon CloudFront ด้วย Amazon S3 มีอะไรบ้าง
การกระจาย Amazon CloudFront Content Delivery Network (CDN) ทําให้ผู้ใช้ S3 ได้รับประโยชน์มากมาย
ความเร็วในการถ่ายโอนข้อมูลทันที
CloudFront ช่วยให้คุณแสดงเนื้อหาของคุณได้อย่างรวดเร็วให้กับผู้ชมทั่วโลก CloudFront Edge Location จํานวนมากแคชและจัดส่งเนื้อหาของคุณใกล้กับผู้ใช้มากขึ้น ซึ่งช่วยลดเวลาแฝงและความสามารถในการลดภาระจากเซิร์ฟเวอร์ต้นทางของคุณ
ความปลอดภัยและประสิทธิภาพที่ดีขึ้น
CloudFront ยังจํากัดการเข้าถึงบัคเก็ต S3 ของคุณ โดยอนุญาตเฉพาะตําแหน่งข้อมูล CloudFront ให้มีสิทธิ์เข้าถึงเนื้อหาของคุณ ทําให้แอปพลิเคชันของคุณปลอดภัยและตอบสนองได้มากขึ้น
การถ่ายโอนข้อมูลที่คุ้มค่า
ค่าบริการของ CloudFront ช่วยให้คุณปรับแต่งการจัดส่งตามงบประมาณของคุณได้ AWS จะไม่คิดค่าบริการในการถ่ายโอนข้อมูลระหว่างต้นทางที่โฮสต์โดย AWS เช่น S3 และ CloudFront ทําให้การดึงข้อมูลต้นทางเป็นตัวเลือกที่คุ้มค่า
เร่งความเร็วในการโหลดเนื้อหาแบบไดนามิกด้วย CloudFront และ S3 อย่างไร
วิดีโอจะแสดงวิธีกําหนดค่าต้นทางของคุณและเริ่มทดสอบการกระจาย CloudFront CDN ภายใน 15 นาที
ขั้นตอนที่ 1 ไปที่คอนโซล AWS | ขั้นตอนที่ 2 สร้างบัคเก็ต Amazon S3 | ขั้นตอนที่ 3 สร้างการกระจาย CloudFront | ขั้นตอนที่ 4 ระบุการตั้งค่าการกระจายของคุณ | ขั้นตอนที่ 5 กําหนดค่าต้นทางของคุณ | ขั้นตอนที่ 6 กําหนดค่า Origin Access Identity | ขั้นตอนที่ 7 กําหนดค่าพฤติกรรมของแคชเริ่มต้น | ขั้นตอนที่ 8 กําหนดค่า TTL ของคุณ | ขั้นตอนที่ 9 กําหนดค่าคุณสมบัติเพิ่มเติม | ขั้นตอนที่ 10 ทดสอบการกระจาย CloudFront ของคุณ
ขั้นตอนที่ 1 ไปที่คอนโซล AWS
เริ่มต้นโดยเข้าสู่ระบบคอนโซลการจัดการของ AWS ของคุณและเลือก Amazon S3 จากรายการบริการ
ขั้นตอนที่ 2 สร้างบัคเก็ต Amazon S3
ในขั้นตอนดังกล่าว คุณสามารถ:
- สร้างบัคเก็ต S3 หากคุณยังไม่มี ให้เลือกสร้างบัคเก็ต
- ระบุชื่อบัคเก็ตที่สอดคล้องกับ DNS
- เลือกรีเจี้ยนที่คุณต้องการให้บัคเก็ตของคุณตั้งอยู่
จากนั้นคุณสามารถสร้างบัคเก็ตของคุณได้ เมื่อใช้คอนโซลหรือ S3 API คุณสามารถเพิ่มไฟล์ลงในบัคเก็ตของคุณหรือสร้างบัคเก็ตใหม่ได้หากต้องการ เมื่อคุณสร้างบัคเก็ต S3 ในตอนแรก จะใช้เวลาสักครู่ในการกระจายการเปลี่ยนชื่อ DNS ซึ่งโดยปกติจะใช้เวลาไม่เกิน 15 นาที
ขั้นตอนที่ 3 สร้างการกระจาย CloudFront
จากนั้นไปที่ CloudFront จากส่วนการสร้างเครือข่ายและการจัดส่งเนื้อหาของรายการบริการคอนโซล AWS หากคุณเปิด CloudFront แล้ว CloudFront อาจอยู่ในประวัติของคุณเพื่อการเข้าถึงที่รวดเร็วยิ่งขึ้น ในขั้นตอนนี้ คุณสามารถสร้างการกระจายเว็บใหม่โดยคลิกที่สร้างการกระจาย
ขั้นตอนที่ 4 ระบุการตั้งค่าการกระจายของคุณ
ตอนนี้คุณสามารถเริ่มตั้งค่าการกระจายของคุณได้แล้ว การดําเนินการนี้เริ่มต้นโดยการระบุโดเมน S3 ที่คุณสร้างในช่องชื่อโดเมนต้นทาง
ขั้นตอนที่ 5 กำหนดค่าต้นทางของคุณ
ป้อนชื่อโดเมนต้นทางของคุณ หากคุณสร้างบัคเก็ต S3 ในบัญชี AWS เดียวกัน บัคเก็ตนั้นควรปรากฏในรายการดรอปดาวน์ภายในช่อง หากอยู่ในบัญชีอื่น ให้ตรวจสอบการตั้งค่าบัคเก็ตเพื่อให้สิทธิ์การเข้าถึง CloudFront
การให้สิทธิ์การเข้าถึงทําให้ CloudFront สามารถอ่านอ็อบเจกต์จากบัคเก็ตของคุณได้ คุณยังสามารถระบุเส้นทางของต้นทางได้ หากคุณใส่อ็อบเจกต์ทั้งหมดของคุณไว้ในโฟลเดอร์ย่อย
ขั้นตอนที่ 6 กําหนดค่า Origin Access Identity
ในขั้นตอนนี้ คุณสามารถจํากัดการเข้าถึงต้นทาง Amazon S3ของคุณได้ หากคุณเลือกใช่ ระบบจะขอให้คุณสร้าง Origin Access Identity หรือเลือกที่มีอยู่ ทําให้ CloudFront สามารถอ่านอ็อบเจกต์จากบัคเก็ตของคุณได้ คุณยังมีตัวเลือกในการอนุญาตให้ CloudFront อัปเดตนโยบายบัคเก็ตให้คุณ
หากคุณเลือกที่จะไม่จํากัดการเข้าถึง ผู้ใช้อาจสามารถข้าม CloudFront และเข้าถึงเนื้อหาของคุณได้โดยตรงผ่าน URL บัคเก็ต S3 สําหรับเนื้อหาส่วนตัวหรือละเอียดอ่อน สิ่งสําคัญคือต้องตั้งค่าการจํากัดการเข้าถึงที่ถูกต้อง
ในส่วนนี้คุณยังสามารถระบุเส้นทางของต้นทางได้ หากคุณจัดเก็บอ็อบเจกต์ทั้งหมดของคุณไว้ในโฟลเดอร์ย่อย คุณสามารถระบุส่วนหัวต้นทางแบบกำหนดเองที่มีค่าเฉพาะได้ ซึ่ง CloudFront จะส่งต่อไปยังต้นทางในแต่ละคําขอ วิธีนี้จะเป็นประโยชน์ต่อต้นทางแบบกําหนดเอง เนื่องจากจะแสดงคําขอที่มาจาก CloudFront เทียบกับไคลเอ็นต์อื่น
ขั้นตอนที่ 7 กําหนดค่าพฤติกรรมของแคชเริ่มต้น
ต่อมาคุณจะมีตัวเลือกต่างๆ ภายใต้การตั้งค่าพฤติกรรมของแคชเริ่มต้น
นโยบายโปรโตคอลของผู้ชมช่วยให้คุณสามารถเลือกวิธีจัดการโปรโตคอล HTTP และ HTTPS ได้ คุณสามารถเลือกคำขอ Redirect HTTP ไปยัง HTTPSได้ ตัวอย่างเช่น ช่วยให้คุณสามารถสนับสนุนคําขอโดยใช้โปรโตคอลใดโปรโตคอลหนึ่ง คุณยังสามารถระบุให้รองรับเฉพาะ HTTPS ได้ ในกรณีนี้การรับส่งข้อมูล HTTP จะลดลง ซึ่งทําให้มั่นใจได้ว่าคุณจะปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดในการรักษาความปลอดภัยเว็บ
CloudFront จะช่วยให้คุณระบุขั้นตอน HTTP ที่คุณต้องการให้ยอมรับได้ การตั้งค่าเริ่มต้นคือ GET, HEAD การเลือกตัวเลือกใดตัวเลือกหนึ่ง (GET, HEAD, OPTIONS หรือ GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE) จะช่วยให้คุณกําหนดค่าวิธีที่ CloudFront แคชตัวเลือกได้
จากนั้นคุณสามารถระบุส่วนหัว HTTP ที่คุณต้องการส่งต่อไปยังต้นทางของคุณได้ ซึ่งปกติแนะนําให้อนุญาตส่วนหัวตามพฤติกรรมของการตอบสนองและคำขอที่เกี่ยวข้องสําหรับต้นทาง Amazon S3 ของคุณ โดยเฉพาะอย่างยิ่งหากต้นทางของคุณกําลังมองหาส่วนหัวของ HTTP เฉพาะ เพื่อตัดสินใจว่าอ็อบเจกต์ใดที่คุณควรอนุญาตส่งคืน หากคุณส่งต่อส่วนหัว HTTP ทั้งหมด CloudFront จะข้ามชั้นการแคชและไม่ดำเนินการแคชอ็อบเจกต์
ขั้นตอนที่ 8 กำหนดค่า TTL ของคุณ
ในส่วนถัดไปนี้ คุณสามารถระบุ Time to Live (TTL) เพื่อจัดการระยะเวลาที่เนื้อหาจะอยู่ในแคชก่อนหมดอายุ ตามค่าเริ่มต้น จะเลือกใช้ส่วนหัวแคชต้นทาง หรือคุณสามารถปรับแต่งขอบเขตเวลาบนและล่างสําหรับอ็อบเจกต์ที่จะจัดเก็บไว้ในแคช CloudFront ของคุณ
หากคุณเลือกที่จะแก้ไขการตั้งค่าเหล่านี้ คุณจะได้รับแจ้งให้ป้อน TTL ต่ำาสุดและสูงสุดเป็นวินาที จากนั้นหากส่วนหัวของคุณส่งคืนค่าที่ไม่อยู่ในขอบเขตค่าต่ำสุดหรือสูงสุด CloudFront จะใช้ TTL ต่ำสุดหรือสูงสุดของคุณ หากอยู่ในขอบเขตเหล่านั้น CloudFront จะใช้ค่าที่ส่งคืนจากต้นทางของคุณ
หากต้นทางของคุณไม่ส่งคืนส่วนหัวการควบคุมแคช จะใช้ TTL เริ่มต้นแทน ในวิดีโอตัวอย่างของเรา ค่าเริ่มต้นจะถูกตั้งค่าเป็น 86,400 วินาทีซึ่งเท่ากับ 24 ชั่วโมง
ขั้นตอนที่ 9 กำหนดค่าคุณสมบัติเพิ่มเติม
ในส่วนถัดไปนี้ คุณสามารถเลือกเนื้อหาแคชตามคุกกี้และพารามิเตอร์สตริงการสืบค้นได้
เช่นเดียวกับส่วนหัว HTTP คําแนะนําจะอนุญาตเฉพาะคุกกี้หรือค่าสตริงการสืบค้นที่เกี่ยวข้องกับต้นทางของคุณเท่านั้น คุณยังสามารถส่งต่อค่าเหล่านี้และ CDN จะยังคงดำเนินการแคชอยู่ โปรดระวังเมื่อเลือกส่งต่อทั้งหมด ซึ่งอาจลดอัตราการพบข้อมูลในแคชของคุณได้อย่างมากหาก CloudFront ส่งต่อทุกรายการ ด้วยเหตุนี้ คุณอาจมีอ็อบเจกต์จํานวนมากที่แคชหลายครั้ง เนื่องจากความแตกต่างของค่าการสืบค้นและคุกกี้มากมายที่เป็นไปได้
จากนั้นคุณจะมีตัวเลือกเพิ่มเติมในช่องต่อไปนี้:
- คุณสามารถเลือก Smooth Streaming หากคุณกำลังจัดส่งวิดีโอตามความต้องการ (VOD) ด้วย CloudFront
- คุณสามารถเลือกจํากัดการเข้าถึงของผู้ชม หากผู้ใช้กำลังจะเข้าถึงเนื้อหาส่วนตัวใน CloudFront
- คุณสามารถเลือกบีบอัดอ็อบเจกต์โดยอัตโนมัติ หาก CloudFront ของคุณกำลังจะให้บริการไฟล์บีบอัด
- คุณสามารถสร้างฟังก์ชันต่างๆ เพื่อเรียกดำเนินการโดยใช้ส่วนเหตุการณ์ Lambda@Edge สําหรับข้อมูลเพิ่มเติม โปรดดูที่การปรับแต่งที่ Edge ด้วย Lambda@Edge
ภายใต้การตั้งค่าการกระจาย คุณสามารถระบุส่วนของเครือข่าย CloudFront ที่คุณต้องการใช้ได้ ตามค่าเริ่มต้น CloudFront จะใช้ Edge Location ทั้งหมดเพื่อประสิทธิภาพที่ดีที่สุด ซึ่งช่วยสนับสนุนให้เนื้อหาของคุณเร็วที่สุดเท่าที่เป็นไปได้ทั่วโลก
หากคุณคาดหวังผู้ชมเฉพาะบางรีเจี้ยน เช่น สหรัฐอเมริกา แคนาดา และยุโรป ดังนั้นคุณสามารถระบุเฉพาะรีเจี้ยนเหล่านั้นเป็นระดับค่าบริการที่ต่ำลงได้ ซึ่งไม่ได้หมายความว่า ผู้ชมที่อยู่นอกเหนือจากรีเจี้ยนหล่านั้นจะไม่สามารถเข้าถึงเนื้อหาของคุณ CloudFront จะกําหนดเส้นทางไปยัง Edge Location ที่ใกล้ที่สุด หากคุณจะใช้ AWS Web Application Firewall (AWS WAF) กับ CloudFront คุณสามารถกําหนดการตั้งค่าเหล่านั้นได้ที่นี่
ก่อนที่คุณจะบันทึกการกระจาย สิ่งสําคัญคือต้องจัดการใบรับรอง Secure Sockets Layer Certificate (SSL) มีสองตัวเลือกดังนี้:
- ใช้ใบรับรอง CloudFront เริ่มต้น
- อัปโหลดหรือขอใบรับรอง SSL แบบกําหนดเองจาก AWS Certificate Manager (ACM) และเชื่อมโยงใบรับรองกับการกระจาย CloudFront ของคุณ ซึ่งเหมาะอย่างยิ่งหากคุณใช้โดเมนแบบกําหนดเอง
สุดท้ายคุณสามารถใช้การตั้งค่าที่เหลือเพื่อระบุ:
- HTTP เวอร์ชันใดที่คุณต้องการใช้
- ไม่ว่าคุณจะใช้การบันทึกข้อมูลหรือไม่ และไม่ว่าจะเป็นบัคเก็ตสำหรับข้อมูลบันทึกใด CloudFront ควรใช้เพื่อจัดเก็บบันทึกการเข้าถึงใดๆ
- ไม่ว่าการบันทึกข้อมูลคุกกี้จะทํางานอยู่หรือไม่
ในขั้นตอนดังกล่าว คุณสามารถป้อนคําอธิบายและสร้างการกระจายได้ เมื่อบันทึกแล้ว จะใช้เวลาประมาณ 15 นาทีเพื่อให้การกระจายของคุณนำไปใช้จริงทั่วโลก
ขั้นตอนที่ 10 ทดสอบการกระจาย CloudFront ของคุณ
เมื่อการกระจายพร้อมแล้ว คุณสามารถคลิกเพื่อตรวจสอบการตั้งค่าของคุณ หน้าจอแรกจะแสดงแท็บจํานวนหนึ่งและการตั้งค่าการกําหนดค่าที่คุณระบุ ในขั้นตอนดังกล่าว คุณสามารถเพิ่มต้นทางเพิ่มเติมและหลายพฤติกรรมของแคช หากจําเป็น
CloudFront ยังช่วยให้คุณสร้างหน้าข้อผิดพลาดแบบกําหนดเองหรือเปลี่ยนระยะเวลาที่การตอบสนองต่อข้อผิดพลาดจะอยู่ในแคช โดยเลือกสร้างการตอบสนองต่อข้อผิดพลาดของลูกค้า คุณสามารถปรับการตั้งค่าเหล่านี้กับแต่ละโค้ดข้อผิดพลาด HTTP ได้ ตัวอย่างเช่น คุณต้องการลองใหม่ทุก 403 คุณสามารถระบุ TTL ขั้นต่ำที่ 0 วินาทีได้ ตามค่าเริ่มต้น CloudFront จะแคชทุกรายการเป็นเวลา 300 วินาทีเพื่อลดภาระบางส่วนจากต้นทาง คุณยังสามารถสร้างการตอบสนองต่อข้อผิดพลาดแบบกําหนดเองสําหรับแต่ละโค้ดข้อผิดพลาดได้หากต้องการ
ในแท็บข้อจํากัด คุณสามารถเปิดใช้ข้อจํากัดทางภูมิศาสตร์เพื่ออนุญาตหรือไม่อนุญาตให้ผู้ชมในตำแหน่งเฉพาะเห็นเนื้อหาของคุณ แท็บคำขอยกเลิกการใช้งาน จะช่วยให้คุณลบอ็อบเจกต์แบบกําหนดเองออกจากแคช Edge CloudFront ได้ สุดท้ายคุณสามารถใช้แท็บแท็ก เพื่อปรับใช้แท็กแบบกําหนดเองซึ่งช่วยให้คุณจัดระเบียบและระบุการกระจายของคุณ
เมื่อเสร็จแล้ว ให้คัดลอกโดเมนและวางลงในเบราว์เซอร์ของคุณเพื่อดูการกระจายของคุณที่กำลังการดําเนินการ คุณยังสามารถเรียนรู้วิธีจัดส่งเนื้อหาแบบไดนามิกของแอปโดยใช้ CloudFront กับอินสแตนซ์เว็บเซิร์ฟเวอร์ Amazon EC2
เทมเพลต Amazon CloudFormation ช่วยให้คุณเริ่มต้นใช้งาน CloudFront
เทมเพลต Amazon CloudFormation ยังช่วยให้คุณเริ่มต้นใช้งาน CloudFront เทมเพลตนี้จะเปิดใช้บัคเก็ต S3 เพื่อจัดเก็บไฟล์แบบคงที่ของคุณตามขนาด จากนั้นจัดส่งเนื้อหาดังกล่าวไปยังผู้ใช้ของคุณผ่าน CloudFront CDN
สําหรับข้อมูลเพิ่มเติม โปรดอ่านโพสต์บล็อกหัวข้อAmazon S3 + Amazon CloudFront: การจับคู่ที่ดำเนินการในระบบคลาวด์ และรับเทมเพลต CloudFormation
ทรัพยากรเพิ่มเติมเกี่ยวกับการจัดส่งเนื้อหาด้วย CloudFront
ไม่แน่ใจว่าจะเริ่มต้นใช้งาน CloudFront อย่างไร ดูคู่มือเริ่มต้นใช้งาน Content Delivery Network ของเรา หรือไปที่ฮับเอกสารประกอบเครือข่ายการจัดส่งเนื้อหาของ Amazon Web Services
ดูทรัพยากรเหล่านี้เกี่ยวกับการจัดการการกระจาย CloudFront บน S3 ของคุณได้ในศูนย์รวมข้อมูล Premium Support ของเรา:
แหล่งข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Amazon CloudFront