AWS Data Services for ML

Mục lục

1. Tổng quan

Các dịch vụ AWS dành cho lưu trữ, xử lý và chuẩn bị dữ liệu cho machine learning.

2. Data Storage

2.1 Amazon S3

  • Primary storage (Lưu trữ chính) cho dữ liệu huấn luyện ML
  • Use Cases: Dữ liệu thô (raw data), dữ liệu đã xử lý (processed data), model artifacts
  • Best practices:
    • Sử dụng S3 prefixes để tổ chức dữ liệu
    • Bật versioning (quản lý phiên bản) cho các datasets
    • Sử dụng S3 Intelligent-Tiering để tối ưu hóa chi phí
    • Phân vùng (Partition) dữ liệu để truy vấn hiệu quả (bằng Athena)

2.2 Amazon EFS (Elastic File System)

  • Hệ thống tệp dùng chung (Shared file system) cho huấn luyện ML
  • Use Cases: Nhiều instance cần truy cập vào cùng một dữ liệu
  • SageMaker integration: Gắn (Attach) EFS vào các training jobs

2.3 Amazon FSx for Lustre

  • Hệ thống tệp hiệu suất cao (High-performance file system)
  • Use Cases: Các workload HPC (Điện toán hiệu năng cao), huấn luyện quy mô lớn
  • Speed: Độ trễ dưới mili giây (Sub-millisecond latencies)
  • S3 integration: Tự động đồng bộ hóa với S3

3. Data Processing & ETL

3.1 AWS Glue #important

Tổng quan: Dịch vụ ETL Serverless (không máy chủ)

Các thành phần (Components):

  • Glue Crawler - Tự động khám phá schema, đưa dữ liệu vào Data Catalog
  • Glue Data Catalog - Kho siêu dữ liệu tập trung (Centralized metadata repository)
  • Glue ETL Jobs - Các phép biến đổi dựa trên Apache Spark
  • Glue DataBrew - Chuẩn bị dữ liệu trực quan không cần code (No-code visual data preparation, hơn 250+ phép biến đổi)

“Presto under the hood” là gì? #exam-tip

  • Context: AWS Athena sử dụng Presto (hiện gọi là Trino) làm query engine
  • Presto/Trino: Open-source distributed SQL query engine (Công cụ truy vấn SQL phân tán mã nguồn mở)
  • “Under the hood” có nghĩa là: Công nghệ cốt lõi vận hành dịch vụ
  • Ý nghĩa đối với bạn:
    • Các truy vấn Athena sử dụng cú pháp Presto SQL
    • Truy vấn tương tác nhanh trên dữ liệu S3
    • Hỗ trợ các thao tác SQL phức tạp (joins, aggregations, window functions)
    • Có thể truy vấn nhiều nguồn dữ liệu (S3, databases, data lakes)
  • Lưu ý: Glue ETL sử dụng Spark, không phải Presto
  • Athena vs Glue: Athena (Presto) = truy vấn ad-hoc; Glue (Spark) = batch ETL jobs (chạy ETL theo lô)

Use Cases:

  • Khám phá và catalog dữ liệu cho SageMaker
  • Biến đổi dữ liệu trước khi huấn luyện
  • Tạo các tập phân chia training/validation/test
  • Feature engineering ở quy mô lớn

Integration with ML (Tích hợp với ML):

  • SageMaker có thể đọc từ Glue Data Catalog
  • Data Wrangler có thể import dữ liệu từ Glue

3.2 Amazon Athena

  • Mục đích: Truy vấn SQL tương tác trực tiếp trên dữ liệu S3
  • Serverless: Trả tiền theo mỗi truy vấn (dựa trên lượng dữ liệu quét - data scanned)
  • Use Cases:
    • Phân tích dữ liệu thăm dò (Exploratory data analysis - EDA)
    • Xác thực dữ liệu trước khi huấn luyện
    • Truy vấn kết quả huấn luyện
  • Best practices:
    • Phân vùng (Partition) dữ liệu để giảm chi phí quét (scan costs)
    • Sử dụng các định dạng Parquet/ORC (lưu trữ theo cột, có nén)
    • Tạo các views cho các truy vấn phổ biến

