Advance Lecture: MLOPS

AWS (EC2, S3, ECR, ECS)

1. Giới thiệu tổng quan

Trong bối cảnh trí tuệ nhân tạo ngày càng thâm nhập sâu vào mọi lĩnh vực, việc chỉ xây dựng mô hình Machine Learning (ML) giỏi thôi là chưa đủ. Doanh nghiệp hiện đại cần một quy trình cho phép mô hình được huấn luyện, triển khai và giám sát một cách tự động, nhất quán và có thể mở rộng — đó chính là lý do MLOps (Machine Learning Operations) ra đời.

MLOps được xem như sự mở rộng tự nhiên của DevOps vào lĩnh vực học máy, kết hợp giữa tư duy vận hành hệ thống và quy trình khoa học dữ liệu để rút ngắn vòng đời phát triển mô hình, giảm rủi ro khi triển khai và đảm bảo chất lượng đầu ra.

Trong hành trình hiện thực hóa MLOps, Amazon Web Services (AWS) đóng vai trò nền tảng hạ tầng lý tưởng. Với các dịch vụ chủ lực như EC2 (máy chủ ảo linh hoạt), S3 (lưu trữ dữ liệu đáng tin cậy), ECR (kho lưu trữ container), và ECS (dịch vụ quản lý container hóa), AWS mang lại một hệ sinh thái mạnh mẽ để tự động hóa, mở rộng và tối ưu hóa toàn bộ chu trình phát triển – triển khai – giám sát mô hình ML.

Bài viết này sẽ cùng bạn khám phá cách MLOps vận hành trên AWS, từ nền tảng lý thuyết DevOps, đến các công cụ AWS then chốt và ví dụ ứng dụng thực tế — giúp bạn hình dung rõ ràng hơn về cách các đội ngũ dữ liệu hiện đại đang xây dựng quy trình ML hiệu quả trong môi trường đám mây.

2. Giới thiệu về MLOps và mối quan hệ với DevOps

Trước khi đi sâu vào MLOps, cần hiểu rõ khái niệm DevOps – một triết lý và tập hợp các thực hành giúp kết nối giữa phát triển phần mềm (Development) và vận hành hệ thống (Operations). DevOps không chỉ là một bộ công cụ, mà là văn hóa làm việc hướng tới mục tiêu rút ngắn vòng đời phát triển, tăng tốc độ triển khai, và nâng cao chất lượng sản phẩm thông qua tự động hóa và phản hồi liên tục (Continuous Feedback).
Một quy trình DevOps điển hình bao gồm các giai đoạn:

Plan-Code-Build-Test-Release-Deploy-Operate-Monitor

1 vòng đời của chu trình DevOps

Nếu DevOps giải quyết bài toán tự động hóa cho phần mềm truyền thống, thì MLOps (Machine Learning Operations) mở rộng các nguyên tắc đó cho vòng đời của mô hình học máy (ML Lifecycle). Nói cách khác, MLOps là DevOps dành cho AI, tập trung vào quản lý toàn bộ quy trình từ thu thập dữ liệu đến triển khai và giám sát mô hình một cách hiệu quả. Mục tiêu của MLOps là:
- Chuẩn hóa và tự động hóa quá trình huấn luyện và triển khai mô hình.
- Quản lý dữ liệu và phiên bản mô hình (data & model versioning).
- Theo dõi, giám sát và tái huấn luyện mô hình khi dữ liệu thay đổi.
- Kết nối chặt chẽ giữa nhóm Data Science và nhóm Vận hành.

Vòng đời của MLOps sẽ bao gồm các bước sau:
Data collection - Data processing - Model training - Model validation - Deployment - Monitoring - Feedback loop

1 vòng đời của chu trình MLOps

Các công cụ MLOps được sử dụng nhiều nhất bao gồm:
- Data: DVC, MLflow, Airflow
- Training: PyTorch, TensorFlow
- Deployment: Docker, Kubernetes, SageMaker, FastAPI
- Monitoring: Prometheus, Grafana

