5 คะแนน โดย GN⁺ 2024-01-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

วิธีลดค่าใช้จ่ายการโอนย้ายข้อมูลบน AWS ได้ 99%

  • เมื่อโอนย้ายข้อมูลบน AWS มีโอกาสเผลอจ่ายค่าใช้จ่ายสูงเกินจำเป็นได้ง่าย โดยเฉพาะหากไม่ระวังเรื่องการรับส่งข้อมูล ค่าใช้จ่ายอาจสูงมาก
  • AWS คิดค่าบริการการรับส่งข้อมูลดังนี้:
    • การโอนข้อมูลจาก AWS ออกสู่อินเทอร์เน็ตสาธารณะ คิดค่าบริการตั้งแต่ $0.09 ถึง $0.154 ต่อ GB ขึ้นอยู่กับภูมิภาค
    • การโอนข้อมูลข้ามรีเจียนของ AWS คิดค่าบริการตั้งแต่ $0.02 ถึง $0.147 ต่อ GB ซึ่งเป็นค่าใช้จ่ายสำหรับการโอนข้อมูลที่ไม่ได้ออกนอกเครือข่าย AWS
    • การโอนข้อมูลระหว่าง Availability Zone ภายในรีเจียนเดียวกัน มีค่าใช้จ่าย $0.01 ต่อ GB และอัตรานี้เหมือนกันทุกรีเจียน

การใช้ AWS PrivateLink และ VPC Endpoint

  • การใช้ AWS PrivateLink และ VPC Endpoint ช่วยให้ข้อมูลไม่ออกนอกเครือข่าย AWS ซึ่งเป็นประโยชน์ทั้งในด้านราคาและความปลอดภัย
  • ฟีเจอร์เหล่านี้ไม่ได้ให้ใช้ฟรี และมีข้อจำกัดรวมถึงความซับซ้อนด้านราคาในตัวเอง แต่สามารถดูรายละเอียดเพิ่มเติมได้จาก AWS และ Vantage

เลี่ยงค่าใช้จ่ายการโอนข้อมูลด้วย S3

  • Storage class ส่วนใหญ่ของ S3 จัดเก็บข้อมูลในระดับรีเจียน ไม่ใช่ระดับ Availability Zone
  • Storage class บางประเภท เช่น S3 One Zone-Infrequent Access และ S3 Express One Zone จะเก็บข้อมูลไว้ใน Availability Zone เดียวเท่านั้น
  • ข้อมูลที่เก็บใน S3 bucket มาตรฐานสามารถใช้งานได้เท่าเทียมกันจากทุก AWS Availability Zone และการดาวน์โหลดข้อมูลจาก S3 นั้นไม่มีค่าใช้จ่าย (จะมีเพียงค่ารับส่งข้อมูลมาตรฐานเมื่อโอนข้ามรีเจียนหรือออกสู่อินเทอร์เน็ตสาธารณะ)

เดโม

  • สร้างบัญชี AWS ใหม่เพื่อไม่ให้มีสัญญาณรบกวนในการวัดราคา
  • ทำการทดลอง 2 แบบ:
    1. ในการทดลองแรก วาง EC2 instance สองตัวไว้ใน VPC ที่มี private subnet แล้วโอนไฟล์ขนาด 1TB จาก instance us-east-1a ไปยัง instance us-east-1b
    2. ในการทดลองที่สอง วาง instance สองตัวไว้ใน VPC ที่มี S3 Gateway endpoint จากนั้นอัปโหลดไฟล์ขนาด 1TB จาก instance us-east-1a ไปยัง S3 bucket แล้วดาวน์โหลดไฟล์จาก instance us-east-1b

ผลลัพธ์

  • การทดลองโอนข้อมูลแบบมาตรฐานมีค่าใช้จ่าย $20 ตามที่คาดไว้
  • การทดลองโอนข้อมูลผ่าน S3 มีเพียงค่าเก็บข้อมูลไม่กี่เซ็นต์ และในทางปฏิบัติไม่ได้ถูกคิดค่าเก็บข้อมูล S3 เลย

บทสรุป

  • AWS ทำการจำลองข้อมูล S3 ระหว่าง Availability Zone โดยค่าใช้จ่ายนี้ถูกรวมอยู่ในค่า storage ของ S3 แล้ว
  • การอัปโหลดข้อมูลไปยัง S3 แล้วลบทิ้งทันที สามารถลดค่าใช้จ่ายได้ถึง 99%
  • วิธีนี้ไม่ได้มาแทนที่โค้ดการโอนข้อมูลเดิม และอาจมี latency สูงกว่าการเชื่อมต่อเครือข่ายโดยตรง แต่หากเป้าหมายหลักคือการลดต้นทุน นี่เป็นวิธีที่มีประสิทธิภาพ

ความเห็นของ GN⁺

  • บทความนี้นำเสนอวิธีสร้างสรรค์ในการลดค่าใช้จ่ายการโอนข้อมูลบน AWS ซึ่งอาจช่วยให้บริษัทหรือผู้ใช้รายบุคคลที่ใช้บริการคลาวด์ประหยัดค่าใช้จ่ายได้มาก
  • โดยเฉพาะวิธีโอนข้อมูลผ่าน S3 เป็นกลยุทธ์ที่มีประสิทธิภาพในการลดค่าใช้จ่ายที่เกิดขึ้นเมื่อย้ายข้อมูลภายใน AWS ได้อย่างมาก
  • วิธีลดต้นทุนลักษณะนี้เป็นข้อมูลที่มีประโยชน์อย่างยิ่งสำหรับ cloud architect หรือ system administrator ที่ต้องการเพิ่มประสิทธิภาพโครงสร้างพื้นฐานคลาวด์

1 ความคิดเห็น

 
GN⁺ 2024-01-16
ความคิดเห็นจาก Hacker News
  • วิธีใช้ Lightsail instance

    • Lightsail instance สามารถใช้เพื่อ "พร็อกซี" ข้อมูลจากทรัพยากร AWS (เช่น EC2 instance หรือ S3 bucket) ได้
    • Lightsail instance แต่ละตัวให้ปริมาณการรับส่งข้อมูลตามที่รวมอยู่ในราคา ($3.5 instance ได้ 1TB, $5 instance ได้ 2TB เป็นต้น)
    • $10 instance ให้ทราฟฟิก 3TB และคุ้มค่าที่สุด
    • ทราฟฟิก 3TB บน EC2 มีค่าใช้จ่าย $276.48 และบน S3 bucket มีค่าใช้จ่าย $69
    • ข้อเสีย: เมื่อใช้ Lightsail instance ทั้งทราฟฟิกขาเข้าและขาออกจะถูกนับเป็น "ทราฟฟิก"
  • คำเตือนเกี่ยวกับทริกลดค่าใช้จ่าย

    • มีทริกหลายอย่างสำหรับลดค่าใช้จ่ายและรับทรัพยากรฟรี
    • วิธีเหล่านี้ฉลาด แต่ความน่าเชื่อถือต่ำ
    • นี่เป็นการแฮ็กประเภทเดียวกับการขุดคริปโตบน GitHub Actions ผ่าน OSS repository
    • มองเป็นแบบฝึกหัดการแฮ็กที่น่าสนใจได้ แต่อย่านำไปใช้กับผลิตภัณฑ์จริง เพราะมีความเสี่ยงที่บัญชี AWS จะถูกระงับ
  • ข้อพิจารณาในการใช้โซลูชันคลาวด์แทน VPS

    • หากใช้ VPS จะแก้ปัญหา High Availability อย่างไร?
    • แม้เป็นธุรกิจขนาดเล็กก็จำเป็นต้องออนไลน์ตลอดเวลา
    • โดยทั่วไปจะตั้งค่าโครงสร้างพื้นฐานเดียวกันบน VPS instance ตั้งแต่สองตัวขึ้นไป แล้วทำ load balancing
  • การคำนวณค่าใช้จ่ายของ S3 storage

    • ค่าใช้จ่ายของ S3 storage คิดค่าบริการตาม GB-เดือน
    • หากข้อมูล 1TB อยู่ใน bucket เป็นเวลา 1 ชั่วโมง ค่าใช้จ่ายจะอยู่ที่ประมาณ 3 เซ็นต์
    • ก่อนลบข้อมูล ค่าใช้จ่ายอาจต่ำกว่านี้ได้
    • ค่า TimedByteStorage ในรายงานต้นทุนและการใช้งานเป็นตัวชี้ขาด
  • การอุดช่องโหว่ลักษณะเดียวกันของ GCP

    • GCP อุดช่องโหว่ลักษณะเดียวกันในปี 2023 เนื่องจากมีการใช้งานในทางที่ผิดจากผู้ใช้
    • คาดว่า AWS ก็จะดำเนินการแบบเดียวกันหากพฤติกรรมนี้แพร่หลาย
  • เคล็ดลับเพิ่มเติมสำหรับการลดค่าใช้จ่ายคลาวด์

    • หากเป็นลูกค้า AWS รายใหญ่ สามารถขอส่วนลดได้
    • การวางทุกอย่างไว้ใน Availability Zone (AZ) เดียวอาจช่วยลดต้นทุนได้
    • เมื่อใช้หลาย AZ ควรทำ AZ balancing โดยคำนึงถึงโหลด
  • ทางเลือกแทนคลาวด์

    • การโฮสต์เอง ใช้บริการอย่าง Cloudflare ที่ไม่คิดค่ารับส่งข้อมูล หรือใช้บริการ VPS hosting ราคาถูก อาจเป็นทางเลือกแทนการใช้บริการคลาวด์ที่ซับซ้อนและมีราคาแพง
    • หากถึงขั้นต้องมาวิเคราะห์ค่าใช้จ่ายคลาวด์อย่างจริงจัง ก็ควรทบทวนการใช้คลาวด์ใหม่
  • ความซับซ้อนของ AWS และปัญหาการปรับให้เหมาะสม

    • AWS มีความซับซ้อนมาก ทำให้ลูกค้าปรับให้เหมาะสมในปัจจัยใดปัจจัยหนึ่งได้ยาก
    • หากมีคนใช้ทริกเหล่านี้มากเกินไป AWS อาจปิดช่องโหว่นี้ได้
  • ทางเลือกเมื่อมีการใช้แบนด์วิดท์สูง

    • ควรพิจารณาบริการอย่าง Leaseweb, PhoenixNAP, Hetzner, OVH ที่มีค่าแบนด์วิดท์ถูกกว่ามาก
    • บางกรณี AWS ก็ไม่ยอมเจรจาเรื่องราคาแบนด์วิดท์
  • ทริกโดยใช้ ECR

    • หากใช้ ECR จะสามารถส่งข้อมูลออกสู่อินเทอร์เน็ตได้ฟรีสูงสุด 5TB ต่อเดือน
    • container image จะต้องเป็นแบบสาธารณะ แต่สามารถเข้ารหัสเนื้อหาได้
    • มีประโยชน์เมื่อเก็บ media archive ไว้ใน Glacier