3.3 Amazon EMR (Elastic MapReduce) #exam-tip

  • Mục đích: Managed Hadoop/Spark clusters (Cụm máy chủ quản lý Hadoop/Spark)
  • Use Cases:
    • Xử lý dữ liệu quy mô lớn (Large-scale data processing)
    • Các luồng công việc ETL phức tạp
    • Feature engineering trên Big Data
  • Frameworks: Spark, Hadoop, Hive, Presto, Flink
  • ML integration:
    • Xử lý dữ liệu, lưu vào S3, huấn luyện với SageMaker
    • Sử dụng Spark MLlib cho ML phân tán
    • Thư viện SageMaker Spark để tích hợp trực tiếp

3.4 AWS Glue DataBrew

  • Chuẩn bị dữ liệu không cần code (No-code)
  • Giao diện trực quan với hơn 250+ phép biến đổi (transformations)
  • Lập hồ sơ chất lượng dữ liệu (Profile data quality)
  • Tạo báo cáo chất lượng dữ liệu
  • Output: Dữ liệu đã làm sạch được lưu ra S3 để huấn luyện ML

4. Data Streaming

4.1 Amazon Kinesis #important

Kinesis Data Streams:

  • Truyền phát dữ liệu thời gian thực (Real-time data streaming)
  • Use Cases: Hấp thụ dữ liệu thời gian thực cho học trực tuyến (online learning)
  • SageMaker integration: Suy luận thời gian thực (Real-time inference) với dữ liệu streaming

Kinesis Data Firehose:

  • Tải dữ liệu streaming vào S3, Redshift, Elasticsearch
  • Use Cases: Thu thập dữ liệu huấn luyện theo lô (batch)
  • Transformations: Sử dụng Lambda functions để tiền xử lý

Kinesis Data Analytics:

  • Truy vấn SQL trên dữ liệu đang streaming
  • ML features:
    • RANDOM_CUT_FOREST() - Phát hiện bất thường thời gian thực (Real-time anomaly detection)
    • Tổng hợp (Aggregations) cho feature engineering
  • Use Cases: Phát hiện bất thường thời gian thực, tính toán feature streaming

Kinesis Video Streams:

  • Truyền phát dữ liệu video
  • ML integration: Tích hợp SageMaker Ground Truth để gán nhãn video

4.2 Amazon Managed Streaming for Apache Kafka (MSK)

  • Các cụm Kafka được quản lý (Managed Kafka clusters)
  • Use Cases: Event streaming (Truyền sự kiện), tổng hợp log
  • Lựa chọn thay thế cho Kinesis đối với người dùng Kafka

5. Data Warehousing

5.1 Amazon Redshift

  • Mục đích: Kho dữ liệu (Data warehouse) dành cho phân tích
  • Use Cases:
    • Tổng hợp dữ liệu lịch sử để làm ML features
    • Lưu trữ các features đã được xử lý
    • Tính toán feature theo lô (Batch feature computation)
  • ML integration:
    • Redshift ML - Huấn luyện mô hình bằng SQL (Sử dụng SageMaker Autopilot ở bên dưới - under the hood)
    • SageMaker có thể đọc từ Redshift
    • Tích hợp Data Wrangler

5.2 Amazon Redshift Spectrum

  • Truy vấn dữ liệu S3 trực tiếp từ Redshift
  • Use Cases: Join dữ liệu trong warehouse với data lakes trên S3

6. Data Lakes #important

6.1 Data Lake Concepts #exam-tip

Data Lake là gì?

  • Kho lưu trữ tập trung (Centralized repository) để lưu trữ dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc ở bất kỳ quy mô nào
  • Lưu trữ dữ liệu thô (raw data) ở định dạng gốc cho đến khi cần
  • Schema-on-read (Xác định cấu trúc khi truy vấn, không phải khi lưu trữ)
  • Nền tảng: Amazon S3