Tổng quan lại, MLOps là bước tiến tất yếu của DevOps trong thời đại trí tuệ nhân tạo. Nó không chỉ mang lại tính tự động hóa và hiệu quả vận hành, mà còn đảm bảo độ tin cậy và khả năng mở rộng cho các hệ thống AI/ML trong doanh nghiệp. Phần tiếp theo chúng ta sẽ cùng đi tìm hiểu cụ thể các dịch vụ AI trên nền AWS qua EC2, S3, ECR và ECS.

3. AWS EC2: Hạ tầng tính toán linh hoạt cho MLOps

3.1 Tổng quan

Amazon Elastic Compute Cloud (AWS EC2) là dịch vụ cung cấp năng lực tính toán theo yêu cầu, cho phép người dùng thuê máy chủ ảo (instances) để triển khai, huấn luyện hoặc vận hành mô hình machine learning trên nền tảng đám mây AWS.
Thay vì đầu tư phần cứng vật lý tốn kém và khó mở rộng, EC2 mang đến khả năng tăng giảm tài nguyên linh hoạt, giúp các nhóm ML có thể tối ưu chi phí theo nhu cầu thực tế của từng giai đoạn trong pipeline MLOps - từ huấn luyện, kiểm thử đến triển khai mô hình

Amazon EC2

3.2 Các thành phần chính trong EC2

Một phiên bản EC2 (instance) có thể bao gồm:
- Máy ảo ** (Virtual Machine): Tài nguyên tính toán cốt lõi
- EBS (Elastic Block Store): Lưu trữ dạng ổ đĩa gắn kèm, dùng cho dữ liệu huấn luyện, checkpoints hoặc log.
- ELB (Elastic Load Balancer): Phân phối tải giữa nhiều instance để đảm bảo hiệu năng và tính sẵn sàng cao.
- ASG (Auto Scaling Group): Tự động thêm hoặc giảm số lượng instance tùy theo mức độ tải hoặc tình trạng hệ thống.

Nhờ sự kết hợp này, EC2 có thể trở thành môi trường linh hoạt để chạy các workloads từ huấn luyện deep learning quy mô lớn đến phục vụ inference thời gian thực.

