โลโก้ .NET / ASP.NET Core
อันดับ 87 ใน Top 100 ภาษาโปรแกรมและ FrameworkMIT (แพลตฟอร์ม .NET)

.NET และ ASP.NET Core คืออะไร และวิธี Deploy บน Cloud Server

.NET คือแพลตฟอร์มพัฒนาแอปของไมโครซอฟท์ที่องค์กรไทยใช้กันแพร่หลาย โดยเฉพาะระบบที่ทำงานร่วมกับ SQL Server และ Active Directory ปัจจุบันรันได้ทั้งบน Windows Server และ Linux

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

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

.NET / ASP.NET Core คืออะไร

.NET รุ่นปัจจุบันเป็นแพลตฟอร์มข้ามระบบปฏิบัติการ แอปที่เขียนด้วย C# จึงรันได้ทั้งบน Windows Server และ Linux ซึ่งเปิดทางให้องค์กรลดค่าไลเซนส์ระบบปฏิบัติการได้เมื่อย้ายขึ้นคลาวด์

จุดแข็งในบริบทองค์กรไทยคือการทำงานร่วมกับระบบไมโครซอฟท์อื่นได้แนบสนิท ทั้ง SQL Server, Active Directory และเครื่องมือพัฒนาที่ทีมคุ้นเคย ทำให้ระบบเดิมจำนวนมากอยู่บนแพลตฟอร์มนี้

ในการนำขึ้น Production บน Linux รูปแบบมาตรฐานคือรันแอปเป็นบริการด้วย systemd แล้วให้ Nginx เป็น Reverse Proxy จัดการ HTTPS ส่วนบน Windows Server จะใช้ IIS เป็นตัวรับทราฟฟิก

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

ความสามารถเด่นของ .NET / ASP.NET Core

ประสิทธิภาพสูง

ASP.NET Core ทำผลทดสอบประสิทธิภาพได้ดีมากในกลุ่มเฟรมเวิร์กเว็บ

ข้ามระบบปฏิบัติการ

รันได้ทั้ง Windows Server และ Linux จึงเลือกได้ตามต้นทุนและความคุ้นเคยของทีม

เข้ากับระบบไมโครซอฟท์

ต่อกับ SQL Server และยืนยันตัวตนผ่าน Active Directory ได้ตรง

Entity Framework Core

จัดการฐานข้อมูลด้วยโค้ดและติดตามการเปลี่ยนโครงสร้างเป็นเวอร์ชันได้

ภาษาที่มีการตรวจชนิดข้อมูล

C# ช่วยจับข้อผิดพลาดตั้งแต่ตอนคอมไพล์ ลดบั๊กในระบบขนาดใหญ่

ใช้ .NET / ASP.NET Core ทำอะไรได้บ้าง

  • ระบบงานภายในองค์กรที่ต่อกับ SQL Server และ Active Directory
  • API สำหรับระบบองค์กรที่ต้องการประสิทธิภาพสูง
  • ระบบเดิมที่เขียนด้วย .NET และต้องย้ายขึ้นคลาวด์
  • ระบบที่ต้องผ่านการตรวจสอบและต้องการภาษาที่ตรวจชนิดข้อมูลได้

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