Data Lake vs Data Warehouse:

Tiêu chí (Aspect) Data Lake Data Warehouse
Loại dữ liệu (Data Type) Thô, phi cấu trúc, bán cấu trúc, có cấu trúc Có cấu trúc, đã được xử lý
Lược đồ (Schema) Schema-on-read (Linh hoạt) Schema-on-write (Cứng nhắc)
Người dùng (Users) Data scientists, ML engineers Business analysts
Xử lý (Processing) ELT (Extract-Load-Transform) ETL (Extract-Transform-Load)
Chi phí (Cost) Thấp hơn (Lưu trữ trên S3) Cao hơn (Compute của Redshift)
Use Cases ML, big data analytics, khám phá Trí tuệ doanh nghiệp (BI), báo cáo
Dịch vụ AWS S3 + Lake Formation Amazon Redshift

Khi nào nên dùng Data Lake: #exam-tip

  • Cần lưu trữ dữ liệu thô cho các mục đích chưa biết trong tương lai
  • Machine learning trên nhiều loại hình dữ liệu đa dạng (images, logs, JSON)
  • Phân tích Big Data
  • Lưu trữ tiết kiệm chi phí cho khối lượng dữ liệu lớn

Khi nào nên dùng Data Warehouse:

  • Báo cáo kinh doanh có cấu trúc
  • Truy vấn SQL trên dữ liệu đã xử lý
  • Các mẫu truy vấn đã biết trước (Known query patterns)
  • Các phép tổng hợp nhanh trên bộ dữ liệu lớn

6.2 AWS Lake Formation #exam-tip

Mục đích: Xây dựng, bảo mật và quản lý data lakes trên S3

Các tính năng chính:

1. Simplified Data Ingestion (Hấp thụ dữ liệu đơn giản hóa)

  • Các Blueprints cho những nguồn dữ liệu phổ biến:
    • Nguồn JDBC (databases)
    • Nguồn S3
    • Streaming data (Kinesis)
  • Workflows: Các ETL jobs tự động để tải dữ liệu vào data lake
  • Incremental loading: Chỉ tải dữ liệu mới hoặc bị thay đổi

2. Centralized Security & Governance (Bảo mật và Quản trị tập trung)

  • Lake Formation permissions - Kiểm soát truy cập chi tiết (Fine-grained access control)
    • Quyền ở cấp bảng (Table-level permissions)
    • Column-level security (Bảo mật cấp cột - ẩn các cột nhạy cảm)
    • Row-level security (Bảo mật cấp hàng - lọc hàng dựa trên người dùng)
  • Thay thế các chính sách IAM phức tạp bằng mô hình grant/revoke đơn giản hơn
  • Cross-account access - Chia sẻ dữ liệu giữa các tài khoản AWS

3. Data Catalog (Glue Data Catalog)

  • Shared metadata repository (Kho siêu dữ liệu chia sẻ)
  • Các Schemas, tables, partitions được khám phá bởi Glue Crawlers
  • Được sử dụng bởi Athena, EMR, Redshift Spectrum, SageMaker

4. LF-Tags (Attribute-Based Access Control) #exam-tip

Mục đích: Cấp quyền dựa trên Tag (thẻ) thay vì cấp quyền dựa trên resource

Cách hoạt động:

  1. Tạo các LF-Tags (ví dụ: Department=Marketing, Sensitivity=High)
  2. Gán tags cho databases, tables, columns
  3. Cấp quyền dựa trên tags (ví dụ: “Team Marketing có thể truy cập tất cả dữ liệu có tag Department=Marketing”)

Lợi ích:

  • Khả năng mở rộng (Scalable): Không cần phải cấp quyền lại mỗi khi có bảng mới
  • Tổ chức dữ liệu ML: Tag theo dự án, nhóm, mức độ nhạy cảm
  • Quyền động (Dynamic permissions): Các bảng mới có tag tương ứng sẽ tự động kế thừa quyền

Ví dụ tình huống bài thi (Example Exam Scenario):

“Một công ty quảng cáo sử dụng Lake Formation để quản lý data lake. Các ML engineers cần truy cập vào dữ liệu chiến dịch của họ. Làm cách nào để thực hiện?”

Đáp án: Sử dụng LF-Tags để gán nhãn cho các bảng với Campaign=CampaignID, cấp cho ML engineers quyền truy cập vào tag chiến dịch của họ.

5. ML Integration

  • Tích hợp SageMaker:
    • SageMaker có thể truy vấn dữ liệu được bảo mật bởi Lake Formation
    • Sử dụng quyền Lake Formation thay vì IAM
    • Các Notebook instances tuân thủ tính bảo mật của Lake Formation
  • Tích hợp Athena: Truy vấn lake với bảo mật cấp column/row
  • Tích hợp EMR: Spark jobs tuân thủ quyền Lake Formation

6.3 Lake Formation Architecture #exam-tip

Workflow tiêu biểu:

  1. Ingest: Tải dữ liệu từ các nguồn (JDBC, S3, Kinesis) → S3 data lake
  2. Catalog: Glue Crawlers khám phá schema → Glue Data Catalog
  3. Secure: Áp dụng quyền Lake Formation (column/row-level)
  4. Tag: Áp dụng LF-Tags để kiểm soát truy cập có tổ chức
  5. Query/Analyze:
    • Athena cho truy vấn SQL
    • EMR cho xử lý Spark
    • SageMaker cho huấn luyện ML
  6. Quyền được thực thi tự động trên tất cả các dịch vụ

Các thành phần (Components):

  • S3 - Lưu trữ vật lý
  • Glue Data Catalog - Lớp Metadata
  • Lake Formation - Lớp Security & governance
  • Query services - Athena, EMR, Redshift Spectrum, SageMaker

6.4 Lake Formation Permissions Model #exam-tip

Hai hệ thống cấp quyền:

  1. Quyền IAM (Truyền thống)
    • Kiểm soát truy cập S3 bucket/object
    • Các policy phức tạp để kiểm soát chi tiết
    • Khó quản lý ở quy mô lớn
  2. Quyền Lake Formation (Được khuyến nghị)
    • Truy cập ở cấp độ Database/table/column
    • Cú pháp grant/revoke đơn giản hơn
    • Được tự động thực thi bởi các dịch vụ tích hợp

Khái niệm quan trọng (Key Concept): #exam-tip

  • Khi Lake Formation được bật, quyền Lake Formation sẽ được ưu tiên (takes precedence) so với IAM đối với các resources của data lake
  • Vẫn cần IAM để truy cập S3 bucket, nhưng Lake Formation sẽ kiểm soát quyền truy cập dữ liệu

Các loại quyền (Grant Types):

  • Select - Đọc dữ liệu
  • Insert - Thêm dữ liệu
  • Delete - Xóa dữ liệu
  • Describe - Xem metadata
  • Super - Toàn quyền kiểm soát

Ví dụ bảo mật cấp cột (Column-Level Security Example):

Database: customer_data
Table: customers
Columns: name, email, ssn (sensitive)

Cấp quyền cho Data Scientists:
- Columns: name, email (YES)
- Columns: ssn (NO - bị ẩn)

Ví dụ bảo mật cấp hàng (Row-Level Security Example):

Table: sales_data
Filter: region = 'US-WEST'

Kết quả: Users chỉ nhìn thấy các hàng có region='US-WEST'

6.5 Lake Formation vs S3 + Glue #exam-tip

Tính năng S3 + Glue (Không có Lake Formation) S3 + Glue + Lake Formation
Lưu trữ S3 S3
Metadata Glue Data Catalog Glue Data Catalog
Quyền truy cập IAM policies (phức tạp) Lake Formation (đơn giản)
Column-level security ❌ Không hỗ trợ ✅ Có hỗ trợ
Row-level security ❌ Thủ công (dùng views) ✅ Có sẵn
Tag-based permissions ❌ Không hỗ trợ ✅ LF-Tags
Chia sẻ Cross-account ❌ Phức tạp ✅ Dễ dàng
Khi nào nên dùng Các use case đơn giản, teams nhỏ Doanh nghiệp, tuân thủ, đa team

