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
การตั้งค่าให้ถูกต้องต้องทำตามลำดับนี้:
- สร้าง API หนึ่งตัวหรือหลายตัว
- กำหนด methods ที่ต้องการให้บังคับใช้ API Key
- Deploy API ไปยัง stages
- สร้างหรือ import API Keys เพื่อนำไปแจกให้ลูกค้า (นักพัฒนาที่จะใช้ API)
- สร้าง Usage Plan โดยกำหนด throttling และ quota ตามที่ต้องการ
- เชื่อมโยง (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 จำกัดปริมาณรวมทั้งหมด
-
ลำดับที่ถูกต้องคือ:
- สร้าง API →
- กำหนด methods ที่ต้องใช้ key →
- Deploy →
- สร้าง/นำเข้า API Keys →
- สร้าง Usage Plan →
- เชื่อมโยง stages และ keys