Giới thiệu:

Amazon S3 (Simple Storage Service) là dịch vụ lưu trữ đối tượng nổi bật của AWS, cho phép lưu trữ dữ liệu có độ bền cao, dễ dàng mở rộng và tích hợp. Trong bài viết này, người học sẽ được hướng dẫn cách tạo bucket, tải tệp lên, thiết lập quyền truy cập và các thao tác cơ bản khác để sử dụng S3 trong các dự án backend hoặc DevOps.

1. S3 là gì?

S3 - Simple Storage Service là dịch vụ lưu trữ đối tượng (Object Storage) của AWS. Nó cho phép lưu trữ và truy xuất dữ liệu dưới dạng đối tượng (file, hình ảnh, video, v.v.).

Với sự cam kết từ AWS đảm bảo 99.999999999% sẵn sàng, S3 được sử dụng rộng rãi trong các ứng dụng web, phân tích dữ liệu, backup và lưu trữ hình ảnh, video, âm thanh và văn bản. Dung lượng 1 file có thể lên đến 5TB, và không giới hạn số lượng file.

Phân loại các lớp lưu trữ trong Amazon S3

S3 Storage Class
S3 Storage Class

1. S3 Standard

  • Dành cho: Dữ liệu đang hoạt động, truy cập thường xuyên.
  • Thời gian truy cập: Trong vòng mili giây.
  • Vùng lưu trữ (Availability Zones): Lưu trữ ở hơn 3 vùng AZ.

Note

Đây là lớp lưu trữ tiêu chuẩn, phù hợp với các dữ liệu được truy cập liên tục như website, ứng dụng, dữ liệu phân tích.

2. S3 Intelligent-Tiering

  • Dành cho: Dữ liệu có mẫu truy cập thay đổi theo thời gian.
  • Thời gian truy cập: Trong vòng mili giây.
  • Vùng lưu trữ: > 3 AZ.
  • Phí: Có phí giám sát theo từng đối tượng.
  • Lưu ý: Có thời gian lưu trữ tối thiểu.

Note

Phù hợp khi bạn không chắc chắn tần suất truy cập dữ liệu. AWS sẽ tự động chuyển giữa các lớp lưu trữ để tối ưu chi phí.

3. S3 Standard-IA (Infrequent Access)

  • Dành cho: Dữ liệu ít truy cập.
  • Thời gian truy cập: Trong vòng mili giây.
  • Vùng lưu trữ: > 3 AZ.
  • Phí: Tính phí truy xuất theo GB.
  • Lưu ý: Có thời gian lưu trữ tối thiểu và kích thước đối tượng tối thiểu.

Note

Lý tưởng cho dữ liệu cần truy cập nhanh nhưng không thường xuyên, như backup định kỳ.

4. S3 One Zone-IA

  • Dành cho: Dữ liệu ít truy cập, có thể tạo lại nếu mất.
  • Thời gian truy cập: Trong vòng mili giây.
  • Vùng lưu trữ: Chỉ trong 1 AZ.
  • Phí: Có phí truy xuất theo GB.
  • Lưu ý: Có thời gian lưu trữ tối thiểu và kích thước đối tượng tối thiểu.

Note

Rẻ hơn Standard-IA vì chỉ lưu trữ trong 1 vùng, thích hợp cho dữ liệu có thể phục hồi từ nơi khác nếu mất.

5. S3 Glacier

  • Dành cho: Lưu trữ dữ liệu dạng lưu trữ (archive).
  • Thời gian truy cập: Từ vài phút đến vài giờ.
  • Vùng lưu trữ: > 3 AZ.
  • Phí: Có phí truy xuất theo GB.
  • Lưu ý: Có thời gian lưu trữ tối thiểu và kích thước đối tượng tối thiểu.

Note

Dùng để lưu trữ dữ liệu dài hạn, không cần truy cập thường xuyên, như bản ghi cũ, log, v.v.

6. S3 Glacier Deep Archive

  • Dành cho: Lưu trữ dài hạn (rất lâu, như nhiều năm).
  • Thời gian truy cập: Hàng giờ.
  • Vùng lưu trữ: > 3 AZ.
  • Phí: Có phí truy xuất theo GB.
  • Lưu ý: Có thời gian lưu trữ tối thiểu và kích thước đối tượng tối thiểu.