Tips: Nếu câu hỏi nhắc đến column-level or row-level security, đáp án chính là Lake Formation.


6.6 Các kịch bản bài thi phổ biến (Common Exam Scenarios) #exam-tip

Scenario 1: “Bạn cần cấp quyền cho ML engineers chỉ truy cập các cột không chứa PII trong dữ liệu khách hàng”

  • Answer: AWS Lake Formation với column-level permissions

Scenario 2: “Data scientists chỉ nên thấy dữ liệu thuộc khu vực họ được giao”

  • Answer: AWS Lake Formation với row-level security filters

Scenario 3: “Tự động cấp quyền cho các bảng mới dựa trên tag”

  • Answer: AWS Lake Formation LF-Tags

Scenario 4: “Chia sẻ data lake với một tài khoản AWS khác một cách bảo mật”

  • Answer: AWS Lake Formation cross-account data sharing

Scenario 5: “SageMaker cần truy vấn dữ liệu S3 với quyền truy cập chi tiết (fine-grained)”

  • Answer: Tích hợp AWS Lake Formation với SageMaker (tuân thủ quyền của Lake Formation)

Scenario 6: “Đơn giản hóa quyền truy cập cho hơn 100 bảng trên 10 teams”

  • Answer: AWS Lake Formation với LF-Tags (kiểm soát truy cập dựa trên tag)

6.7 Lake Formation Best Practices #exam-tip

  1. Sử dụng LF-Tags để quản lý quyền mở rộng (scalable)
  2. Bật column-level security cho dữ liệu PII/nhạy cảm
  3. Sử dụng row-level security cho dữ liệu multi-tenant (đa khách thuê)
  4. Chia sẻ Cross-account thay vì nhân bản dữ liệu (duplicating data)
  5. Dùng Glue Crawlers để giữ cho catalog luôn được cập nhật
  6. Sử dụng kết hợp IAM + Lake Formation (IAM cho truy cập S3, LF cho truy cập dữ liệu)
  7. Audit (Kiểm toán) bằng CloudTrail - Theo dõi tất cả các API calls của Lake Formation

7. Data Labeling

7.1 Amazon SageMaker Ground Truth #exam-tip

Mục đích: Dịch vụ gán nhãn dữ liệu có sự tham gia của con người (human-in-the-loop)

Các tính năng chính:

  • Human labeling workflows (Luồng công việc gán nhãn bởi con người) với ba tùy chọn workforce (lực lượng lao động):
    • Mechanical Turk - Nguồn lực cộng đồng (mặc định, rẻ nhất)
    • Private workforce - Nhân viên của bạn (dành cho dữ liệu mật)
    • Vendor workforce - Đội ngũ do bên thứ ba quản lý (khi cần chuyên môn lĩnh vực)
  • Active learning - Mô hình ML tự động gán nhãn các ví dụ dễ, con người gán nhãn các ví dụ khó
  • Built-in workflows (Các luồng công việc dựng sẵn):
    • Hình ảnh: classification, object detection (bounding boxes), semantic segmentation
    • Văn bản: classification, named entity recognition
    • Video: object tracking, activity recognition
    • 3D point clouds: object detection, semantic segmentation
  • Custom workflows - Tự xây dựng giao diện gán nhãn (UI) của riêng bạn

Cách Active Learning hoạt động:

  1. Con người gán nhãn một tập dữ liệu nhỏ ban đầu
  2. Ground Truth huấn luyện mô hình ML trên tập dữ liệu đã gán nhãn
  3. Mô hình tự động gán nhãn những dự đoán có độ tin cậy cao
  4. Con người chỉ xem xét các item khó hoặc có độ tin cậy thấp
  5. Kết quả: Giảm 70% chi phí so với việc gán nhãn hoàn toàn thủ công

Workforce Selection Guide: #exam-tip

