> For the complete documentation index, see [llms.txt](https://docs-epc.gitbook.io/ncs-documents/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-epc.gitbook.io/ncs-documents/load-balancing/api-gateway-with-apisix.md).

# API Gateway with APISIX

เมื่อต้องเป็นศูนย์กลางเชื่อมโยงข้อมูลระดับประเทศ การเปิด API ให้หน่วยบริการและแอปพันธมิตรจำนวนมากเรียกใช้พร้อมกัน ความท้าทายไม่ใช่แค่ "กระจายโหลด" แต่คือการ **ควบคุมและกำกับการจราจรข้อมูล** ให้ระบบไม่ล่มเมื่อ request พุ่งจากหลายหน่วยงานพร้อมกัน จัดสรรทรัพยากรอย่างเป็นธรรม ยืนยันตัวตนของระบบภายนอกก่อนปล่อยให้เข้าถึงข้อมูลที่อ่อนไหว และมองเห็นพฤติกรรมการเรียกใช้แบบ real-time — ทั้งหมดบนโครงสร้างพื้นฐานคลาวด์ภายในประเทศ ไม่ผูกกับผู้ให้บริการรายใหญ่ระดับโลก

### NIPA Cloud ตอบโจทย์นี้ด้วย API Gateway ที่สร้างบน **Apache APISIX**&#x20;

API gateway ประสิทธิภาพสูงภายใต้ Apache Software Foundation วางอยู่หลัง Load Balancer ของ NIPA Cloud

<div data-with-frame="true"><figure><img src="/files/Y5hrVwBeOIfcH6QXEzww" alt=""><figcaption></figcaption></figure></div>

**ชั้นที่ 1 — Network Edge (Layer 4):** NIPA Cloud Load Balancer พร้อม Floating IP และ High Availability รับ traffic ดิบ กระจายภาระ และรักษาความต่อเนื่องของบริการ

**ชั้นที่ 2 — API Management Plane (Layer 7):** Apache APISIX ซ้อนด้านหลัง กำกับนโยบายการเรียกใช้ API ทั้งหมด — ตรวจสอบตัวตน → จำกัดอัตรา → ตรวจโควตา → ส่งต่อไปยังบริการปลายทาง

การแยกสองชั้นทำให้ขยายขีดความสามารถแต่ละชั้นได้อิสระ และเปิดทางใช้ open-source stack เต็มรูปแบบบนคลาวด์ภายในประเทศ

### ความสามารถที่ APISIX บน NIPA Cloud ส่งมอบได้

#### 🛡️ รักษาเสถียรภาพด้วย Rate Limiting และ Throttling

APISIX จำกัดอัตราการใช้งานได้ทั้งในระดับ **IP Address** และระดับ **Service Endpoint** ด้วยปลั๊กอิน `limit-count`, `limit-req` (หน่วงสัญญาณแบบ leaky bucket) และ `limit-conn` พร้อมการนับแบบ cluster ผ่าน Redis เพื่อความถูกต้องแม้ทำงานหลาย node — ป้องกันระบบขัดข้องเมื่อ request พุ่งจากหน่วยงานทั่วประเทศพร้อมกัน

#### 📊 บริหารโควตารายโครงการ (Project-based Quota)

ด้วยแนวคิด **Consumer** และ **Consumer Group** ของ APISIX ระบบจำกัดปริมาณการรับส่งข้อมูลแยกตามรายโครงการของผู้พัฒนาหรือผู้ใช้งานภายนอกแต่ละราย กันการแย่งทรัพยากรโครงข่าย และการันตีประสิทธิภาพสูงสุดให้ระบบงานหลัก

#### 🔐 ยืนยันตัวตนตามมาตรฐานสากล (mTLS / OAuth 2.0)

ก่อนปล่อยให้ระบบภายนอกเข้าถึงข้อมูล APISIX พิสูจน์ตัวตนผ่าน **mutual TLS (mTLS)** หรือ **OAuth 2.0 / OpenID Connect** — รองรับการตรวจสอบ access token จาก Identity Provider ที่มีอยู่ และเข้ารหัสการเชื่อมต่อแบบ end-to-end

#### 👁️ เฝ้าระวังและแจ้งเตือนแบบ Real-time

ทุก request ที่ผ่าน gateway ถูกเก็บเป็น metric, log และ trace ส่งเข้าระบบ observability (Prometheus / Grafana / Zabbix) ติดตามปริมาณการใช้งานแบบ real-time และตั้งกฎแจ้งเตือนเมื่อพบพฤติกรรมผิดปกติ หรือเมื่อการใช้ทรัพยากรของโครงการใดใกล้ถึงขีดจำกัด ทำให้ทีมปฏิบัติการตอบสนองได้ก่อนเกิดผลกระทบ

#### ⚡ ขยายตัวรองรับ Burst โดยไม่สะดุด

APISIX เป็น stateless data plane รองรับ hot-reload การปรับขยายทรัพยากร vCPU/vRAM และ scale-out เพิ่ม node ทำได้รวดเร็ว สอดรับกับกระบวนการ Service Request Management ของ NIPA Cloud ที่เพิ่มทรัพยากรฉุกเฉินได้ตาม SLA

#### ⚙️ บริหารจัดการแบบ Declarative / Self-service

นโยบายทั้งหมด — service, route, rate limit, quota, authentication — นิยามแบบ declarative ผ่าน Infrastructure as Code (YAML / Admin API / GitOps) ทุกการเปลี่ยนแปลงผ่าน version control และ review ก่อน apply จึงตรวจสอบย้อนหลังได้และลดความเสี่ยงจากการแก้ไขด้วยมือ — ให้ประสบการณ์แบบ managed API gateway ระดับโลก แต่ทำงานบนคลาวด์ภายในประเทศ

### ทำไมต้อง APISIX บน NIPA Cloud

* **Open source แท้ ไม่มี vendor lock-in** — ภายใต้ Apache 2.0 License ตรวจสอบและขยายได้เต็มที่
* **ประสิทธิภาพสูง** — สร้างบน NGINX/OpenResty + etcd, สถาปัตยกรรมเบา latency ระดับมิลลิวินาที ไม่มีฐานข้อมูลหนักถ่วง
* **คลาวด์ภายในประเทศ** — ข้อมูลสุขภาพอยู่ภายใต้อธิปไตยข้อมูล ไม่ออกนอกประเทศ
* **พร้อมเติบโต** — เริ่มจาก open source วันหน้าต่อยอดสู่ enterprise edition ได้บน engine เดียวกัน โดยไม่ต้องรื้อระบบ