Note

Lựa chọn rẻ nhất, dành cho dữ liệu chỉ cần truy cập lại trong các trường hợp đặc biệt, ví dụ: dữ liệu lưu trữ tuân thủ quy định pháp lý.

2. Tạo Bucket

  1. Truy cập AWS Console
    Truy cập AWS Console, trên thanh tìm kiếm gõ S3 và chọn S3.
  1. Tạo Bucket
    Chọn Create bucket.
  1. Cấu hình Bucket
    • Bucket name: Đặt tên duy nhất toàn cầu (ví dụ: manh-techmaster-2025). Tên bucket không được trùng với bất kỳ bucket nào khác trên AWS.
    • Region: Chọn khu vực, ví dụ ap-southeast-1.
    • Object Ownership: Chọn ACLs disabled (khuyến nghị) để đơn giản hóa quản lý quyền.
    • Block Public Access: Để an toàn, giữ nguyên tùy chọn chặn truy cập công khai (bỏ chọn nếu cần public sau này).
    • Nhấn Create bucket.
  2. Kiểm tra:
    • Quay lại danh sách bucket, bạn sẽ thấy bucket vừa tạo.
    • Click vào bucket vừa tạo, bạn sẽ thấy giao diện của bucket.
Giao diện bucket manh-techmaster-2025
Giao diện bucket manh-techmaster-2025

3. Tải lên một đối tượng (Object)

  1. Tải lên file

    • Chọn tab Objects, sau đó nhấn Upload.
    • Kéo thả hoặc chọn tệp từ máy tính (ví dụ: sample.jpg hoặc test.txt).
    • Permissions: Để mặc định (chúng ta sẽ cấu hình quyền sau).
    • Nhấn Upload và chờ hoàn tất.
  2. Kiểm tra

    • Tệp sẽ xuất hiện trong danh sách Objects. Nhấn vào tên tệp để xem chi tiết.
Kiểm tra
Kiểm tra

4. Cấu hình quyền truy cập

  1. Làm cho Object công khai (Public)

    • Trong bucket, nhấn vào tên tệp (ví dụ: sample.jpg).
    • Chọn tab Permissions > Edit.
    • Thêm quyền Read cho Everyone (public access).
    • Xác nhận thay đổi và lưu.
  2. Cấu hình Bucket Policy (tùy chọn)

    • Trong bucket, chọn tab Permissions > Bucket Policy.
    • Sử dụng trình tạo chính sách (Policy Generator) để cấp quyền cụ thể, ví dụ:
    {
       "Version": "2012-10-17",
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": "*",
           "Action": "s3:GetObject",
           "Resource": "arn:aws:s3:::your-bucket-name/*"    
        
        }
      ]
    }
    
    • Lưu ý: Chỉ làm public khi cần thiết để tránh rủi ro bảo mật.

5. Thực hành các tính năng nâng cao

  • Tạo thư mục:
    • Trong bucket, nhấn Create folder, đặt tên (ví dụ: images) và lưu.
    • Tải tệp vào thư mục để tổ chức dữ liệu.
  • Versioning:
    • Trong bucket, chọn tab Properties > Bucket Versioning > Enable.
    • Tải lại một tệp cùng tên để kiểm tra các phiên bản (dùng List versions để xem).
  • Xóa Object và Bucket:
    • Xóa object: Chọn object > Delete.
    • Xóa bucket: Đảm bảo bucket trống, sau đó chọn bucket > Delete.

6. Lưu ý quan trọng

  • Chi phí: S3 Free Tier cung cấp 5GB lưu trữ miễn phí trong 12 tháng. Kiểm tra chi phí tại AWS Pricing Calculator để tránh vượt ngân sách.
  • Bảo mật: Luôn bật Block Public Access trừ khi cần public. Sử dụng IAM roles thay vì Access Keys khi có thể.
  • Xóa tài nguyên: Sau khi thực hành, xóa bucket và object để tránh phát sinh chi phí.

Kết luận:

Thông qua các bước thực hành cụ thể, bài viết giúp người học làm quen với cách lưu trữ và quản lý dữ liệu hiệu quả bằng Amazon S3. Đây là một trong những kỹ năng thiết yếu không chỉ với backend developer mà còn với bất kỳ ai đang học và áp dụng DevOps trên nền tảng AWS.