3.3 Các đặc điểm nổi bật của AWS EC2

  • Scalability (Khả năng mở rộng): Dễ dàng mở rộng tài nguyên khi nhu cầu tăng, giảm chi phí khi không sử dụng
  • Instances Type (Đa dạng các loại máy): Có đa dạng các loại instance phù hợp với hiệu năng và giá cả khác nhau, như:
    • General Purpose: Cân bằng hiệu năng giữa CPU và RAM
    • Compute Optimized: Tối ưu cho xử lý CPU-intensive như xử lý batch, mô phỏng, ...
    • Memory Optimized: Cho workloads nặng bộ nhớ như phân tích big data hay SAP HANA.
    • Accelerated Computing - Hỗ trợ GPU/FPGA(như P5, G6), phù hợp cho deep learning hoặc mô phỏng khoa học.
  • Elastic IP & Security Group: Cho phép quản lý địa chỉ Ip cố định và kiểm soát truy cập mạng chi tiết cho từng instance.
  • Amazon Machine Image (AMI): Cung cấp các template sẵn có với hệ điều hành và môi trường cài đặt (có thể tùy chỉnh để khởi chạy nhanh nhiều instace giống nhau.

3.4 Bảo mật mạng trong EC2

Trong hệ sinh thái AWS, Security Group (SG) là thành phần cốt lõi đảm bảo an ninh mạng cho các tài nguyên tính toán. Có thể hiểu đơn giản, Security Group hoạt động như một firewall ảo, giúp kiểm soát luồng dữ liệu đi vào (inbound) và đi ra (outbound) khỏi instance. Khác với firewall truyền thống hoạt động ở tầng hạ tầng vật lý, Security Group được gắn trực tiếp vào instance và được quản lý tập trung qua AWS Console hoặc CLI, mang lại sự linh hoạt cao và dễ dàng tự động hóa trong quy trình MLOps.

Bảo mật mạng trong EC2

Một Security Group bao gồm 2 quy tắc:
- Inbound Rules: Xác định traffic nào được phép đi vào instance.
- Outbound Rules : Xác định traffic nào được phép đi ra từ instance đến các địa chỉ khác trên Internet hoặc trong mạng nội bộ AWS.
Mỗi quy tắc trong SG bao gồm:
- Type/Protocol/Port Range: xác định giao thức và cổng truy cập
- Source/Destination: định nghĩa phạm vi IP được thực hiện
- Description: Mô tả ngắn gọn giúp quản trị dễ dàng kiểm soát.
AWS cho phép áp dụng nhiều Security Groups lên cùng một instance, đồng thời các quy tắc được phép (allow) mặc định, không có deny rules — nếu không có quy tắc nào cho phép, lưu lượng sẽ bị chặn.
Vì thế, trong các hệ thống MLOps triển khai trên EC2, SG sẽ hỗ trợ:
- Giới hạn quyền truy cập chỉ cho các thành phần hợp lệ
- Bảo vệ API inference khỏi các yêu cầu trái phép.
- Tăng tính tuân thủ (compliance) và giảm rủi ro tấn công mạng.

3.5 Elastic Load Balancer(ELB) - Phân phối tải thông minh

Khi hệ thóng ML phục vụ lượng truy cập lớn hoặc yêu cầu tính sẵn sàng cao, ELB đóng vai trò như bộ điều phối lưu lượng tự động:
- Phân phối yêu cầu đến nhiều EC2 instances trong cùng một nhóm.
- Giảm nguy cơ single point of failure (khi một instance bị lỗi, ELB tự chuyển traffic sang instance khỏe mạnh).
- Tăng khả năng mở rộng theo chiều ngang — tức thêm nhiều instance để phục vụ nhiều người dùng hơn.

Trong quy trình MLOps, ELB thường được tích hợp cùng Auto Scaling Group để đảm bảo hệ thống inference hoạt động ổn định và tối ưu chi phí.

Elastic Load Balancer

3.6 Auto Scaling Group(ASG) - Tự động mở rộng hạ tầng ML

ASG (Auto Scaling Group) là cơ chế giúp hệ thống EC2 tự động tăng hoặc giảm số lượng instance tùy theo mức tải hoặc hiệu năng mong muốn. Ví dụ dễ hiểu nhất đó là khi nhu cầu inference tăng cao vào giờ cao điểm, ASG có thể tự động khởi tạo thêm instance mới; khi nhu cầu giảm, nó sẽ dừng các instance dư thừa để tiết kiệm chi phí.
Các tính năng chính của ASG bao gồm:
- Dynamic Scaling: mở rộng dựa theo các chỉ số như CPU Utilization, request count,…
- Scheduled Scaling: mở rộng hoặc thu hẹp vào khung giờ cố định (VD: tăng buổi sáng, giảm buổi tối).
- Predictive Scaling: sử dụng machine learning để dự đoán nhu cầu và mở rộng chủ động.
- Health Check: tự động thay thế instance không hoạt động.

Khi kết hợp SG + ELB + ASG, hệ thống MLOps đạt được ba yếu tố cốt lõi của hạ tầng hiện đại, đó là An toàn (Security), Khả năng mở rộng (Scalability), Tính sẵn sàng cao (High availability).

3.7 Ứng dụng EC2 trong MLOps

Trong pipeline MLOps, EC2 có thể được sử dụng ở nhiều giai đoạn khác nhau:
- Huấn luyện mô hình: EC2 GPU instances(P5, G6) cho phép huấn luyện nhanh hơn với dữ liệu lớn.
- Triển khai mô hình (deployment): EC2 đóng vai trò host backend inference API hoặc tích hợp với ECS/ECR để triển khai container.
- Giám sát và mở rộng: Kết hợp CloudWatch để theo dõi hiệu năng và tự động scale hệ thống theo nhu cầu thực tế.

4. AWS S3 - Dịch vụ lưu trữ dữ liệu trong MLOps

AWS Simple Storage Service (S3) là nền tảng lưu trữ trung tâm cho toàn bộ dữ liệu và mô hình học máy. Đây là nơi mà các nhóm Data Science và Engineering lưu trữ, truy cập và quản lý dữ liệu một cách linh hoạt, bảo mật và gần như không giới hạn dung lượng.

4.1 Tổng quan về AWS S3

AWS S3 là dịch vụ lưu trữ dạng đối tượng (object storage) do Amazon cung cấp, cho phép người dùng lưu trữ bất kỳ loại dữ liệu nào – từ hình ảnh, video, tệp văn bản cho tới dữ liệu huấn luyện, checkpoint mô hình hay log hệ thống. Điểm mạnh của S3 là khả năng mở rộng vô hạn, độ bền dữ liệu cao, cùng tính sẵn sàng (99.99%), đảm bảo dữ liệu luôn an toàn và sẵn sàng truy cập.

4.2 ác tính năng nổi bật của S3

  • Khả năng mở rộng (Scalability): Không giới hạn dung lượng lưu trữ.
  • Độ bền và tính sẵn sàng cao: Dữ liệu được sao chép tự động qua nhiều vùng lưu trữ, giúp hạn chế rủi ro mất mát
  • Bảo mật mạnh mẽ: Quản lý truy cập thông qua IAM Policy, Bucket Policy và cơ chế mã hóa dữ liệu khi lưu trữ hoặc truyền tải
  • Chi phí linh hoạt: Chỉ cần thanh toán theo dung lượng thực tế sử dụng.

4.3 Một số khái niệm trong S3

  • Bucket: Là một nơi chứa các đối tượng dữ liệu. Mỗi bucket phải có tên duy nhất toàn cầu (unique name) và được tạo tại một vùng địa lý cụ thể
  • Object: Gồm có 3 thành phần chính
    • Data: Dữ liệu thực tế được lưu trữ
    • Key: Khóa định danh duy nhất cho mỗi đối tượng trong bucket
    • Metadata: Thông tin mô tả đối tượng, như loại tệp, ngày tạo, hoặc cấu hình quyền truy cập
    • Version ID: Mỗi khi bật versioning, S3 tự động gán mã phiên bản cho từng tệp.

4.4 Một số ứng dụng của S3 trong MLOps

Trong quy trình MLOps, S3 thường được ứng dụng trong nhiều trường hợp, như:
- Data Lake: Lưu trữ tập trung dữ liệu thô, dữ liệu đã xử lý và dữ liệu huấn luyện
- Lưu checkpoint mô hình, giúp dễ dàng recover trạng thái hoặc tái huyến luyện mô hình
- Thường được tích hợp với SageMaker, Lambda để tự động hóa các quy trình huấn luyện, triển khai và phân tích dữ liệu.

5. AWS ECR - Kho lưu trữ container

AWS Elastic Container Registry (ECR) là dịch vụ kho lưu trữ container images, giúp các nhóm phát triển lưu trữ, quản lý và triển khai hình ảnh Docker (Docker images) một cách an toàn và hiệu quả. Trong quy trình MLOps, ECR đóng vai trò là “trạm trung chuyển” của các container – nơi chứa phiên bản đóng gói của mô hình machine learning hoặc ứng dụng inference trước khi được triển khai lên môi trường thực thi như AWS ECS, EKS, hoặc SageMaker.

5.1 Tổng quan về AWS ECR

Thay vì phải thiết lập một registry riêng (Docker Hub, Harbor,...), ECR thường được sử dụng để
- Lưu trữ hình ảnh container được build từ pipeline CI/CD
- Quản lý version và tag của từng image mô hình ML
- Tích hợp trực tiếp với các dịch vụ triển khai như ECS, EKS hoặc Lambda
- Đảm bảo tính bảo mật, sẵn sàng cao và hiệu năng khi truy xuất image.

Cách ECR hoạt động

5.2 Quy trình hoạt động của ECR

  • Sau khi huấn luyện mô hình ML và đóng gói thành ứng dụng, ta build thành 1 Docker image
  • Sau đó, sử dụng lệnh ws ecr get-login-account để xác thực, sau đó đẩy image lên repository ECR
  • Lúc này, ECS hoặc EKS sẽ tự động pull image mới nhất từ ECR để triển khai container phục vụ inference.

5.3 Ưu điểm nổi bật của ECR

  • Tích hợp sâu với AWS, kết nối liền mạch với ECS, EKS, Lambda, CloudWatch và IAM, giúp kiểm soát truy cập chi tiết và giám sát dễ dàng.
  • Bảo mật: Mã hóa dữ liệu khi lưu trữ (encryption at rest) và khi truyền tải (encryption in transit).
  • Tối ưu chi phí: Tính phí dựa vào dung lượng lưu trữ vào lượng dữ liệu truy xuất, không cần quản lý server

5.4 Ứng dụng thực tế trong MLOps

  • Lưu trữ model inference container (ví dụ: FastAPI, Flask, hoặc TensorFlow Serving).
  • Lưu trữ training environment images dùng lại cho nhiều dự án ML.
  • Đảm bảo phiên bản hóa container – giúp tái lập lại môi trường triển khai mô hình cũ.
  • Kết hợp với ECS để triển khai mô hình dạng microservice hoặc API inference.

6. AWS ECS - Dịch vụ điều phối container

6.1 Chức năng và vai trò chính của AWS ECS

Trong quy trình MLOps, AWS ECS đóng vai trò là lớp điều phối và vận hành các ứng dụng container hoá, đặc biệt hữu ích cho việc:
- Triển khai mô hình Machine Learning đã được đóng gói thành container (từ ECR).
- Tự động mở rộng, giám sát và duy trì trạng thái hoạt động ổn định của dịch vụ ML.
- Tích hợp trực tiếp với các dịch vụ khác như CloudWatch (giám sát log và metrics) và ELB (phân phối tải).
Với ECS, việc triển khai mô hình hoặc pipeline ML trở nên tự động hoá, linh hoạt và an toàn hơn

6.2 Kiến trúc và thành phần chính của ECS

ECS hoạt động dựa trên 3 thành phần cốt lõi:
- Cluster: Nhóm logic chứa các tài nguyên tính toán dùng để chạy instance
- Task Definition: định nghĩa một số chức năng:
- Docker image
- Cấu hình CPU, bộ nhớ
- Các biến môi trường, cổng mạng và quyền IAM
- Service: Đảm bảo số lượng container luôn được duy trì theo mong muốn, tự động khởi tạo lại khi có container gặp sự cố và có thể kết nối với Application Load Balancer (ALB) để phân phối lưu lượng

Cách ECS hoạt động

6.3 Một số tính năng nổi bật

  • Tích hợp sâu với AWS Ecosystem: Kết nối liền mạch với ECR, CloudWatch, IAM và ALB.
  • Auto Scaling: Tự động điều chỉnh số lượng container theo tải thực tế.
  • Health Check & Restart: Giám sát tình trạng container, tự động khởi động lại khi không ổn định.
  • Đa dạng chế độ chạy:
    • EC2 Launch Type – chạy trên các instance do người dùng quản lý.
    • Fargate Launch Type – không cần quản lý máy chủ, chỉ định tài nguyên CPU/RAM và AWS sẽ xử lý phần còn lại.

6.4 Ứng dụng thực tế

Trong thực tế, ECS thường được sử dụng để triển khai các API phục vụ mô hình ML. Quy trình thông thường:
- Đóng gói model thành container và đẩy image lên AWS ECR.
- Tạo Task Definition chỉ định image, tài nguyên và cấu hình mạng.
- Khởi chạy Service trong Cluster ECS, kết nối với ALB để cân bằng tải.
- Theo dõi hoạt động qua CloudWatch và tự động scale khi cần.