Tới nội dung
Cloudj

Ứng dụng VPS

Host SaaS tại Canada: chạy ứng dụng trên VPS Toronto

Hướng dẫn host SaaS tại Canada trên VPS Toronto: trả lời khách hàng dữ liệu nằm ở đâu, kiến trúc khởi đầu, sao lưu và quyền riêng tư ở mức tổng quan.

Cập nhật · 6 phút đọc

Nếu bạn là đội ngũ Việt Nam bán phần mềm SaaS cho doanh nghiệp Canada, sớm muộn gì cũng sẽ nhận một bảng câu hỏi bảo mật, và một trong những câu đầu tiên là: "Dữ liệu của chúng tôi được lưu ở đâu?" Nếu câu trả lời hiện tại là "ở một vùng nào đó tại Mỹ, cộng thêm vài dịch vụ bên thứ ba", thương vụ có thể bị chậm lại. Host SaaS tại Canada trên máy chủ ở Toronto cho bạn câu trả lời rõ ràng hơn cho phần lõi của sản phẩm. Bài này hướng dẫn cách tổ chức một SaaS nhỏ trên VPS Toronto để mô tả luồng dữ liệu chính xác, nên bắt đầu với kiến trúc nào, và "đặt máy chủ ở Canada" có giới hạn ở đâu. Đây là hướng dẫn chung, không phải tư vấn pháp lý.

Câu hỏi thật sự đằng sau

Khi khách hỏi dữ liệu nằm ở đâu, họ thường muốn biết ba điều:

  1. Bản chính được lưu ở đâu, tức database production và file người dùng tải lên.
  2. Các bản sao đi đâu: bản sao lưu, bản replica, log, công cụ phân tích, công cụ hỗ trợ khách hàng.
  3. Ai xử lý dữ liệu: mọi bên thứ ba chạm vào dữ liệu khách hàng, và họ ở nước nào.

Chuyển máy chủ sang Canada giải quyết điểm thứ nhất. Điểm hai và ba phụ thuộc vào kiến trúc và nhà cung cấp bạn chọn, và đây là chỗ phần lớn sản phẩm SaaS để dữ liệu đi qua biên giới mà không ai chủ động quyết định. Phần còn lại của bài giúp bạn giữ cả ba câu trả lời ngắn gọn và đúng sự thật.

Lập bản đồ dữ liệu trước khi chuyển

Hãy viết một bảng kê đơn giản. Nó cũng chính là câu trả lời cho bảng câu hỏi của khách.

Dữ liệuVị trí thường gặpCó giữ ở Canada được không?
Database ứng dụngMáy chủ của bạnĐược, trên VPS Toronto
File người dùng tải lênỔ đĩa hoặc object storageĐược, nếu lưu trên máy chủ Toronto của bạn
Bản sao lưuMáy chủ thứ hai hoặc dịch vụ lưu trữĐược, nếu đích lưu ở Canada; bản sao ngoài nước sẽ thay đổi câu trả lời
Log ứng dụngMáy chủ, hoặc dịch vụ log bên ngoàiĐược nếu giữ trên máy chủ; nếu không thì kiểm tra vùng của nhà cung cấp
Email giao dịchNhà cung cấp dịch vụ gửi emailTùy nhà cung cấp
Thanh toánCổng thanh toánThường do cổng thanh toán xử lý ở vùng của họ
Theo dõi lỗi, phân tíchCông cụ SaaSTùy tùy chọn vùng của nhà cung cấp
Tính năng AI, LLMNhà cung cấp API modelTùy nhà cung cấp và vùng

Hãy trung thực ở cột bên phải. "Ứng dụng và database chạy tại Toronto; nhà cung cấp email và thanh toán xử lý một phần dữ liệu giới hạn theo điều khoản của họ" là câu trả lời đáng tin. "Toàn bộ dữ liệu ở lại Canada" là câu rủi ro, trừ khi bạn đã thật sự kiểm tra từng dòng.

Kiến trúc khởi đầu để host SaaS tại Canada

Cloudj có máy chủ cloud tại Canada đặt ở Toronto, bắt đầu từ 1 vCPU, 1 GB RAM, 20 GB ổ đĩa và lên tới cấu hình tùy chỉnh 104 vCPU, 512 GB RAM. Mỗi vị trí có 30 gói dựng sẵn, hoặc bạn tự phối vCPU, RAM và ổ đĩa. Dưới đây là lộ trình lớn dần theo sản phẩm.

Giai đoạn 1: một máy chủ

Với sản phẩm giai đoạn đầu, chạy mọi thứ trên một máy: reverse proxy có TLS (Nginx hoặc Caddy), ứng dụng chạy bằng Docker hoặc systemd, và PostgreSQL. Khoảng 2 vCPU, 4 GB RAM là điểm khởi đầu hợp lý cho một ứng dụng nhỏ, dù con số thực tế phụ thuộc nhiều vào stack của bạn.

apt update && apt install -y nginx postgresql
ufw allow OpenSSH
ufw allow 'Nginx Full'
ufw enable

Để PostgreSQL chỉ lắng nghe trên localhost, và triển khai bằng SSH key thay vì mật khẩu.

Giai đoạn 2: tách database

Khi database bắt đầu tranh RAM với ứng dụng, hãy chuyển nó sang một máy chủ riêng cũng ở Toronto. Cho máy database nhiều RAM hơn và cân nhắc CPU dedicated nếu truy vấn giữ nhân bận liên tục. Trên firewall, chỉ cho phép cổng database từ IP của máy ứng dụng, và bật TLS cho kết nối giữa hai máy.

Giai đoạn 3: thêm dự phòng và sao lưu

Thêm máy ứng dụng thứ hai đứng sau một load balancer do bạn tự vận hành (ví dụ HAProxy hoặc Nginx trên một máy nhỏ), cùng một đích sao lưu. Cách làm thực tế là chạy pg_dump hằng đêm kèm lưu trữ WAL liên tục sang một máy chủ Toronto khác. Hãy thử khôi phục định kỳ; bản sao lưu chưa từng được khôi phục thử chỉ là hy vọng, chưa phải kế hoạch. Đồng thời lưu custom image của máy ứng dụng đã cấu hình để dựng lại nhanh khi cần.

Cả ba giai đoạn đều nằm gọn trong một thành phố. Điều đó dễ giải thích về nơi lưu dữ liệu, nhưng cũng có nghĩa một sự cố trong khu vực sẽ ảnh hưởng toàn bộ. Một số đội giữ thêm bản sao mã hóa ở nước khác để phục hồi thảm họa và công khai điều này với khách. Đó là đánh đổi cần quyết định có chủ đích, dựa trên kỳ vọng của khách hàng.

Luật quyền riêng tư, ở mức tổng quan

Luật bảo vệ quyền riêng tư cấp liên bang cho khu vực tư nhân ở Canada là PIPEDA, và một số tỉnh có luật riêng áp dụng cho doanh nghiệp tại đó. Nhìn chung, các luật này tập trung vào sự đồng ý, mục đích sử dụng, biện pháp bảo vệ và trách nhiệm giải trình đối với thông tin cá nhân, kể cả khi chuyển cho nhà cung cấp dịch vụ. Chúng thường không đơn giản yêu cầu mọi dữ liệu phải lưu ở Canada, nhưng một số khách hàng, nhất là khu vực công, y tế và giáo dục, có điều khoản hợp đồng hoặc quy định ngành yêu cầu như vậy.

Host tại Toronto giúp bạn đáp ứng kỳ vọng về nơi lưu dữ liệu của khách. Bản thân nó không làm sản phẩm tuân thủ bất cứ luật nào. Hợp đồng, chính sách quyền riêng tư, phân quyền truy cập, quy trình xử lý sự cố rò rỉ và danh sách nhà cung cấp quan trọng không kém vị trí máy chủ. Với những gì vượt ra ngoài định hướng chung, hãy hỏi luật sư chuyên về quyền riêng tư tại Canada.

Các điểm bảo mật cơ bản mà bảng câu hỏi hay hỏi

  • Chỉ đăng nhập bằng SSH key, tắt đăng nhập root và đăng nhập bằng mật khẩu.
  • Firewall chỉ mở công khai cổng 80 và 443.
  • Cập nhật bảo mật tự động, hoặc lịch vá lỗi có ghi chép.
  • Mã hóa đường truyền ở mọi nơi, kể cả giữa các máy chủ của bạn.
  • Tài khoản riêng và quyền tối thiểu cho từng người có quyền truy cập máy chủ, thu hồi key khi nhân sự nghỉ việc.
  • Theo dõi CPU, RAM và mạng, có sẵn trong console cho từng máy chủ, cộng với cảnh báo từ ứng dụng.

Chi phí và thanh toán

Bạn có thể trả theo giờ từ số dư tài khoản, phù hợp cho máy staging và thử nghiệm ngắn, hoặc trả trước kỳ hạn 1, 3, 6 hay 12 tháng có tùy chọn tự gia hạn cho môi trường production. Gói tháng tại Toronto có sẵn 5 TB lưu lượng mỗi tháng; với gói theo giờ, lưu lượng tính theo GB thực dùng. Máy chủ theo giờ vẫn bị tính phí khi đã tắt, nên hãy xóa các máy staging không còn dùng. Tài khoản tính bằng USD, và đội ngũ ở Việt Nam có thể nạp tiền bằng chuyển khoản ngân hàng theo VND. Xem giá cập nhật trên trang bảng giá.

Khi nào Toronto không phải lựa chọn đúng

  • Nếu khách hàng chủ yếu ở Mỹ, một vị trí tại Mỹ có thể phục vụ họ tốt hơn; hướng dẫn khu vực châu Mỹ so sánh các lựa chọn.
  • Nếu bạn chạy công cụ giao dịch nhạy với độ trễ gần thị trường Mỹ, máy chủ New York là lựa chọn thường gặp, xem bài VPS forex tại New York.
  • Nếu bạn còn bán cho khách ở Anh và châu Âu, triển khai thêm một cụm ở đó có thể gọn hơn là phục vụ tất cả từ Canada. Bài VPS forex tại London cho bạn hình dung về vị trí này.

Để có góc nhìn tổng quát khi chọn máy chủ tại Canada, hãy đọc hướng dẫn chọn VPS Canada.

Câu hỏi thường gặp

Host tại Canada có giúp SaaS tuân thủ PIPEDA không?

Không. Vị trí chỉ là một yếu tố. Việc tuân thủ phụ thuộc vào cách bạn thu thập, sử dụng, bảo vệ và chia sẻ thông tin cá nhân. Hãy hỏi luật sư về trường hợp cụ thể của bạn.

Có giữ bản sao lưu ở Canada được không?

Được, bằng cách gửi sang một máy chủ thứ hai tại Toronto. Nếu bạn giữ thêm bản sao ở nước khác, hãy nêu rõ điều đó khi trả lời khách.

SaaS mới nên bắt đầu với cấu hình nào?

Nhiều ứng dụng nhỏ bắt đầu với 2 vCPU, 4 GB RAM và database chung máy, rồi tách database ra khi tải tăng.

Bắt đầu theo giờ rồi chuyển sang theo tháng được không?

Gói theo giờ rất hợp để thử nghiệm. Với production, gói trả trước có sẵn lưu lượng dễ dự trù chi phí hơn. Kiểm tra các tùy chọn cho máy chủ của bạn trong console.

Khởi chạy tại Toronto

Viết bảng kê dữ liệu, triển khai một máy chủ Toronto, và mở rộng từ một máy sang kiến trúc tách lớp khi số liệu cho thấy cần. Console Cloudj hiển thị giá chính xác trước khi bạn triển khai.

Triển khai máy chủ hoặc mua proxy

Chọn vị trí trong console, xem giá trực tiếp và thanh toán từ số dư tài khoản.