แผนภาพเทียบสเปก Cloud Server สำหรับ .NET / ASP.NET Core 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 60 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 250 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นแอปเดียวและผู้ใช้ภายในทีม2 vCPU4 GBNVMe 60 GB
แนะนำระบบงานองค์กรที่มีผู้ใช้ต่อเนื่อง4 vCPU8 GBNVMe 120 GB
องค์กรใหญ่หลาย Instance หลัง Load Balancer และแยกฐานข้อมูล8 vCPU ขึ้นไป16 GB ขึ้นไปNVMe 250 GB ขึ้นไป

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง .NET / ASP.NET Core บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Ubuntu Server 24.04 LTS หรือ Windows Server 2022
  • .NET Runtime หรือ SDK รุ่นที่ตรงกับแอป
  • ฐานข้อมูลที่แอปใช้ เช่น SQL Server หรือ PostgreSQL
  • Nginx หรือ IIS สำหรับรับทราฟฟิกและจัดการ HTTPS

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    ติดตั้ง .NET Runtime

    sudo apt update
    sudo apt -y install dotnet-runtime-8.0 aspnetcore-runtime-8.0 nginx
    dotnet --info
  2. 2

    เผยแพร่แอปสำหรับ Production

    รันคำสั่งนี้บนเครื่องพัฒนาหรือในขั้นตอน CI แล้วคัดลอกผลลัพธ์ขึ้นเซิร์ฟเวอร์

    dotnet publish -c Release -o ./publish
  3. 3

    วางไฟล์และตั้งสิทธิ์

    sudo mkdir -p /var/www/app
    sudo cp -r ./publish/* /var/www/app/
    sudo chown -R www-data:www-data /var/www/app
  4. 4

    ตั้งเป็นบริการด้วย systemd

    [Unit]
    Description=ASP.NET Core App
    After=network.target
    
    [Service]
    WorkingDirectory=/var/www/app
    ExecStart=/usr/bin/dotnet /var/www/app/App.dll
    Restart=always
    User=www-data
    Environment=ASPNETCORE_ENVIRONMENT=Production
    Environment=ASPNETCORE_URLS=http://127.0.0.1:5000
    
    [Install]
    WantedBy=multi-user.target
  5. 5

    ตั้ง Nginx เป็น Reverse Proxy

    server {
      listen 443 ssl;
      server_name app.example.com;
    
      location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
      }
    }
  6. 6

    เก็บความลับอย่างปลอดภัย

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

ถ้าระบบเดิมผูกกับความสามารถเฉพาะของ Windows เช่น การยืนยันตัวตนแบบรวมกับโดเมน การ Deploy บน Windows Server พร้อม IIS จะราบรื่นกว่า

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

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPHTTPS ผ่าน Nginx หรือ IIS
80TCPHTTP และการต่ออายุใบรับรอง
5000TCPพอร์ตภายในของแอป (ไม่เปิดสู่อินเทอร์เน็ต)

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

  • ตั้ง ASPNETCORE_ENVIRONMENT เป็น Production เพื่อปิดหน้าจอผิดพลาดแบบละเอียด
  • ให้แอปฟังเฉพาะภายในเครื่องและเปิดสู่ภายนอกผ่าน Reverse Proxy เท่านั้น
  • เก็บ Connection String ในตัวแปรสภาพแวดล้อมหรือระบบจัดการความลับ
  • อัปเดต Runtime ตามรอบแพตช์ความปลอดภัยของไมโครซอฟท์
  • จำกัดสิทธิ์ของผู้ใช้ที่รันบริการให้เท่าที่จำเป็น

ทำไมควรรัน .NET / ASP.NET Core บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

เลือกได้ทั้ง Cloud Linux Server เพื่อลดค่าไลเซนส์ หรือ Cloud Windows Server เมื่อระบบเดิมผูกกับ Windows

ต่อกับ SQL Server บนเครื่องอื่นในวง Private Network ในไทยได้โดยไม่ต้องเปิดฐานข้อมูลออกอินเทอร์เน็ต

ยกระบบ .NET เดิมจากเซิร์ฟเวอร์ในองค์กรขึ้นคลาวด์ได้โดยไม่ต้องเขียนใหม่

คำถามที่พบบ่อยเกี่ยวกับ .NET / ASP.NET Core

ควรรัน .NET บน Windows หรือ Linux

ถ้าแอปเขียนด้วย .NET รุ่นปัจจุบันและไม่ผูกกับความสามารถเฉพาะของ Windows การรันบน Linux ช่วยลดค่าไลเซนส์ระบบปฏิบัติการ แต่ถ้าระบบใช้การยืนยันตัวตนแบบรวมกับโดเมนหรือไลบรารีเฉพาะของ Windows ให้อยู่บน Windows Server

ต้องใช้ IIS ไหม

บน Windows Server IIS เป็นตัวเลือกมาตรฐานและจัดการ HTTPS กับการรีสตาร์ตแอปให้ ส่วนบน Linux ใช้ Nginx เป็น Reverse Proxy คู่กับ systemd ซึ่งทำหน้าที่เดียวกัน

แอป .NET Framework รุ่นเก่าย้ายขึ้น Linux ได้ไหม

ไม่ได้โดยตรง .NET Framework รุ่นเก่ารันบน Windows เท่านั้น ต้องย้ายโค้ดมาเป็น .NET รุ่นปัจจุบันก่อน ซึ่งเป็นงานพัฒนา ทางเลือกระยะสั้นคือยกขึ้น Cloud Windows Server ตามเดิม

ให้เราติดตั้ง .NET / ASP.NET Core ให้ฟรี บน Cloud Server ในไทย

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