.NET และ ASP.NET Core คืออะไร และวิธี Deploy บน Cloud Server
.NET คือแพลตฟอร์มพัฒนาแอปของไมโครซอฟท์ที่องค์กรไทยใช้กันแพร่หลาย โดยเฉพาะระบบที่ทำงานร่วมกับ SQL Server และ Active Directory ปัจจุบันรันได้ทั้งบน Windows Server และ Linux
- หมวดหมู่
- ภาษาโปรแกรมและ Framework
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- MIT (แพลตฟอร์ม .NET)
- เว็บทางการ
- เปิดเว็บไซต์
- 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
ประสิทธิภาพสูง
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 ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นแอปเดียวและผู้ใช้ภายในทีม | 2 vCPU | 4 GB | NVMe 60 GB |
| แนะนำระบบงานองค์กรที่มีผู้ใช้ต่อเนื่อง | 4 vCPU | 8 GB | NVMe 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
ติดตั้ง .NET Runtime
sudo apt update sudo apt -y install dotnet-runtime-8.0 aspnetcore-runtime-8.0 nginx dotnet --info - 2
เผยแพร่แอปสำหรับ Production
รันคำสั่งนี้บนเครื่องพัฒนาหรือในขั้นตอน CI แล้วคัดลอกผลลัพธ์ขึ้นเซิร์ฟเวอร์
dotnet publish -c Release -o ./publish - 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
ตั้งเป็นบริการด้วย 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
ตั้ง 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
เก็บความลับอย่างปลอดภัย
ใช้ตัวแปรสภาพแวดล้อมหรือไฟล์ตั้งค่าที่จำกัดสิทธิ์ ไม่ฝังรหัสผ่านฐานข้อมูลไว้ในไฟล์ที่ขึ้น Git
ถ้าระบบเดิมผูกกับความสามารถเฉพาะของ Windows เช่น การยืนยันตัวตนแบบรวมกับโดเมน การ Deploy บน Windows Server พร้อม IIS จะราบรื่นกว่า
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Nginx หรือ IIS |
| 80 | TCP | HTTP และการต่ออายุใบรับรอง |
| 5000 | TCP | พอร์ตภายในของแอป (ไม่เปิดสู่อินเทอร์เน็ต) |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ตั้ง 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
แอปอื่นในหมวด ภาษาโปรแกรมและ Framework
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง .NET / ASP.NET Core ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด