Chuyển đến nội dung chính
Kỹ thuật Dữ liệu
Big Data
Cloud

Hướng dẫn toàn diện sử dụng Azure Spot Instances để cắt giảm chi phí

Tìm hiểu Azure Spot Virtual Machines hoạt động ra sao, cách chúng giúp giảm đáng kể chi phí đám mây, và các chiến lược triển khai thực tiễn.
Anirudh Kulkarni's photo
Anirudh Kulkarni
Đã cập nhật · 10 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.

Điện toán đám mây rất hữu ích cho các ứng dụng Khoa học dữ liệu và AI. Có nhiều nhà cung cấp đám mây, và việc chọn đúng nhà cung cấp là yếu tố then chốt cho ứng dụng của chúng ta. Tuy nhiên, một thách thức lớn trong điện toán đám mây là quản lý chi phí. Khi triển khai ứng dụng và khối lượng công việc lên đám mây, chúng ta cần chú ý đến chi phí, vì các máy hoạt động trên đám mây có thể rất đắt đỏ. 

Trong bài viết này, chúng ta sẽ khám phá Azure Spot Virtual Machines (VMs), còn gọi là Azure Spot Instances. Những máy này cho phép chúng ta tiết kiệm chi phí khi triển khai trên Microsoft Azure. Nếu bạn mới làm quen với Microsoft Azure và cần phần giới thiệu, hãy tham khảo khóa học Giới thiệu về Azure của chúng tôi. Với người dùng nâng cao hơn, khóa học Kiến trúc và Dịch vụ Azure sẽ hữu ích. Cuối cùng, nếu bạn cần tài liệu tham khảo nhanh, bảng so sánh đơn giản giữa các nhà cung cấp đám mây có tại đây: So sánh dịch vụ AWS, Azure và GCP cho Khoa học dữ liệu và AI.  

Hãy cùng tìm hiểu Azure Spot VMs.

Azure Spot VMs là gì?

Azure Spot VMs là các máy ảo dự phòng trong các trung tâm dữ liệu của Azure tại một thời điểm bất kỳ. Vì những máy này hiện chưa được sử dụng, Azure cung cấp chúng với mức giá giảm đáng kể, đôi khi giảm tới 90% so với giá tiêu chuẩn của Azure VMs. 

Tuy nhiên, việc giảm chi phí này đi kèm với sự không chắc chắn. Nếu nhu cầu VM từ người dùng khác tăng lên, Azure có thể thu hồi các Spot VM này bất cứ lúc nào với rất ít thông báo. Điều này khiến Spot VMs trở nên khó đoán. Do đó, chúng ta chỉ nên dùng Spot VMs cho các tác vụ không yêu cầu tính sẵn sàng liên tục và có thể chấp nhận bị gián đoạn. Một số tác vụ như vậy gồm:

Công việc theo lô (batch jobs)

Batch jobs là các tác vụ có thể chạy trên máy tính mà không cần can thiệp thủ công. Những tác vụ này thường được xử lý theo nhóm lớn hay “lô”, tuần tự hoặc song song. Chúng thường có thời điểm bắt đầu và kết thúc linh hoạt, vì vậy có thể tạm dừng và tiếp tục mà không gây gián đoạn đáng kể. 

Ví dụ, hãy xem xét một tổ chức tài chính cần xử lý giao dịch vào cuối mỗi ngày làm việc. Họ có thể thiết lập một batch job để tự động nạp hàng nghìn hoặc hàng triệu giao dịch từ nhiều nguồn, xác thực chúng, rồi cập nhật số dư tài khoản tương ứng. 

Môi trường thử nghiệm và phát triển

Môi trường thử nghiệm và phát triển là nơi các nhà phát triển phần mềm có thể xây dựng và kiểm thử ứng dụng mà không ảnh hưởng đến môi trường sản xuất đang hoạt động. Việc thiết lập các môi trường này có thể tốn kém, và đây là nơi Spot VMs có thể phát huy tác dụng. 

Chẳng hạn, hãy hình dung một nhóm đang phát triển một website thương mại điện tử. Họ muốn thử một tính năng gợi ý sản phẩm dựa trên lịch sử duyệt web của người dùng. Họ có thể phát triển tính năng này trong môi trường phát triển, sau đó chuyển sang môi trường thử nghiệm để kiểm tra kỹ lưỡng lỗi, hiệu năng và trải nghiệm người dùng. Việc này có thể thực hiện trên Spot VMs với nhiều cấu hình khác nhau. Sau khi thử nghiệm thành công, họ có thể triển khai tính năng lên môi trường sản xuất để khách hàng sử dụng.

Ứng dụng chịu lỗi

Ứng dụng chịu lỗi là các ứng dụng có thể tiếp tục vận hành mà không bị gián đoạn ngay cả khi một số thành phần gặp sự cố. Điều này đạt được nhờ cơ chế dự phòng và chuyển đổi dự phòng tích hợp. Những ứng dụng như vậy rất phù hợp với Spot VMs. Ví dụ, một ứng dụng có nhiều máy chủ xử lý yêu cầu người dùng: nếu một máy chủ gặp lỗi, hệ thống sẽ tự động chuyển hướng yêu cầu sang máy chủ khác. Vì các hoạt động như vậy có tính chịu lỗi, chúng có thể chạy trên Spot VMs để tiết kiệm chi phí.

Lợi ích của Azure Spot VMs

Lợi ích chính khi dùng Azure Spot VMs là tiết kiệm chi phí lớn. Như đã đề cập, mức giảm có thể lên đến 90% so với giá VM theo nhu cầu. Nhờ mức giảm này, chúng ta có thể co giãn khối lượng công việc dựa trên năng lực hiện có, cho phép vận hành ở quy mô lớn mà nếu dùng VM theo nhu cầu sẽ rất tốn kém. Hơn nữa, với Spot VMs, chúng ta có thể đặt mức giá tối đa sẵn sàng trả cho VM. Điều này giúp kiểm soát chi tiêu. 

Khi VM sắp bị Azure thu hồi, chúng ta cũng có thể chọn chính sách loại bỏ (eviction policy) để xác định bước tiếp theo – hoặc giải phóng (deallocate) hoặc xóa VM. Nếu chọn giải phóng, VM sẽ dừng nhưng không bị xóa. Bằng cách này, chúng ta có thể khởi động lại VM khi khả dụng trở lại. Trong thời gian đó, chúng ta chỉ trả chi phí lưu trữ. Nếu chọn xóa, mọi dữ liệu và khối lượng công việc sẽ bị xóa. 

Cách triển khai Spot VM

Phần này giải thích cách triển khai Spot VM và chọn các tùy chọn liên quan như giá và chính sách loại bỏ. Chúng ta có thể triển khai một Spot VM đơn lẻ hoặc một nhóm Spot VM, gọi là Spot VM Scale Set.

Spot VM đơn lẻ 

Cách đơn giản nhất là tạo VM từ cổng Azure. 

  1. Chọn Virtual Machines trong mục Services trên cổng, sau đó chọn Create. 
  2. Trong trang Create a virtual machine, điền đầy đủ thông tin và chọn hộp kiểm Run with Azure Spot discount. 
  3. Sau đó, chúng ta cần chọn Eviction type và Eviction Policy.  
  4. Với Eviction type, có thể chọn Capacity only hoặc Price or capacity. Chọn Capacity only sẽ loại bỏ VM khi nhu cầu VM của Azure cao. Tùy chọn này đặt mức giá tối đa chúng ta sẵn sàng trả cho Spot VM. Để giảm mức giá tối đa, có thể chọn Price or Capacity. Khi đó, cần điền mức giá tối đa sẵn sàng trả. Với tùy chọn này, Azure sẽ loại bỏ VM khi nhu cầu VM của Azure cao hoặc khi chi phí Spot VM vượt quá mức giá tối đa đã đặt.
  5. Chúng ta cũng cần chọn chính sách loại bỏ – tức điều gì sẽ xảy ra nếu Azure loại bỏ máy. Có thể chọn Deallocate hoặc Delete. Chọn Deallocate sẽ dừng VM nhưng không xóa dữ liệu hoặc ứng dụng trên VM. Chúng ta sẽ không bị tính phí cho VM khi nó dừng, tuy nhiên vẫn bị tính phí cho bộ nhớ liên quan. Tùy chọn này phù hợp nếu muốn khởi động lại VM khi có lại dung lượng. Nếu chọn Delete, VM và mọi bộ nhớ tạm thời liên quan sẽ bị xóa khi Azure thu hồi phiên bản. 

Tạo máy ảo trong Microsoft AzureTạo máy ảo. Nguồn: Ảnh của Tác giả

Chúng ta cũng có thể dùng Azure CLI và Azure PowerShell, cùng các phương pháp khác, để khởi tạo Spot VM. Để biết thêm chi tiết, hãy tham khảo tài liệu Azure về Spot VMs. 

Spot Virtual Machine Scale Sets (VMSS) 

Chúng ta cũng có thể tạo các nhóm Spot VM gọi là Spot Virtual Machine Scale Sets. Để thực hiện, tìm Virtual Machine Scale Sets trên cổng Azure và tạo một nhóm. VMSS cho phép tự động hóa việc triển khai và quản lý nhiều Spot VM, giúp co giãn dễ dàng theo nhu cầu. Chúng ta có thể xác định tiêu chí co giãn, như mức sử dụng CPU hoặc lưu lượng mạng, và đặt dung lượng mong muốn dựa trên mức giá tối đa và yêu cầu về tính sẵn sàng.

Thực tiễn tốt nhất cho Azure Spot VMs

Chúng tôi khuyến nghị các thực tiễn sau khi sử dụng Spot VMs để đảm bảo khối lượng công việc luôn linh hoạt và tiết kiệm chi phí.

Kiểm tra dung lượng

Trước khi triển khai Spot VMs, tôi kiểm tra dung lượng sẵn có ở khu vực mong muốn và cho các kích thước VM dự định sử dụng. Dung lượng của Azure dao động theo nhu cầu từ khách hàng khác, vì vậy xác minh mức sẵn có sẽ giúp chúng ta đưa ra quyết định sáng suốt khi triển khai khối lượng công việc.

Đặt giá tối đa

Tôi đặt mức giá tối đa sẵn sàng trả theo giờ cho một VM. Điều này giúp kiểm soát chi phí.

Thiết kế để chịu gián đoạn

Vì Spot VMs có thể bị thu hồi trong thời gian ngắn, tôi khuyến cáo thiết kế khối lượng công việc có khả năng chịu gián đoạn. Sử dụng các chiến lược như checkpointing để lưu công việc định kỳ, cho phép tiếp tục từ mốc gần nhất thay vì bắt đầu lại. Với khối lượng xử lý phân tán, hãy đảm bảo tác vụ có thể phân phối lại giữa các phiên bản còn lại để duy trì thông lượng xử lý ngay cả khi một số phiên bản bị thu hồi.

Thiết lập giám sát

Giám sát hiệu quả là một chiến lược quan trọng khác để quản lý Spot VMs hiệu quả. Azure cung cấp công cụ theo dõi mức sử dụng, chi phí và sự kiện loại bỏ của Spot VMs. Bằng cách giám sát các chỉ số này, chúng ta có thể hiểu rõ hiệu năng của Spot VMs, từ đó điều chỉnh chiến lược khi cần. 

Azure Spot VMs so với Reserved Instances

Đôi khi, dùng VM đặt trước (reserved) có thể hợp lý hơn so với spot, tùy theo ứng dụng. Reserved VMs là một loại VM khác cũng cho phép tối ưu chi phí đám mây. Phần này giải thích sự khác biệt giữa hai loại phiên bản này.

Spot VMs

Như đã thấy, Spot VMs mang lại mức tiết kiệm đáng kể, đôi khi lên tới 90% so với giá theo nhu cầu. Tuy nhiên, các phiên bản này có thể bị Azure thu hồi với rất ít thông báo tùy thuộc vào nhu cầu về dung lượng. Do đó, chúng ta nên dùng spot instances cho khối lượng công việc linh hoạt về thời gian và có thể xử lý gián đoạn. Điều này bao gồm các job xử lý theo lô, môi trường phát triển và thử nghiệm, và các ứng dụng không lưu trạng thái có thể dễ dàng phân phối trên nhiều phiên bản. 

Reserved instances

Ngược lại, Reserved Instances được mua theo kỳ hạn một năm hoặc ba năm. Chúng ta có thể chọn một loại VM cụ thể với mức chiết khấu đáng kể so với giá theo nhu cầu, đổi lại cam kết sử dụng trong một hoặc ba năm. Lợi ích chính của Reserved Instances là không có rủi ro bị Azure thu hồi. Nếu khối lượng công việc có mô hình sử dụng dự đoán được và cần tính sẵn sàng liên tục, Reserved Instances có thể là lựa chọn tốt hơn.

Tóm lại, lựa chọn giữa Azure Spot VMs và Reserved Instances phụ thuộc vào nhu cầu cụ thể về chi phí, tính linh hoạt và độ tin cậy.

Kết luận

Azure Spot VMs là giải pháp tuyệt vời để đạt hiệu quả chi phí trong điện toán đám mây. Chúng có thể mang lại mức giảm giá đáng kể, đôi khi lên tới 90% so với giá theo nhu cầu. 

Azure Spot VMs đặc biệt hữu ích cho các khối lượng công việc linh hoạt và chịu được gián đoạn. Bao gồm các job xử lý theo lô, môi trường phát triển và thử nghiệm, hoặc bất kỳ ứng dụng nào không yêu cầu thời gian hoạt động liên tục. Với những khối lượng này, Spot VMs có thể giúp chúng ta giảm chi phí đáng kể.

Để tìm hiểu thêm về Azure Spot VMs, hãy xem các tài nguyên sau:

  • Tài liệu Azure: Tài liệu chính thức của Azure là điểm khởi đầu tuyệt vời, cung cấp hướng dẫn chi tiết, thực tiễn tốt nhất và tài liệu tham khảo kỹ thuật về việc sử dụng Spot VMs.
  • Diễn đàn và Hỗ trợ Cộng đồng: Diễn đàn cộng đồng và kênh hỗ trợ của Azure là nguồn tài nguyên quý giá để nhận câu trả lời cho các câu hỏi cụ thể và học hỏi từ kinh nghiệm của những người dùng Azure khác.

Nếu bạn thích bài viết này, hãy xem thêm các bài: Câu hỏi phỏng vấn Azure DevOps và Sử dụng GPT trên Azure.


Anirudh Kulkarni's photo
Author
Anirudh Kulkarni
LinkedIn

Tôi là chuyên viên viết tài liệu kỹ thuật tại MathWorks. Công việc của tôi bao gồm biên tập và viết tài liệu liên quan đến các sản phẩm của MathWorks trên Amazon Web Services, Microsoft Azure, Docker và NVIDIA.

Chủ đề
Kỹ thuật Dữ liệu
Big Data
Cloud

Học cùng DataCamp

Khóa học

Hiểu về Điện toán đám mây

2 giờ
260.2K
Một giới thiệu cơ bản về điện toán đám mây, bao gồm các khái niệm chính, thuật ngữ và công cụ.
Xem chi tiếtBắt Đầu Khóa Học

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.
Xem thêm
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem thêm