ย้ายจาก Cloudflare ไปยัง Bunny.net
(jola.dev)- กรณีย้ายบล็อกส่วนตัวไปยัง bunny.net เพื่อลดการพึ่งพา Cloudflare แบบรวมศูนย์
- bunny.net คือ บริการ CDN จากยุโรป ที่มีฐานอยู่ในสโลวีเนีย ให้ประสิทธิภาพและเครือข่าย PoP ที่มีประสิทธิผลทั่วโลก
- ใช้ Porkbun สำหรับจดทะเบียนโดเมน และย้ายฟังก์ชัน “Orange Cloud” ของ Cloudflare ไปยังสภาพแวดล้อมของ bunny.net
- ตั้งค่า CDN ได้ครบถ้วนผ่านขั้นตอนอย่าง Pull Zone, นโยบายแคช, ใบรับรอง SSL, Edge Rule เป็นต้น
- เพียงฟังก์ชันพื้นฐานอย่าง การป้องกัน DDoS, Origin Shield, Stale Cache ก็ให้ความเสถียรเพียงพอ และอาจเป็น ทางเลือกแทน Cloudflare ที่ใช้งานได้จริง สำหรับผู้ใช้ทั่วไป
ย้ายจาก Cloudflare ไปยัง bunny.net
- สรุปขั้นตอนและวิธีตั้งค่าสำหรับการย้ายบล็อกส่วนตัวไปยัง bunny.net เพื่อลดปัญหาการ พึ่งพา Cloudflare และความเป็นศูนย์กลาง
- แม้ Cloudflare จะมีฟีเจอร์ทรงพลังให้ใช้ฟรี แต่ก็ทำให้เกิดการพึ่งพาบริษัทเดียวมากขึ้น และเมื่อเกิดปัญหาก็อาจส่งผลกระทบต่ออินเทอร์เน็ตในวงกว้าง
- ความไม่สบายใจกับการกระจุกตัวของอินเทอร์เน็ตอยู่กับบริษัทอเมริกัน และประเด็นถกเถียงต่าง ๆ ทำให้เริ่มมองหาทางเลือกอื่น
ภาพรวมของ Bunny.net
- bunny.net เป็น บริษัทจากยุโรป ที่ตั้งอยู่ในสโลวีเนีย และให้บริการ CDN ที่แข่งขันกับ Cloudflare ได้
- มี ประสิทธิภาพและความเร็ว สูงทั่วโลก แม้ขนาดเครือข่าย PoP จะเล็กกว่า แต่มีประสิทธิภาพดี
- ได้รับการประเมินในทางบวกว่าเป็นการสนับสนุนการเติบโตของระบบนิเวศเทคโนโลยียุโรป
ออกจาก Cloudflare
- เดิมใช้ Cloudflare เป็นผู้รับจดทะเบียนโดเมนของบล็อก แต่หา ทางเลือกในยุโรป ที่เหมาะสมได้ยาก
- ตัด INWX ออกเพราะไม่มี WHOIS privacy ฟรี และเลือก Porkbun แทน
- Porkbun ใช้โครงสร้างพื้นฐานของ Cloudflare แต่มี คุณภาพการสนับสนุนที่ดีมาก
- ย้ายฟังก์ชัน “Orange Cloud” ของ Cloudflare (การแคชอัตโนมัติ, การซ่อน origin, ฟังก์ชันป้องกัน) ไปยัง bunny.net
ขั้นตอนการตั้งค่า Bunny.net
-
สร้างบัญชี
- เมื่อลงทะเบียนจะได้รับ เครดิต 20 ดอลลาร์เป็นเวลา 14 วัน และได้เพิ่มอีก 30 ดอลลาร์เมื่อผูกบัตรเครดิต
- ตั้งค่าได้หลังยืนยันอีเมล และใช้ ระบบคิดค่าบริการตามการใช้งาน (ขั้นต่ำเดือนละ 1 ดอลลาร์)
- เปลี่ยนไปสู่โครงสร้างที่ “ผู้ใช้เป็นลูกค้า ไม่ใช่ตัวสินค้า”
-
สร้าง Pull Zone
- เป็นองค์ประกอบหลักสำหรับเปิดใช้งาน CDN โดยกำหนด Origin URL เพื่อเชื่อมต่อเซิร์ฟเวอร์
- หากรันหลายแอปอยู่ ควรกำหนดโดเมนใน Host header
- เลือก Standard tier แล้วตั้งค่า Zone ที่มีราคาต่างกันตามภูมิภาคได้
- ผู้ใช้จากภูมิภาคที่ปิดใช้งานจะถูกเปลี่ยนเส้นทางไปยัง Zone ที่เปิดใช้งานซึ่งอยู่ใกล้ที่สุด
-
เชื่อมต่อ Pull Zone
- กรอกโดเมนเว็บไซต์ใน “Add a custom hostname”
- เพิ่ม CNAME record ตามคำแนะนำเพื่อเชื่อมเส้นทาง CDN (
website.b-cdn.net) - หลัง DNS กระจายแล้ว ให้คลิก “Verify & Activate SSL” เพื่อออกใบรับรอง SSL ให้เสร็จ
- เมื่อสำเร็จ เว็บไซต์จะให้บริการผ่าน bunny.net CDN
การตั้งค่าแคช
- หากเว็บไซต์ส่ง Cache-Control header มาอย่างเหมาะสม bunny.net จะเคารพค่านั้น
- ตรวจสอบการตั้งค่า “Respect origin Cache-Control” ที่ “Caching → General”
- หากตั้ง
no-cacheจะไม่ทำการแคช
- หากไม่มี cache header จะใช้ฟังก์ชัน Smart Cache เพื่อแคชเฉพาะรูปภาพ, CSS, JS เป็นต้นโดยอัตโนมัติ
- ในบล็อกที่สร้างด้วย Elixir Phoenix ได้เพิ่ม custom cache header middleware ให้กับ pipeline
public- ตั้งค่า
cache-control: public, s-maxage=86400, max-age=0เพื่อให้แคชหน้า HTML ได้ด้วย - เมื่อลงบทความใหม่ ต้อง ล้างแคชของ Pull Zone ด้วยตนเอง เพื่อให้ HTML ล่าสุดถูกนำมาใช้
- ตั้งค่า
- ผลการวัดด้วยเครื่องมือ Larm ยืนยันว่า ความเร็วในการตอบสนองดีขึ้น ในหลายตำแหน่งทั่วโลก
การตั้งค่าพื้นฐานที่แนะนำ
- เปิด “Force SSL” เพื่อบังคับทุกคำขอให้ใช้ HTTPS
- มี การป้องกัน DDoS มาให้พื้นฐาน และหากเปิด Origin Shield เพิ่มก็จะช่วยลดภาระของเซิร์ฟเวอร์
- เลือกตำแหน่งใกล้ origin เพื่อรวมศูนย์แคช แล้ว edge server จะตรวจสอบ Origin Shield ก่อน
- ตัวเลือก “Stale Cache: While Origin Offline / While Updating” ช่วยให้
- ยัง ให้บริการคอนเทนต์ที่แคชไว้ต่อไป ได้แม้ origin ล่ม
- ระหว่างอัปเดตก็สามารถแสดงแคชเดิมชั่วคราวได้
- เพิ่ม Edge Rule เพื่อรีไดเร็กต์โดเมน pull zone ที่ถูกสร้างอัตโนมัติไปยังโดเมนจริง
- ชื่อกฎ: “Default domain redirect”
- การทำงาน: Redirect, status code 301
- เงื่อนไข: เมื่อมีคำขอ
*://<slug>.b-cdn.net/*ให้ย้ายไปที่https://jola.dev{{path}}
สรุปและการประเมิน
- การตั้งค่านี้ครอบคลุมเพียง ฟังก์ชันพื้นฐาน ของ bunny.net เท่านั้น Edge Rules, การตั้งค่าแคชขั้นสูง, Security Shield, video streaming, Edge Scripting, Edge Containers ยังไม่ได้กล่าวถึง
- สถิติ, log, metric บนแดชบอร์ดมีรายละเอียดมาก และสามารถติดตามได้ในระดับคำขอว่าแคชหรือไม่และมีปัญหาอะไร
- กำลังย้ายบริการทั้งหมดไปยัง bunny.net ต่อไปในอนาคต และคาดหวังการเปิดตัว storage ที่เข้ากันได้กับ S3
- สำหรับผู้ใช้ทั่วไป ก็เป็น ตัวเลือกที่แข่งขันได้เพียงพอในฐานะทางเลือกแทน Cloudflare
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ถ้าเป็นบทความบล็อกในเชิงบวก ก็น่าจะดีหากระบุให้ชัดเจนเพื่อ การเปิดเผยอย่างโปร่งใส ว่าลิงก์ทั้งหมดในหน้านั้นเชื่อมไปยัง Bunny Affiliate Program
ฉันใช้ bunny.net สำหรับ CDN และ DNS
ฉันกังวลว่าบริการฟรีอาจกลายเป็นเสียเงินในสักวัน เลยคิดว่าจ่ายเงินเล็กน้อยตั้งแต่แรกดีกว่า ขึ้นจาก $2 เป็น $3 ยังโอเค แต่จากฟรีกลายเป็น $20 นั้นเสี่ยง
อีกอย่างฉันชอบ บริษัทเล็กและเป็นอิสระ ที่ใส่ใจนักพัฒนา เลยใช้ bunny.net, transistor.fm และ Plausible Analytics
ฉันรัน SaaS อยู่บน Cloudflare Workers + Pages การ deploy ฟังก์ชันเซิร์ฟเวอร์เลสและเว็บแบบสแตติกจากรีโพเดียวกันได้ทำให้ ประสบการณ์นักพัฒนา ดีมาก
แต่ช่วงหลังเจอปัญหา CDN edge cache เสิร์ฟ HTML เก่าหลัง deploy แล้ว การดีบักยากมากและต้องเดาเองว่าปัญหาอยู่ที่ cache ชั้นไหน
ถึงอย่างนั้น ถ้าจะเริ่มจาก free tier มันยอดเยี่ยมมาก คุณสามารถรันแอป production ที่แทบไม่เสียเงินได้ด้วย Workers, Pages, KV และ R2
ตอนนี้ Cloudflare ไม่ได้เป็นแค่ CDN ธรรมดา แต่เป็น edge platform ถ้าย้ายไป Bunny ได้ง่าย ก็แปลว่าคุณไม่ได้ใช้ความสามารถหลักจริง ๆ ของ Cloudflare
น่าเสียดายที่มันยังไม่รองรับมาตรฐานอย่าง WinterTC ได้ดีนัก การใช้ฟังก์ชัน serve เฉพาะทางแบบ BunnySDK ยิ่งเป็น การผูกติดแบบปิดกั้น หนักกว่าเดิมอีก
เราใช้ Bunny อยู่หลายแบบและพอใจมาก โดยเฉพาะ คุณภาพของทีมซัพพอร์ต ที่ยอดเยี่ยม Cloudflare ก็ดี แต่ถ้าไม่ได้ซื้อซัพพอร์ตระดับองค์กรแบบเสียเงินก็มีข้อจำกัด UpCloud ก็ซัพพอร์ตดีมากเช่นกัน
คนมักพูดว่า “Cloudflare คือจุดล้มเหลวเดียวของอินเทอร์เน็ต” แต่ความจริงซับซ้อนกว่านั้น
ถ้าบริการเล็ก ๆ ถูกใช้งานอย่างหลากหลาย การกระจายของเหตุขัดข้องก็อาจเปลี่ยนไปได้ แต่ในทางกลับกันอาจเกิดเหตุขัดข้องเล็ก ๆ บ่อยขึ้น
และโครงสร้างพื้นฐานของ Cloudflare ก็ไม่ได้รวมศูนย์ทั้งหมด บางบริการก็แยกอิสระตามภูมิภาค
ฉันย้ายมา Bunny ตั้งแต่ปีก่อนและพอใจมาก ฉันชอบที่มันรองรับ CDN ที่ตั้งอยู่ใน EU และด้วย Magic Containers ก็สามารถรัน API ที่ขยายได้ทั่วโลกในราคาระดับ $1 ต่อเดือนได้
บทความนี้อาจดูเหมือนโฆษณา แต่จริง ๆ แล้วเป็นแค่การแชร์ประสบการณ์เฉย ๆ มีการระบุ affiliate link ไว้แล้ว และไม่ได้มีเจตนาปกปิด
มีข้อควรระวังอย่างหนึ่งคือ องค์กรบางแห่ง เช่น สถาบันการศึกษา มัก บล็อก โดเมน
*.b-cdn.netข้อเสียที่น่าเสียดายคือ ไม่มีโฮสติ้งฟรี ต่อให้ทราฟฟิกน้อยก็ยังต้องจ่ายอย่างน้อย 1 ยูโรต่อเดือน (ไม่รวม VAT)
อีกทั้งผู้ให้บริการ DNS ที่รองรับ CNAME flattening ก็มีไม่มาก และการทำ cache invalidation ก็ต้องทำสองรอบกว่าจะมีผลจริง