Loại dữ liệu (Data Type) Lựa chọn Workforce tốt nhất
Hình ảnh công khai (mèo, chó) Mechanical Turk
Tài liệu công ty (hóa đơn) Private workforce
Hình ảnh y tế (X-quang) Private hoặc Vendor (KHÔNG dùng MTurk) #gotcha
Ảnh sản phẩm (nội bộ) Private workforce
Nội dung mạng xã hội Mechanical Turk
Tài liệu pháp lý Private workforce (bảo mật)

Tối ưu chi phí (Cost Optimization):

  • Active learning giúp giảm ~70% việc gán nhãn
  • Gán nhãn đồng thuận (Consensus labeling - nhiều workers) cải thiện chất lượng
  • Bắt đầu với MTurk để tiết kiệm chi phí, chuyển sang private nếu gặp vấn đề về chất lượng

Output (Đầu ra):

  • Các tập dữ liệu đã gán nhãn nằm trong S3
  • Các file Manifest (định dạng JSON Lines)
  • Sẵn sàng để huấn luyện trên SageMaker

Tips:

  • Default workforce: Mechanical Turk (công cộng, rẻ, nhanh)
  • Dữ liệu nhạy cảm: Sử dụng private workforce (KHÔNG dùng MTurk)
  • Active learning: Tự động cho các workflows được hỗ trợ, giảm 70% chi phí
  • Tích hợp: Hoạt động với A2I cho các workflows cần con người xem xét
  • Kiểm soát chất lượng: Đồng thuận (Consensus - 3-5 workers mỗi item), tích hợp annotation (annotation consolidation)

8. Data Format Recommendations #exam-tip

Định dạng (Format) Use Cases Ưu điểm (Pros) Nhược điểm (Cons)
CSV Dữ liệu dạng bảng nhỏ Đơn giản, dễ đọc Kích thước file lớn, parsing chậm
Parquet Dữ liệu dạng bảng lớn Lưu theo cột, có nén, nhanh Dạng nhị phân (người không đọc được)
RecordIO-Protobuf Huấn luyện SageMaker Hiệu quả, hỗ trợ Pipe mode Đặc thù của AWS
JSON Lines Bán cấu trúc Schema linh hoạt File lớn hơn Parquet
TFRecord TensorFlow Tối ưu cho TF Phụ thuộc Framework
File ảnh (JPG/PNG) Computer vision Định dạng chuẩn Cần file manifest

Best Practice: Sử dụng Parquet cho tập dữ liệu lớn, CSV cho các tập dữ liệu nhỏ/đơn giản

9. Exam Tips Summary #exam-tip

  • Glue Crawler: Tự động khám phá schema, thêm vào catalog
  • Athena: Truy vấn SQL nhanh trên S3 (sử dụng Presto)
  • EMR: Xử lý Spark/Hadoop quy mô lớn
  • Kinesis Data Analytics: Phát hiện bất thường thời gian thực với RCF (Random Cut Forest)
  • Ground Truth: Giảm chi phí gán nhãn nhờ active learning
  • S3: Nơi lưu trữ chính (Primary storage) cho mọi dữ liệu ML
  • Parquet format: Tốt nhất cho các tập dữ liệu dạng bảng lớn
  • “Presto under the hood”: Đề cập đến query engine của Athena
  • Lake Formation: Dùng cho bảo mật column/row-level, dùng LF-Tags cho quyền truy cập mở rộng
  • Data Lake vs Warehouse: Lake dành cho dữ liệu raw/ML, Warehouse dành cho báo cáo BI có cấu trúc

10. Data Pipeline Selection

Tình huống (Scenario) Dịch vụ (Service)
Simple ETL, tự động khám phá schema AWS Glue
Ad-hoc SQL queries trên S3 Amazon Athena
Xử lý Spark quy mô lớn Amazon EMR
Phân tích streaming thời gian thực Kinesis Data Analytics
Chuẩn bị dữ liệu không cần code Glue DataBrew
Gán nhãn dữ liệu SageMaker Ground Truth
Phân tích data warehouse Amazon Redshift
Secure data lake AWS Lake Formation