> 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/public-api/what-is-ncs-public-api.md).

# What is NCS Public API ?

NCS Public API คือช่องทางการจัดการ Cloud Resource บน NIPA Cloud Space ผ่าน Rest API โดยใช้มาตรฐานของ OpenStack API หรือ OpenStack CLI เพื่อใช้งานกับ Automation Tool ต่างๆ

<figure><img src="/files/pKXyDfqJStNrfYj0AdHi" alt=""><figcaption></figcaption></figure>

ภาพสถาปัตยกรรมนี้แสดงให้เห็นถึงโครงสร้างการทำงานของระบบประมวลผลคลาวด์ ซึ่งถูกออกแบบมาเพื่อรองรับการบริหารจัดการทรัพยากร (Compute, Network, Storage) ในรูปแบบ Software Defined Infrastructure (SDI) อย่างสมบูรณ์ โดยมีองค์ประกอบและขั้นตอนการทำงานที่สอดคล้องกับข้อกำหนด ดังนี้:

#### 1. ส่วนการบริหารจัดการระบบคลาวด์ (Cloud Management Plane)

* ช่องทางการเข้าถึงผ่าน API (HTTPS REST API): ระบบรองรับการทำงานอัตโนมัติและการบริหารจัดการโครงสร้างพื้นฐานรูปแบบโค้ด (Infrastructure as Code) ผ่านเครื่องมือมาตรฐาน
* การตรวจสอบสิทธิ์ (Auth & Token): ก่อนที่คำสั่งจะถูกดำเนินการ API Gateway จะทำงานร่วมกับระบบ Identity (Keystone) เพื่อตรวจสอบสิทธิ์การเข้าถึง (Authentication) และออก Token ยืนยันตัวตน ทำให้มั่นใจได้ว่ามีเพียงผู้ใช้งานหรือระบบที่ได้รับอนุญาตเท่านั้นที่สามารถจัดการทรัพยากรได้

#### 2. การแปลคำสั่งและรักษาความสอดคล้องของสถานะ (Orchestration & Idempotency)

* Internal Orchestration / Proxy: คำสั่งที่ผ่านการตรวจสอบแล้วจะถูกส่งมายังระบบ Proxy เพื่อแปลคำสั่งและกระจายไปยังเซอร์วิสต่างๆ ระบบนี้ถูกออกแบบให้มีตรรกะการจัดการสถานะที่ชาญฉลาด (State Consistency) เพื่อรองรับการทำงานของ Terraform โดยเฉพาะ&#x20;

#### 3. การจัดสรรทรัพยากรระดับโครงสร้างพื้นฐาน (Core Cloud Services)

* ระบบสามารถจัดเตรียมทรัพยากรในรูปแบบ Virtual Private Cloud (VPC) หรือ Dedicated Resource Pool ได้อย่างครบถ้วน ผ่านการทำงานประสานกันของ Core Services มาตรฐานระดับ Enterprise ได้แก่:
  * Compute: จัดการทรัพยากรประมวลผลหลัก
  * Network: จัดการเครือข่ายเสมือนและระบบความปลอดภัยระดับเน็ตเวิร์ก
  * Storage: บริหารจัดการพื้นที่จัดเก็บข้อมูลทั้งแบบ Block Storage สำหรับระบบปฏิบัติการ \
    และ Object Storage สำหรับข้อมูลปริมาณมหาศาล
  * Load Balancer: จัดเตรียมและปรับแต่งการกระจายภาระงานได้อย่างยืดหยุ่นผ่าน API
  * Image: บริหารจัดการไฟล์อิมเมจของระบบ

บทสรุปความสอดคล้อง: จากสถาปัตยกรรมดังกล่าว ระบบคลาวด์มีการเตรียมความพร้อมรองรับการบริหารจัดการแบบรวบยอดผ่าน API ผู้ดูแลระบบสามารถควบคุมวงจรชีวิตของทรัพยากรทั้งหมดได้อย่างยืดหยุ่น ปลอดภัย และสามารถรับประกันการจัดสรรทรัพยากรแยกส่วนแบบ VPC เพื่อรองรับระบบงานที่มีความสำคัญสูงได้อย่างมีประสิทธิภาพ

โดยการใช้งาน Public API จำเป็นมีการยืนยันตัวตน เพื่อรับประกันความปลอดภัยของ Resource ภายในระบบ โดย NIPA Cloud Space รองรับการยืนยันตัวตนแบ่งออกเป็น 3 รูปแบบ

1. Authen ผ่าน Rest API: [Using REST API](/ncs-documents/public-api/getting-start-with-ncs-public-api/using-rest-api.md)
2. RC File
   1. [Download User RC File](/ncs-documents/public-api/getting-start-with-ncs-public-api/using-openstack-client-tool-with-rc-file/download-user-rc-file.md)
   2. [Using OpenStack Client Tool With RC File](/ncs-documents/public-api/getting-start-with-ncs-public-api/using-openstack-client-tool-with-rc-file.md)
3. Application Credential
