FastAPI คืออะไร และวิธี Deploy บน Cloud Server
FastAPI คือเฟรมเวิร์ก Python สำหรับสร้าง API ที่เร็วกว่าเฟรมเวิร์กเดิมอย่างชัดเจน ตรวจความถูกต้องของข้อมูลให้อัตโนมัติ และสร้างเอกสาร API ให้เองจากโค้ด
- หมวดหมู่
- ภาษาโปรแกรมและ Framework
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- MIT (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
FastAPI คืออะไร
FastAPI ใช้ประกาศชนิดข้อมูลของ Python เป็นแกน เมื่อระบุว่าฟังก์ชันรับข้อมูลรูปแบบใด ระบบจะตรวจความถูกต้องของข้อมูลที่เข้ามาให้อัตโนมัติและคืนข้อความแจ้งที่ชัดเจนเมื่อผิดรูปแบบ
จากการประกาศเดียวกันนั้น ระบบยังสร้างเอกสาร API แบบโต้ตอบได้ให้เอง ทีมจึงไม่ต้องเขียนเอกสารแยกที่มักล้าสมัยเมื่อโค้ดเปลี่ยน ซึ่งเป็นปัญหาที่พบในทุกโครงการ
ด้านประสิทธิภาพ เฟรมเวิร์กรองรับการทำงานแบบไม่รอผลตามลำดับ ทำให้จัดการคำขอที่ต้องรอฐานข้อมูลหรือบริการภายนอกได้จำนวนมากพร้อมกัน ซึ่งเร็วกว่าเฟรมเวิร์กแบบเดิมอย่างชัดเจน
ความสามารถเด่นของ FastAPI
ตรวจความถูกต้องของข้อมูลอัตโนมัติ
ประกาศชนิดข้อมูลแล้วระบบตรวจให้เองพร้อมข้อความแจ้งที่ชัดเจน
สร้างเอกสาร API ให้อัตโนมัติ
เอกสารตรงกับโค้ดเสมอและทดลองเรียกใช้ได้จากเบราว์เซอร์
รองรับการทำงานแบบไม่รอผลตามลำดับ
จัดการคำขอที่ต้องรอบริการภายนอกได้จำนวนมากพร้อมกัน
ใช้ระบบนิเวศ Python ได้เต็มที่
ต่อกับไลบรารีด้านข้อมูลและ AI ได้โดยตรง
เขียนโค้ดกระชับ
ได้ API ที่ใช้งานได้จริงด้วยโค้ดไม่กี่บรรทัด
ใช้ FastAPI ทำอะไรได้บ้าง
- API สำหรับแอปมือถือหรือเว็บที่แยกส่วนหน้าออกจากหลังบ้าน
- บริการที่ห่อโมเดล AI ให้ระบบอื่นเรียกใช้
- บริการย่อยที่ต้องการความเร็วและเอกสารที่ชัดเจน
- ทีม Python ที่ต้องการสร้าง API ได้เร็ว
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นAPI ที่มีคำขอไม่มาก | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำAPI งานจริงที่มีคำขอต่อเนื่อง | 4 vCPU | 8 GB | NVMe 80 GB |
| ทราฟฟิกสูงคำขอจำนวนมากพร้อมกัน | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 150 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง FastAPI บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Python รุ่นที่ยังได้รับการรองรับ
- ตัวรันสำหรับระบบจริงอย่าง Uvicorn คู่กับ Gunicorn
- Nginx พร้อมใบรับรอง SSL
- ฐานข้อมูลถ้า API ต้องเก็บข้อมูล
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
เตรียมสภาพแวดล้อม
sudo apt update && sudo apt -y install python3 python3-venv nginx cd /var/www/api python3 -m venv .venv && source .venv/bin/activate pip install fastapi uvicorn[standard] gunicorn - 2
เขียน API ตัวอย่าง
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI(title="TDC API") class Order(BaseModel): product_id: int quantity: int @app.post("/orders") async def create_order(order: Order): return {"status": "created", "total": order.quantity} - 3
รันเป็นบริการ
ใช้ Gunicorn เป็นตัวจัดการกระบวนการแล้วให้ Uvicorn เป็นตัวรันจริง ซึ่งเป็นรูปแบบมาตรฐานสำหรับระบบงานจริง
# /etc/systemd/system/fastapi.service [Unit] Description=FastAPI Application After=network.target [Service] User=apiuser WorkingDirectory=/var/www/api ExecStart=/var/www/api/.venv/bin/gunicorn main:app \ -k uvicorn.workers.UvicornWorker \ --workers 4 --bind 127.0.0.1:8000 Restart=always [Install] WantedBy=multi-user.target - 4
ตั้ง Nginx เป็น Reverse Proxy
location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; } - 5
ปิดเอกสาร API ในระบบจริงถ้าไม่ต้องการเปิดสาธารณะ
เอกสารที่สร้างอัตโนมัติแสดงโครงสร้างของ API ทั้งหมด ถ้าเป็น API ภายในควรปิดหรือจำกัดการเข้าถึง
app = FastAPI(docs_url=None, redoc_url=None, openapi_url=None) - 6
ตั้งการยืนยันตัวตนและจำกัดอัตราการเรียก
เพิ่มการยืนยันตัวตนสำหรับปลายทางที่ไม่ควรเปิดสาธารณะ และจำกัดอัตราการเรียกที่ Nginx เพื่อป้องกันการใช้ทรัพยากรจนหมด
ห้ามใช้คำสั่งรันสำหรับพัฒนาในระบบจริง ให้ใช้ตัวจัดการกระบวนการที่รองรับหลายตัวรันงานและรีสตาร์ตอัตโนมัติเมื่อเกิดปัญหา
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Nginx |
| 8000 | TCP | พอร์ตภายในของแอป |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ปิดหรือจำกัดการเข้าถึงเอกสาร API ในระบบจริง
- เพิ่มการยืนยันตัวตนสำหรับปลายทางที่ไม่เปิดสาธารณะ
- จำกัดอัตราการเรียกใช้ที่ Nginx
- ใช้สภาพแวดล้อมแยกและตรึงเวอร์ชันไลบรารี
- รันแอปด้วยผู้ใช้ที่ไม่มีสิทธิ์สูงสุด
ทำไมควรรัน FastAPI บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
เชื่อมกับฐานข้อมูลใน Private Network ได้โดยตรงโดยไม่ต้องเปิดพอร์ตสู่ภายนอก
ใช้ห่อโมเดล AI ที่รันบน GPU Cloud Server ให้ระบบอื่นเรียกใช้
ปรับจำนวนตัวรันงานและสเปกได้ตามปริมาณคำขอจริง
คำถามที่พบบ่อยเกี่ยวกับ FastAPI
FastAPI ต่างจาก Django อย่างไร
Django เป็นเฟรมเวิร์กครบวงจรที่มีทั้งหน้าจอผู้ดูแลและระบบผู้ใช้ เหมาะกับเว็บเต็มรูปแบบ ส่วน FastAPI เน้น API ล้วน จึงเบากว่า เร็วกว่า และสร้างเอกสารให้อัตโนมัติ
เร็วจริงไหม
เร็วกว่าเฟรมเวิร์ก Python แบบเดิมอย่างชัดเจนโดยเฉพาะกับงานที่ต้องรอฐานข้อมูลหรือบริการภายนอก เพราะรองรับการทำงานแบบไม่รอผลตามลำดับ แต่ยังไม่เท่าภาษาที่คอมไพล์อย่าง Go
เอกสารอัตโนมัติควรเปิดสาธารณะไหม
ไม่ควรถ้าเป็น API ภายใน เพราะแสดงโครงสร้างของทุกปลายทางและรูปแบบข้อมูลที่รับ ควรปิดในระบบจริงหรือจำกัดให้เข้าถึงได้เฉพาะจากวงภายใน
ทางเลือกอื่นที่คล้ายกับ FastAPI
แอปอื่นในหมวด ภาษาโปรแกรมและ Framework
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง FastAPI ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด