โลโก้ FastAPI
ภาษาโปรแกรมและ FrameworkMIT (โอเพนซอร์ส)

FastAPI คืออะไร และวิธี Deploy บน Cloud Server

FastAPI คือเฟรมเวิร์ก Python สำหรับสร้าง API ที่เร็วกว่าเฟรมเวิร์กเดิมอย่างชัดเจน ตรวจความถูกต้องของข้อมูลให้อัตโนมัติ และสร้างเอกสาร API ให้เองจากโค้ด

ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
MIT (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

FastAPI คืออะไร

FastAPI ใช้ประกาศชนิดข้อมูลของ Python เป็นแกน เมื่อระบุว่าฟังก์ชันรับข้อมูลรูปแบบใด ระบบจะตรวจความถูกต้องของข้อมูลที่เข้ามาให้อัตโนมัติและคืนข้อความแจ้งที่ชัดเจนเมื่อผิดรูปแบบ

จากการประกาศเดียวกันนั้น ระบบยังสร้างเอกสาร API แบบโต้ตอบได้ให้เอง ทีมจึงไม่ต้องเขียนเอกสารแยกที่มักล้าสมัยเมื่อโค้ดเปลี่ยน ซึ่งเป็นปัญหาที่พบในทุกโครงการ

ด้านประสิทธิภาพ เฟรมเวิร์กรองรับการทำงานแบบไม่รอผลตามลำดับ ทำให้จัดการคำขอที่ต้องรอฐานข้อมูลหรือบริการภายนอกได้จำนวนมากพร้อมกัน ซึ่งเร็วกว่าเฟรมเวิร์กแบบเดิมอย่างชัดเจน

แผนผังการวางระบบ FastAPI บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 443, 8000 ตัว FastAPI และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
FastAPI ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ FastAPI

ตรวจความถูกต้องของข้อมูลอัตโนมัติ

ประกาศชนิดข้อมูลแล้วระบบตรวจให้เองพร้อมข้อความแจ้งที่ชัดเจน

สร้างเอกสาร API ให้อัตโนมัติ

เอกสารตรงกับโค้ดเสมอและทดลองเรียกใช้ได้จากเบราว์เซอร์

รองรับการทำงานแบบไม่รอผลตามลำดับ

จัดการคำขอที่ต้องรอบริการภายนอกได้จำนวนมากพร้อมกัน

ใช้ระบบนิเวศ Python ได้เต็มที่

ต่อกับไลบรารีด้านข้อมูลและ AI ได้โดยตรง

เขียนโค้ดกระชับ

ได้ API ที่ใช้งานได้จริงด้วยโค้ดไม่กี่บรรทัด

ใช้ FastAPI ทำอะไรได้บ้าง

  • API สำหรับแอปมือถือหรือเว็บที่แยกส่วนหน้าออกจากหลังบ้าน
  • บริการที่ห่อโมเดล AI ให้ระบบอื่นเรียกใช้
  • บริการย่อยที่ต้องการความเร็วและเอกสารที่ชัดเจน
  • ทีม Python ที่ต้องการสร้าง API ได้เร็ว

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ FastAPI 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 40 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 150 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นAPI ที่มีคำขอไม่มาก2 vCPU4 GBNVMe 40 GB
แนะนำAPI งานจริงที่มีคำขอต่อเนื่อง4 vCPU8 GBNVMe 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. 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. 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. 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. 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. 5

    ปิดเอกสาร API ในระบบจริงถ้าไม่ต้องการเปิดสาธารณะ

    เอกสารที่สร้างอัตโนมัติแสดงโครงสร้างของ API ทั้งหมด ถ้าเป็น API ภายในควรปิดหรือจำกัดการเข้าถึง

    app = FastAPI(docs_url=None, redoc_url=None, openapi_url=None)
  6. 6

    ตั้งการยืนยันตัวตนและจำกัดอัตราการเรียก

    เพิ่มการยืนยันตัวตนสำหรับปลายทางที่ไม่ควรเปิดสาธารณะ และจำกัดอัตราการเรียกที่ Nginx เพื่อป้องกันการใช้ทรัพยากรจนหมด

ห้ามใช้คำสั่งรันสำหรับพัฒนาในระบบจริง ให้ใช้ตัวจัดการกระบวนการที่รองรับหลายตัวรันงานและรีสตาร์ตอัตโนมัติเมื่อเกิดปัญหา

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPHTTPS ผ่าน Nginx
8000TCPพอร์ตภายในของแอป

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • ปิดหรือจำกัดการเข้าถึงเอกสาร 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 ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด