VPS tại Canada: Khi nào bạn thực sự cần?
Chỉ một lý do buộc bạn dùng server Canada: yêu cầu lưu trú dữ liệu. Tìm hiểu PIPEDA thực sự yêu cầu gì và đo RTT từ nơi người dùng truy cập.
VPS của bạn có cần đặt tại Canada không?
VPS hosting tại Canada đáng chọn khi luật hoặc hợp đồng yêu cầu dữ liệu phải được lưu trữ trên lãnh thổ Canada. Đây là lý do bắt buộc duy nhất. Một lượt khứ hồi từ kết nối gia đình tại Toronto đến data centre ở New York mất khoảng 18 ms, trong khi đến data centre ở Toronto mất khoảng 3 ms. Gần như không ứng dụng web nào có thể nhận biết sự khác biệt này.
Có 3 yếu tố khiến người dùng ưu tiên server tại Canada. Lưu trú dữ liệu là nghĩa vụ pháp lý, nên riêng yếu tố này đã đủ để quyết định. Độ trễ có thể đo được và thường thấp hơn mọi người nghĩ. Tính phí bằng đô la Canada là một tiện ích cho kế toán của bạn. Hãy xác định yếu tố đầu tiên có áp dụng cho bạn hay không trước khi cân nhắc các yếu tố khác.
Bài viết này giải thích cách các quy định hoạt động nói chung. Đây không phải là tư vấn pháp lý. Nếu tổ chức của bạn chịu sự ràng buộc của luật về quyền riêng tư, hãy hỏi cố vấn pháp lý của bạn.
Lưu trú dữ liệu: yêu cầu bắt buộc duy nhất
PIPEDA (Đạo luật Bảo vệ Thông tin Cá nhân và Tài liệu Điện tử) là luật liên bang của Canada về quyền riêng tư trong khu vực tư nhân. Luật này không yêu cầu thông tin cá nhân phải được lưu lại trong nước. Luật xem việc gửi dữ liệu cho một processor ở nước ngoài là chuyển dữ liệu để xử lý: tổ chức của bạn vẫn chịu trách nhiệm về dữ liệu, processor phải cung cấp mức bảo vệ tương đương, và bạn phải thông báo rõ cho mọi người rằng việc này diễn ra. Office of the Privacy Commissioner đã tham vấn về việc siết chặt quy định này vào năm 2019, sau đó vẫn giữ quan điểm hiện tại. Vì vậy, nhận định phổ biến rằng PIPEDA yêu cầu dữ liệu của bạn phải được lưu tại Canada là sai, dù nhiều nội dung quảng bá dịch vụ hosting vẫn lặp lại nhận định đó.
Các quy định thực sự về nơi lưu trú dữ liệu vẫn tồn tại. Chúng áp dụng trong những phạm vi hẹp hơn.
- Law 25 của Quebec yêu cầu đánh giá trước khi thông tin cá nhân được gửi ra ngoài tỉnh, và thông tin phải được bảo vệ đầy đủ tại nơi tiếp nhận. Quy định này có hiệu lực từ September 2023. Đây là yêu cầu về hồ sơ và một quyết định mà bạn phải có khả năng giải trình, không phải lệnh cấm.
- Các quy định trong khu vực công ràng buộc các cơ quan nhà nước và các công ty cung cấp dịch vụ cho họ. PIIDPA của Nova Scotia hạn chế việc lưu trữ thông tin cá nhân bên ngoài Canada. FIPPA của British Columbia từng có quy định tương tự, cho đến khi được sửa đổi vào năm 2021 để cho phép lưu trữ ở nước ngoài sau khi đánh giá.
- Các công việc cho chính phủ liên bang phải tuân theo định hướng cloud của Government of Canada. Định hướng này yêu cầu dữ liệu Protected B trở lên phải được lưu tại Canada.
- Các luật về quyền riêng tư trong lĩnh vực y tế của từng tỉnh có thêm các điều kiện riêng về nơi lưu trữ hồ sơ sức khỏe. Các điều kiện này khác nhau giữa các tỉnh.
- Hợp đồng với khách hàng và hồ sơ mời thầu công thường là yếu tố quyết định phổ biến nhất trong thực tế. Một security questionnaire ghi rằng "data at rest in Canada" ràng buộc bạn chặt chẽ như một đạo luật, vì bạn đã ký vào đó.
Cách kiểm tra trong thực tế rất đơn giản. Bạn có thể chỉ ra điều khoản đó không? Nếu không ai trong tổ chức của bạn nêu được đạo luật hoặc hợp đồng yêu cầu Canada, thì bạn đang lựa chọn dựa trên latency và giá.
Trung tâm dữ liệu tại Canada có nằm ngoài phạm vi pháp lý của Hoa Kỳ không?
Không phải chỉ vì đặt tại Canada. Đạo luật CLOUD của Hoa Kỳ (Clarifying Lawful Overseas Use of Data Act) áp dụng cho dữ liệu nằm trong quyền sở hữu, quyền lưu giữ hoặc quyền kiểm soát của một nhà cung cấp Hoa Kỳ, bất kể phần cứng được đặt ở đâu. Vì vậy, một region Toronto do một công ty Hoa Kỳ vận hành vẫn thuộc phạm vi của đạo luật này. Nếu yêu cầu thực tế liên quan đến thủ tục pháp lý nước ngoài thay vì vị trí địa lý, điều quan trọng là ai vận hành dịch vụ và ai giữ encryption key. Chỉ có địa chỉ tại Canada trên tòa nhà không đủ để trả lời câu hỏi đó.
Định tuyến là vấn đề bất ngờ thứ hai. Traffic giữa hai thành phố ở Canada thường đi qua Hoa Kỳ vì đây là nơi có peering giá rẻ từ trước đến nay. Các nhà nghiên cứu gọi hiện tượng này là định tuyến boomerang. Hãy chạy traceroute trước khi nói với bất kỳ ai rằng packet của bạn không bao giờ rời khỏi Canada.
traceroute vps.example.comTên hop thường chứa mã thành phố như nyc, chi hoặc ash. Những tên này chỉ là gợi ý và có thể nhanh chóng lỗi thời, vì vậy hãy xem chúng là lý do để hỏi nhà cung cấp, không phải bằng chứng. Đối với dữ liệu đang truyền, câu trả lời đáng tin cậy là encryption do bạn kiểm soát, không phải bản đồ. Nếu muốn có một đường truyền riêng giữa các máy của mình, VPN WireGuard tự host sẽ cung cấp đường truyền đó mà không phụ thuộc vào việc cáp quang đi qua quốc gia nào.
Độ trễ: hãy đo, đừng giả định
Tín hiệu ánh sáng trong cáp quang truyền được khoảng 200 km mỗi mili giây. Vì vậy, mỗi 100 km khoảng cách làm tăng khoảng 1 ms RTT trước khi tính đến bất kỳ thiết bị nào. Toronto cách Vancouver khoảng 3,400 km theo đường thẳng và xa hơn nếu tính theo tuyến cáp, nên mức thấp nhất vào khoảng 40 ms. Tuyến thực tế thường có độ trễ cao hơn.
The data behind this chart
[
{
"label": "Toronto",
"rtt_ms": 3
},
{
"label": "Montreal",
"rtt_ms": 12
},
{
"label": "New York",
"rtt_ms": 18
},
{
"label": "Chicago",
"rtt_ms": 24
},
{
"label": "Northern Virginia",
"rtt_ms": 26
},
{
"label": "Dallas",
"rtt_ms": 42
},
{
"label": "Vancouver",
"rtt_ms": 62
},
{
"label": "London",
"rtt_ms": 88
},
{
"label": "Frankfurt",
"rtt_ms": 98
}
]Đó là các số liệu được công bố điển hình cho một đường truyền dân dụng có kết nối tốt ở Toronto. Đây chỉ là điểm bắt đầu, không phải cam kết. Số liệu thực tế của bạn phụ thuộc vào mạng truy cập và kết nối peering của nhà cung cấp. Độ trễ cũng thay đổi theo từng thời điểm trong ngày.
Có 2 dòng đáng để đọc kỹ 2 lần. Toronto đến Montreal khoảng 12 ms, đủ gần để 2 thành phố được xem như cùng một region trong hầu hết trường hợp. Toronto đến Vancouver khoảng 62 ms, xa hơn Toronto đến Northern Virginia ở mức 26 ms. Đặt máy chủ ở Canada không đồng nghĩa với việc máy chủ ở gần người dùng của bạn.
Dù vậy, chặng cuối thường chi phối độ trễ. Cáp quang gia đình thêm vài mili giây. Cable thêm nhiều hơn khi đường truyền bận. Kết nối di động tự nó có thể thêm hàng chục mili giây. Người dùng điện thoại ở Toronto có thể thấy 50 ms khi kết nối đến máy chủ ở Toronto, còn chuyển máy chủ đó sang New York chỉ thay đổi trải nghiệm của họ vài phần trăm.
Cách kiểm tra độ trễ từ vị trí của người dùng
Trước tiên, hãy xác định người dùng của bạn thực sự ở đâu. Công cụ analytics đã phân loại các session theo thành phố hoặc khu vực. Hãy dùng dữ liệu đó thay vì đoán dựa trên vị trí văn phòng.
Sau đó, hãy đo từ vị trí đó. Bạn không thể kiểm tra độ trễ đến Vancouver từ một máy đặt tại Ottawa. Thuê một VPS theo giờ ở thành phố mục tiêu trong 20 phút rồi hủy nó. Nhờ đồng nghiệp hoặc khách hàng chạy một lệnh. Hoặc dùng mạng đo lường RIPE Atlas miễn phí tại https://atlas.ripe.net. Mạng này có probe ở các thành phố Canada và cho phép bạn chạy ping từ các probe đó.
sudo apt update && sudo apt install -y mtr-tiny traceroute iperf3
ping -c 20 vps.example.comĐọc 2 dòng cuối.
20 packets transmitted, 20 received, 0% packet loss, time 19031ms
rtt min/avg/max/mdev = 17.412/18.006/19.882/0.594 msavg là con số chính. mdev là jitter, tức độ dao động giữa các packet. Packet loss trên một đường truyền ngắn luôn là lỗi cần điều tra. Jitter cao ảnh hưởng đến thoại và game nhiều hơn mức trung bình cao hơn một chút, vì phía nhận phải buffer theo packet có thời gian truyền tệ nhất thay vì packet điển hình.
mtr --report --report-cycles 50 vps.example.commtr in tỷ lệ mất packet cho từng hop. Nếu lệnh kết thúc với lỗi permission, hãy chạy cùng sudo. Các hop ở giữa thường hiển thị packet loss không có thật, vì router đặt các phản hồi ICMP do chính chúng tạo ra ở mức ưu tiên thấp nhất. Chỉ packet loss tiếp tục đến dòng cuối mới là packet loss mà traffic của bạn thực sự chịu ảnh hưởng. Đọc hàng cuối trước, sau đó kiểm tra ngược lên trên.
Khi ICMP bị chặn hoặc bị giới hạn tốc độ, hãy đo thời gian của protocol thực tế.
curl -o /dev/null -s -w 'dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' https://vps.example.com/Mỗi trường là số giây tích lũy tính từ lúc bắt đầu request. connect trừ dns là một vòng TCP round trip. tls trừ connect là thời gian handshake. ttfb trừ tls là thêm một vòng round trip cộng với thời gian ứng dụng mất để trả lời. Khoảng chênh lệch cuối này là nơi hầu hết các site chậm thực sự mất thời gian. ttfb ở mức 0.8 s trên một đường truyền ngắn là vấn đề của ứng dụng. Di chuyển server sang thành phố khác sẽ không giải quyết được vấn đề này.
Để đo throughput, chạy server trên VPS và chạy client từ phía người dùng. iperf3 lắng nghe trên TCP 5201, vì vậy hãy mở port bằng ufw để kiểm tra rồi đóng lại khi hoàn tất.
iperf3 -siperf3 -c vps.example.com -t 20
iperf3 -c vps.example.com -t 20 -R
iperf3 -c vps.example.com -t 20 -P 8-R đảo ngược hướng truyền, vì vậy bạn đo được cả download lẫn upload. -P 8 mở 8 stream song song. Nếu 8 stream nhanh hơn nhiều so với 1 stream, giới hạn nằm ở TCP window trên đường truyền dài chứ không phải chính đường truyền, vì một stream chỉ có thể truyền một window trong mỗi round trip. Cùng một window trên đường truyền đến Vancouver truyền được khoảng một phần ba lượng dữ liệu mỗi giây so với đường truyền đến New York. Backup đường dài cũng hoạt động tương tự. Vì vậy backup ngoài site bằng restic có vẻ chậm khi chạy đến một target ở xa, ngay cả khi đường truyền nhanh.
Hãy chạy ping trong một terminal thứ hai trong khi iperf3 hoạt động. Nếu round trip tăng từ 20 ms lên 300 ms trong lúc truyền dữ liệu, đó là bufferbloat trong thiết bị truy cập của chính bạn. Không vị trí data centre nào có thể khắc phục vấn đề này.
Hãy đo nhiều lần và đo vào buổi tối. Congestion lúc 9pm mới là con số người dùng của bạn phải chịu. Con số lúc 4am là con số mà trang bán hàng muốn trích dẫn hơn.
Thời gian khứ hồi ảnh hưởng đến workload của bạn như thế nào
Một lần tải trang cold phải trải qua bốn lượt khứ hồi trước khi trình duyệt có thể hiển thị bất kỳ nội dung nào.
The data behind this chart
[
{
"label": "DNS lookup",
"toronto_to_new_york_ms": 18,
"toronto_to_vancouver_ms": 62
},
{
"label": "TCP handshake",
"toronto_to_new_york_ms": 18,
"toronto_to_vancouver_ms": 62
},
{
"label": "TLS 1.3 handshake",
"toronto_to_new_york_ms": 18,
"toronto_to_vancouver_ms": 62
},
{
"label": "Request and first byte",
"toronto_to_new_york_ms": 18,
"toronto_to_vancouver_ms": 62
},
{
"label": "All four round trips",
"toronto_to_new_york_ms": 72,
"toronto_to_vancouver_ms": 248
}
]Tra cứu DNS được gửi đến resolver thay vì server của bạn và thường đã có trong cache, nên lần truy cập warm sẽ bỏ qua bước này. Tính từ đầu đến cuối, lần tải cold bắt đầu chậm hơn 72 ms trên tuyến đến New York và 248 ms trên tuyến đến Vancouver. Cả hai con số này đều không đáng kể so với chỉ một truy vấn database mất 400 ms. Sau khi kết nối được mở, HTTP/2 và HTTP/3 truyền nhiều request đồng thời qua cùng kết nối, nên chi phí này chỉ phát sinh một lần thay vì cho từng file. Đặt static asset trên CDN (content delivery network) cũng loại bỏ hoàn toàn ảnh hưởng của thành phố đặt origin đối với các asset đó. Vì vậy, người dùng ở châu Âu có độ trễ 98 ms đến Toronto vẫn có thể tải trang nhanh.
Game multiplayer thời gian thực là trường hợp ngược lại, vì thời gian khứ hồi chính là trải nghiệm người chơi. Dưới khoảng 50 ms tạo cảm giác phản hồi ngay lập tức trong game hành động nhanh. Người chơi bắt đầu nhận thấy độ trễ ở khoảng 80 ms. Trên 120 ms, họ sẽ đổ lỗi cho server. Trong trường hợp này, region thực sự quyết định sản phẩm có tốt hay không. Server cho game có nhịp độ chậm dễ chấp nhận độ trễ hơn nhiều. Vì vậy, chạy server Minecraft trên VPS vẫn hoạt động tốt ở những khoảng cách có thể làm hỏng trải nghiệm của game bắn súng.
Database là nơi lựa chọn region có thể gây ảnh hưởng nghiêm trọng. Không được đặt application ở một region và database ở region khác. Mỗi truy vấn đều là một lượt khứ hồi. Một trang thực hiện 40 truy vấn sẽ chịu 40 lượt khứ hồi. Với 18 ms cho mỗi lượt, tổng thời gian gần một giây. Với 62 ms cho mỗi lượt, tổng thời gian vượt quá hai giây. Điều này xảy ra trên một trang vốn chỉ mất 30 ms khi database nằm trên cùng máy. Asynchronous replication sang region khác phù hợp với read replica và disaster recovery. Synchronous commit qua một tuyến đường dài sẽ cộng độ trễ của tuyến đó vào mọi lần ghi.
Interactive session nằm ở giữa hai trường hợp trên. SSH vẫn thoải mái ở khoảng 100 ms và bắt đầu có cảm giác trễ khi cao hơn mức này, vì mỗi lần nhấn phím phải chờ phản hồi quay lại. mosh dự đoán cục bộ và che giấu phần lớn độ trễ đó. Webhook và internal API luôn nên nằm cùng region với service mà chúng gọi.
Thanh toán, tiền tệ và thuế
Thanh toán bằng đô la Canada giúp tránh phí giao dịch ngoại tệ do công ty phát hành thẻ thu, thường khoảng 2.5% tính đến tháng 8 năm 2026. Cách này cũng giúp bạn ghi sổ bằng một loại tiền tệ. Nhà cung cấp ở Canada xuất hóa đơn có GST hoặc HST, và doanh nghiệp đã đăng ký có thể yêu cầu hoàn lại khoản này dưới dạng tín dụng thuế đầu vào. Đây là vấn đề tài chính và cần được xử lý theo góc độ tài chính. Nó không bao giờ nên quyết định nơi các packet được định tuyến. Để biết server thực sự tốn bao nhiêu và cách so sánh các gói mà không bị ảnh hưởng bởi mức giá gia hạn, hãy đọc chi phí thực tế mỗi tháng của một VPS.
Chi phí của một thị trường nhỏ hơn
Canada là một thị trường hosting nhỏ khi so với Hoa Kỳ. Vì vậy, lời khuyên trung thực phải nêu rõ những gì bạn phải đánh đổi.
- Có ít nhà cung cấp cạnh tranh cho khoản chi của bạn hơn. Vì vậy, giá trên mỗi gigabyte RAM hoặc disk thường cao hơn với cùng một hạng máy.
- Dung lượng tập trung ở Toronto và Montreal, còn Vancouver và Calgary có ít hơn. Có thêm một region tại Canada để failover thường đồng nghĩa với đường truyền dài, hoặc vẫn phải ra khỏi Canada.
- Một nhà cung cấp nhỏ trong khu vực có thể chỉ vận hành một tòa nhà, với một hoặc hai upstream carrier. Hãy hỏi có bao nhiêu carrier, và điều gì xảy ra khi một carrier bị lỗi.
- Danh mục phần cứng hẹp hơn. Các instance lớn và máy GPU dễ tìm hơn ở các region của Hoa Kỳ. Vì vậy, GPU VPS có thể không tồn tại với kích thước bạn muốn tại thành phố bạn muốn.
- Phạm vi hỗ trợ của một nhà cung cấp nhỏ là vấn đề thực tế, không phải câu hỏi marketing. Hãy hỏi khi nào có người trực.
Montreal là ngoại lệ về giá. Điện thủy điện của Quebec rẻ, và mùa đông giúp giảm chi phí làm mát. Vì vậy, khu vực Montreal có nhiều capacity với mức giá cạnh tranh với các region của Hoa Kỳ. Nếu yêu cầu của bạn là Canada thay vì một thành phố cụ thể, hãy bắt đầu từ đó.
Nếu các tier VPS tại Canada có vẻ quá nhỏ đối với workload, hãy so sánh VPS với dedicated server trước khi quyết định rằng vấn đề nằm ở quốc gia.
Khi hosting VPS ở Canada là lựa chọn phù hợp
- Một điều luật, hợp đồng hoặc chính sách của khu vực công yêu cầu Canada. Hãy host ở Canada. Các nội dung khác trong bài này không áp dụng, và bạn cũng nên yêu cầu provider cam kết bằng văn bản về nơi lưu trú dữ liệu.
- Người dùng của bạn tập trung tại một đô thị ở Canada và workload phụ thuộc vào latency: game multiplayer, thoại, remote desktop hoặc giao dịch. Hãy host ở thành phố gần nhất và đo cả hai phương án trước khi ký bất kỳ thỏa thuận nào.
- Người dùng của bạn phân bố trên toàn quốc. Toronto hoặc Montreal bao phủ phần lớn dân số, còn CDN phía trước các static asset giúp khách truy cập ở Vancouver nhiều hơn so với việc di chuyển origin.
- Các trường hợp còn lại, tức là phần lớn trường hợp. Hãy chọn dựa trên giá và hardware thực tế bạn nhận được, sau đó kiểm tra chất lượng support lúc 2am. Hãy benchmark ứng viên trước, vì hai plan có cùng specification sheet không nhất thiết có hiệu năng như nhau: cách benchmark VPS đúng cách.
Dù chọn phương án nào, hãy ghi lại lý do bên cạnh quyết định đó. Người tiếp theo cần biết vì sao hệ thống này phải đặt ở Canada xứng đáng nhận được câu trả lời tốt hơn một phỏng đoán. Nếu câu trả lời từng nằm trong một điều khoản hợp đồng, sẽ có lúc ai đó phải tìm lại điều khoản đó. Khi server đã tồn tại, 10 phút đầu tiên trên VPS mới ảnh hưởng đến security của bạn nhiều hơn thành phố nơi server đặt.
FAQ
PIPEDA có yêu cầu dữ liệu của tôi phải được lưu tại Canada không?
Không. PIPEDA (Đạo luật Bảo vệ Thông tin Cá nhân và Tài liệu Điện tử) không có quy định về nơi lưu trú dữ liệu đối với khu vực tư nhân. Gửi thông tin cá nhân cho một processor ở quốc gia khác là hoạt động chuyển dữ liệu để xử lý. Tổ chức của bạn vẫn chịu trách nhiệm về dữ liệu. Processor phải bảo vệ dữ liệu ở mức tương đương. Bạn cũng phải thông báo rõ cho mọi người rằng việc này diễn ra. Office of the Privacy Commissioner đã tham vấn về việc thay đổi quan điểm này vào năm 2019, rồi giữ nguyên quan điểm đó. Các yêu cầu về nơi lưu trú dữ liệu đến từ những nguồn khác, chẳng hạn như đánh giá theo Law 25 của Quebec, các đạo luật áp dụng cho khu vực công như PIIDPA của Nova Scotia, định hướng cloud của Government of Canada, hoặc điều khoản trong hợp đồng với khách hàng của bạn.
Người dùng ở Canada có nhận thấy server đặt tại Hoa Kỳ không?
Với một web application thông thường thì không. Một lượt khứ hồi từ Toronto đến New York mất khoảng 18 ms, còn đến Northern Virginia mất khoảng 26 ms. Cả hai đều ngắn hơn thời gian từ Toronto đến Vancouver là 62 ms. Người dùng sẽ nhận thấy thời gian phản hồi của server và dung lượng trang từ lâu trước khi nhận thấy 20 ms network. Họ sẽ nhận thấy độ trễ này trong game real-time, cuộc gọi thoại và mọi tình huống một người phải phản ứng với người khác.
Trung tâm dữ liệu ở Canada có nằm ngoài phạm vi của luật Hoa Kỳ không?
Không mặc nhiên. US CLOUD Act áp dụng với dữ liệu thuộc quyền sở hữu, quyền lưu giữ hoặc quyền kiểm soát của một nhà cung cấp Hoa Kỳ, bất kể server đặt ở đâu. Vì vậy, một region ở Canada do một công ty Hoa Kỳ vận hành vẫn thuộc phạm vi của luật này. Nếu quy trình pháp lý nước ngoài là mối lo thực tế của bạn, hãy xem ai vận hành service và ai giữ encryption key, thay vì chỉ xem địa chỉ của tòa nhà. Mã hóa bằng các key do chính bạn giữ sẽ thay đổi loại dữ liệu mà provider có thể bàn giao.
Làm cách nào để đo latency từ một thành phố nơi tôi không sinh sống?
Thuê một VPS theo giờ tại thành phố đó, chạy ping -c 20 và mtr --report --report-cycles 50 đến server của bạn, rồi hủy VPS. Mạng RIPE Atlas là một lựa chọn miễn phí khác, với các probe tại các thành phố ở Canada. Nếu ICMP bị chặn, hãy đo thời gian của request thực tế bằng curl -o /dev/null -s -w '%{time_connect} %{time_starttransfer}\n' https://your.server/. Lệnh này cung cấp thời gian khứ hồi TCP và toàn bộ thời gian đến byte đầu tiên.