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

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

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

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

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

Rust คืออะไร

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

Rust แก้ปัญหานี้ด้วยกลไกตรวจสอบตอนคอมไพล์ที่รับประกันว่าโค้ดจะไม่เข้าถึงหน่วยความจำผิดพลาด โดยไม่ต้องมีตัวเก็บขยะที่ทำให้ประสิทธิภาพไม่แน่นอน จึงได้ทั้งความเร็วและความปลอดภัย

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

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

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

ความเร็วระดับภาษาระบบ

ไม่มีตัวเก็บขยะ ประสิทธิภาพจึงคาดการณ์ได้

ป้องกันข้อผิดพลาดหน่วยความจำ

ตรวจตั้งแต่ตอนคอมไพล์ ลดช่องโหว่ที่พบบ่อยในภาษาระบบ

จัดการงานพร้อมกันได้อย่างปลอดภัย

ตัวคอมไพเลอร์จับข้อผิดพลาดจากการเข้าถึงข้อมูลพร้อมกัน

คอมไพล์เป็นไฟล์เดียว

Deploy ง่ายเหมือนภาษาที่คอมไพล์เป็นไฟล์เดียวตัวอื่น

ระบบจัดการแพ็กเกจที่ดี

จัดการไลบรารีและเวอร์ชันได้เป็นระบบ

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

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

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

แผนภาพเทียบสเปก Cloud Server สำหรับ Rust 3 ระดับ เริ่มจาก 1 vCPU แรม 1 GB ดิสก์ NVMe 20 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 100 GB โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นบริการเล็กที่คอมไพล์บนเครื่องอื่น1 vCPU1 GBNVMe 20 GB
แนะนำบริการงานจริงที่มีคำขอต่อเนื่อง2 vCPU4 GBNVMe 40 GB
เครื่องบิลด์การคอมไพล์ใช้ทรัพยากรมากและใช้เวลานาน8 vCPU ขึ้นไป16 GB ขึ้นไปNVMe 100 GB

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

วิธีติดตั้ง Rust บน Cloud Server ของ THAI DATA CLOUD

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

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

  • Ubuntu Server 24.04 LTS
  • เครื่องมือของภาษาสำหรับคอมไพล์ (ควรคอมไพล์บนเครื่องบิลด์แยก)
  • Nginx พร้อมใบรับรอง SSL
  • ฐานข้อมูลถ้าแอปต้องเก็บข้อมูล

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    ติดตั้งเครื่องมือบนเครื่องบิลด์

    curl --proto "=https" --tlsv1.2 -sSf https://sh.rustup.rs | sh
    source "$HOME/.cargo/env"
    rustc --version
  2. 2

    คอมไพล์แบบเพิ่มประสิทธิภาพ

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

    cargo build --release
    ls -lh target/release/myapp
  3. 3

    ส่งไฟล์ไปเครื่องปลายทาง

    scp target/release/myapp user@server:/tmp/
    ssh user@server "sudo mv /tmp/myapp /opt/myapp/ && sudo chmod +x /opt/myapp/myapp"
  4. 4

    สร้างไฟล์บริการ

    # /etc/systemd/system/myapp.service
    [Unit]
    Description=Rust Application
    After=network.target
    
    [Service]
    User=myapp
    ExecStart=/opt/myapp/myapp
    EnvironmentFile=/opt/myapp/app.env
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
  5. 5

    ตั้ง Nginx เป็น Reverse Proxy

    location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  6. 6

    ตั้งไปป์ไลน์บิลด์อัตโนมัติ

    ให้ระบบ CI คอมไพล์และทดสอบทุกครั้งที่มีโค้ดใหม่ แล้วส่งไฟล์ไปเครื่องจริงเมื่อผ่าน เพราะการคอมไพล์ใช้เวลานานจึงไม่ควรทำด้วยมือทุกครั้ง

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

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

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

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

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

ทำไมควรรัน Rust บน Cloud Server ของ THAI DATA CLOUD

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

ใช้ทรัพยากรน้อยมากขณะให้บริการ จึงรันบน Cloud Server สเปกเล็กได้

ใช้เครื่องบิลด์สเปกสูงเฉพาะช่วงคอมไพล์แล้วปิดเพื่อคุมค่าใช้จ่าย

เชื่อมกับฐานข้อมูลใน Private Network ได้โดยตรง

คำถามที่พบบ่อยเกี่ยวกับ Rust

Rust ต่างจาก Go อย่างไร

Go เรียนรู้เร็วกว่ามากและเพียงพอสำหรับบริการหลังบ้านทั่วไป ส่วน Rust ให้ประสิทธิภาพสูงกว่าและควบคุมหน่วยความจำได้ละเอียดกว่า แลกกับช่วงเรียนรู้ที่ชันกว่ามาก ทีมส่วนใหญ่จึงเลือก Go สำหรับงานทั่วไป

คุ้มไหมที่จะเรียนรู้

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

ทำไมคอมไพล์นาน

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

ให้เราติดตั้ง Rust ให้ฟรี บน Cloud Server ในไทย

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