Skip to main content

API Gateway – Usage Plans & API Keys

เมื่อเราสร้าง API เสร็จแล้ว ขั้นตอนต่อไปคือทำให้ลูกค้าสามารถใช้งานได้ และในบางกรณี เราอาจต้องการ คิดค่าบริการจากการใช้งาน API ด้วย แนวคิดหลักที่ใช้คือ Usage Plans และ API Keys

Usage Plans

Usage Plan ใช้เพื่อกำหนดว่า:

  • ใครสามารถเข้าถึง API stages และ methods ใดได้บ้าง
  • เข้าถึงได้มากน้อยและเร็วแค่ไหน (rate & limit)
  • และจะใช้ API Keys ใดในการระบุตัวตนของลูกค้าและวัดการใช้งาน

สิ่งที่กำหนดได้ใน Usage Plan

  • Throttling limits → กำหนดอัตราการเรียก API ได้เร็วแค่ไหน (ป้องกัน overload)
  • Quotas → จำกัดปริมาณรวม เช่น "10,000 requests ต่อเดือน" ก่อนที่ลูกค้าจะต้องจ่ายเงินเพิ่ม

API Keys

API Key คือ string ที่แจกให้กับลูกค้า (คล้ายรหัสผ่านเฉพาะของ API)

  • ลูกค้านำ key นี้ไปใส่ใน request เพื่อ ยืนยันตัวตน และใช้งาน API Gateway ได้
  • API Keys ใช้ร่วมกับ Usage Plans เพื่อควบคุมการเข้าถึงและวัดการใช้งาน

📌 หมายเหตุ:

  • ถ้าเปิดใช้งาน Throttling limits → จะถูกบังคับใช้ ที่ระดับ API Key
  • ส่วน Quota limits → คือตัวเลขรวมของการเรียกทั้งหมดที่อนุญาตให้ใช้ได้

ลำดับขั้นตอนการสร้าง API Keys และ Usage Plans

การตั้งค่าให้ถูกต้องต้องทำตามลำดับนี้:

  1. สร้าง API หนึ่งตัวหรือหลายตัว
  2. กำหนด methods ที่ต้องการให้บังคับใช้ API Key
  3. Deploy API ไปยัง stages
  4. สร้างหรือ import API Keys เพื่อนำไปแจกให้ลูกค้า (นักพัฒนาที่จะใช้ API)
  5. สร้าง Usage Plan โดยกำหนด throttling และ quota ตามที่ต้องการ
  6. เชื่อมโยง (associate) API stages และ API Keys เข้ากับ Usage Plan

👉 ขั้นตอนสุดท้ายสำคัญมาก ถ้าไม่ทำ API จะไม่ทำงานตามที่คาดไว้

เมื่อตั้งค่าเสร็จแล้ว ผู้เรียก API ต้องส่ง API Key ผ่าน header:

x-api-key: <your-api-key>

Key Takeaways

  • Usage Plans ใช้ควบคุมสิทธิ์การเข้าถึง API, จำกัดอัตราการใช้งาน (throttling) และกำหนด quota

  • API Keys เป็นรหัสเฉพาะที่แจกให้ลูกค้าเพื่อยืนยันตัวตนและวัดปริมาณการใช้งาน

  • Throttling ใช้บังคับที่ระดับ API Key ส่วน Quota จำกัดปริมาณรวมทั้งหมด

  • ลำดับที่ถูกต้องคือ:

    1. สร้าง API →
    2. กำหนด methods ที่ต้องใช้ key →
    3. Deploy →
    4. สร้าง/นำเข้า API Keys →
    5. สร้าง Usage Plan →
    6. เชื่อมโยง stages และ keys