AWS S3 (Simple Storage Service) là một dịch vụ lưu trữ đối tượng được cung cấp bởi Amazon Web Services. Đây là một trong những dịch vụ cốt lõi và phổ biến nhất của AWS. Hãy tìm hiểu chi tiết về AWS S3:

AWS S3 là gì?

AWS S3 là dịch vụ lưu trữ đối tượng có khả năng mở rộng cao, cung cấp khả năng lưu trữ và truy xuất dữ liệu từ bất kỳ đâu trên web. S3 được thiết kế để cung cấp độ bền 99,999999999% (11 số 9) và khả năng sẵn sàng 99,99% cho dữ liệu của bạn.

Đặc điểm chính của AWS S3:

  1. Lưu trữ đối tượng: S3 lưu trữ dữ liệu dưới dạng đối tượng trong các “bucket”.

  2. Khả năng mở rộng: Có thể lưu trữ và truy xuất bất kỳ lượng dữ liệu nào, bất kỳ lúc nào.

  3. Độ bền cao: Được thiết kế để cung cấp độ bền 99,999999999%.

  4. Bảo mật: Cung cấp nhiều tính năng bảo mật mạnh mẽ.

  5. Linh hoạt: Hỗ trợ nhiều lớp lưu trữ khác nhau cho các nhu cầu khác nhau.

  6. Quản lý dễ dàng: Cung cấp giao diện quản lý trực quan và API đa dạng.

Các khái niệm cơ bản trong S3:

  1. Bucket: Là container chứa các đối tượng. Mỗi đối tượng được lưu trữ trong một bucket.

  2. Object: Là đơn vị cơ bản của dữ liệu được lưu trữ trong S3. Mỗi object bao gồm dữ liệu và metadata.

  3. Key: Là tên duy nhất được gán cho một object trong bucket.

  4. Versioning: Cho phép lưu trữ nhiều phiên bản của cùng một object.

  5. Storage Classes: Các lớp lưu trữ khác nhau cho các nhu cầu truy cập và chi phí khác nhau.

Các lớp lưu trữ S3:

  1. S3 Standard: Cho dữ liệu truy cập thường xuyên.
  2. S3 Intelligent-Tiering: Tự động tối ưu chi phí cho dữ liệu có mẫu truy cập không xác định.
  3. S3 Standard-IA: Cho dữ liệu truy cập ít thường xuyên.
  4. S3 One Zone-IA: Tương tự Standard-IA nhưng chỉ lưu trữ trong một AZ.
  5. S3 Glacier: Cho lưu trữ dài hạn với chi phí thấp.
  6. S3 Glacier Deep Archive: Cho lưu trữ dài hạn với chi phí cực thấp.

Ứng dụng phổ biến của S3:

  1. Lưu trữ và phân phối nội dung
  2. Backup và khôi phục dữ liệu
  3. Lưu trữ dữ liệu cho phân tích Big Data
  4. Lưu trữ log files
  5. Hosting website tĩnh
  6. Lưu trữ dữ liệu gốc cho các ứng dụng cloud-native

Tính năng bảo mật:

  • Mã hóa phía máy chủ và phía khách hàng
  • Quản lý quyền truy cập bằng IAM và bucket policies
  • Versioning để bảo vệ khỏi xóa hoặc ghi đè ngoài ý muốn
  • MFA Delete để ngăn chặn xóa dữ liệu không mong muốn

AWS S3 là một dịch vụ cực kỳ linh hoạt và mạnh mẽ, được sử dụng rộng rãi trong nhiều ứng dụng và giải pháp cloud. Hiểu rõ về S3 sẽ giúp bạn tận dụng tối đa khả năng lưu trữ và quản lý dữ liệu trong môi trường AWS.

Config S3

Task 1: Tạo Bucket trên S3

  1. Truy cập Storage >> S3 từ menu Services

2. Tại giao diện của S3, nhấn chọn Create bucket và điền lần lượt vào các trường sau cho bucket details.

  • Bucket name: đặt tên cho bucket (S3 bucket name mang tính định danh trên tất cả các region của AWS nên phải duy nhất và không trùng lặp).

  • Region: Chọn Singapore (ap-southeast-1)

  • Object ownership: Chọn ACLs enabled

    • Object ownership: Chọn Object writer (anh em nhớ chọn Object Owner, ngược lại sẽ không có quyền chỉnh sửa bucket ACL)

  • Với thiết lập Block Public Access, để đơn giản anh em bỏ check và xác nhận vào mục acknowleadge nhé (thao tác này đồng nghĩa bật mode public cho bucket).


A screenshot of a computer

Description automatically generated

A screenshot of a computer screen

Description automatically generated

A screenshot of a bucket

Description automatically generated

Những phần khác giữ nguyên như mặc đinh và nhấn Create bucket.

3. Sau khi quá trình taọ bucket hoàn tất, hệ thống sẽ tự động chuyển đến giao diện chứa danh sách tất cả các bucket đang có trong tài khoản AWS của bạn.

A screenshot of a computer

Description automatically generated

Task 2: Upload object lên S3 Bucket

  1. Nhấn vào bucket name để, ngay tại tab Object, nhấn vào upload.

A screenshot of a computer

Description automatically generated

  1. Tại giao diện kế tiếp, nhấn add file và chọn một hoặc nhiều file từ local và nhấn Upload.

A screenshot of a computer

Description automatically generated

3. Sau khi quá trình upload hoàn tất sẽ hiện thông báo kèm danh sách các object tương tự như ví dụ bên dưới.

 

A screenshot of a video

Description automatically generated

Task 3: Thay đổi quyền trên Bucket

1. Từ danh sách các object đã tải lên ở phần trước, anh em thử nhấn vào một file bất kỳ, ví dụ Amazon-S3.png để xem chi tiết các thành phần của object này như owner, size, link, …

2. Anh em tìm và copy Object URL (đây là http endpoint của một đối tượng)

A screenshot of a computer

Description automatically generated

3. Tiếp theo, bạn thử mở tab trình duyệt khác và truy cập Object URL này sẽ nhận được thông báo AccessDenied như bên dưới.

 

A screenshot of a computer

Description automatically generated

Lý do khá đơn giản, mặc dù bucket đã được thiếp lập chế độ public lúc khởi tạo nhưng theo mặc định các object sau khi tải lên vẫn ở mode private.

4. Quay lại giao diện Object details của file Amazon-S3.png, chuyển sang tab Permissons, nhấn Edit để thực hiện chỉnh sửa quyền.

A screenshot of a computer

Description automatically generated

5. Tại đây, anh em có thể tùy biến quyền cho một số nhóm khác nhau. Ví dụ trong bài lab này mình sẽ gán quyền read only lên Object Amazon-S3.png cho tất cả (everyone).

A screenshot of a computer

Description automatically generated

Nhớ xác nhận vào checkbox I understand the effects of these changes on
this object, sau đó nhấn Save changes để cập nhật thay đổi.

6. Bây giờ, thử lại bước 3 – truy cập Object URL sẽ hiện được nội dung ảnh Amazon-S3.png từ trình duyệt web.

Task 4: Tạo Bucket Policy

Trong Task 3, anh em chỉ gán quyền cho một object nhất định. Trong phần này, nếu có nhu cầu gán quyền tương tự cho tất cả các đối tượng có trong bucket thì sẽ làm thế nào? Câu trả lời là ta sẽ tạo một Bucket policy.

1. Quay trở lại giao diện chứa danh sách bucket, nhấn chọn vào bucket name hiepsharing-saa-b-1, vẫn chuyển sang tab Permissions.

2. Kéo xuống tại mục Bucket policy, nhấn Edit để mở trình soạn thảo Bucket policy editor (dĩ nhiên trống không 😆 ).

Lưu ý: Bucket policy được trình bày dưới dạng ngôn ngữ JSON nên anh em có thể chủ động nghiên cứu thêm bằng 2 công cụ Policy examples hoặc Policy generator được AWS  cung cấp.

Hoặc đơn giản trong bài lab này, anh em có thể copy và dán JSON bên dưới vào và thay thế phần Resources bằng chính Bucket ARN của anh em.

ras.vending là bucket name

Với nội dung JSON  trên, mình muốn tạo ra một bucket  policy cho phép mọi người có quyền truy cập tất cả các object có trong bucket ras.vending

A screenshot of a computer

Description automatically generated

Xem kỹ lại cú pháp của JSON, nếu không có lỗi gì (Errors: 0), nhấn Save changes để tạo policy.

Task 5: Kiểm tra hoạt động của Bucket Policy

1. Sau khi thiết lập bucket policy thành công, quay lại danh sách các object đã tải lên ở phần trước, tick chọn vào file test_upload.txt (chưa cấu hình object permission trước đó), nhấn Copy URL.

A screenshot of a computer

Description automatically generated

2. Mở một tab trình duyệt khác và dán Object URL để truy cập vào nội dung file test_upload.txt trên bucket hiepsharing-saa-b-1. Kết quả như minh họa bên dưới chứng tỏ bucket policy chúng ta tạo ở phần trước thành công.

 

Danh mục


  1. Khác
  2. ThreeJS
  3. Ubuntu/Linux
  4. HTML/CSS
  5. Git
  6. Amazon Web Services
  7. Javascript
  8. Docker
  9. Laravel

Bài viết liên quan


AWS Region

AWS Region

27.09.2024
Author: ADMIN
Bài viết này giải thích chi tiết về AWS Region, bao gồm đặc điểm, lợi ích và cách chọn Region phù hợp. Tìm hiểu về Availability Zones, tuân thủ quy định, tối ưu hóa chi phí và giảm độ trễ. Nắm vững kiến thức để triển khai ứng dụng đám mây hiệu quả.
Auto Trigger Notification to Discord/Teams/Slack

Auto Trigger Notification to Discord/Teams/Slack

05.02.2025
Author: ADMIN
Hướng dẫn chi tiết giám sát lỗi backend với AWS CloudWatch Logs, AWS Lambda, Discord. Phân loại lỗi, chống spam, thông báo lỗi nghiêm trọng. Cấu hình CloudWatch Logs, Lambda, S3.
Maintenance Mode

Maintenance Mode

05.02.2025
Author: ADMIN
Tự động hóa Maintenance Mode Nginx với file flag, IP whitelist, script và tích hợp CI/CD (GitHub Actions). Hướng dẫn từng bước cấu hình Nginx, script và workflow để bảo trì hệ thống hiệu quả.
CI/CD Pipeline

CI/CD Pipeline

05.02.2025
Author: ADMIN
Hướng dẫn chi tiết thiết lập CI/CD Pipeline tự động hóa build, test, deploy qua Bastion Host, dùng GitHub Actions/CodePipeline. Cấu hình SSH Proxy, triển khai staging & production an toàn, hiệu quả.

Bài viết khác

Routing

Routing

01.08.2024
Author: ADMIN
Hướng dẫn chi tiết về Basic Routing trong Laravel, từ cách định nghĩa route, sử dụng middleware, route caching đến route naming giúp tối ưu hóa ứng dụng.
Blade Basics

Blade Basics

01.08.2024
Author: ADMIN
Khám phá Blade trong Laravel: từ if-else, loops, kế thừa layout đến include sub-views. Giúp code gọn gàng, dễ quản lý và bảo trì hơn!
9 Mẹo Hữu Ích Khi Sử Dụng Blade Trong Laravel

9 Mẹo Hữu Ích Khi Sử Dụng Blade Trong Laravel

01.08.2024
Author: ADMIN
Khám phá 9 mẹo Blade giúp bạn viết code Laravel sạch, tối ưu và chuyên nghiệp hơn. Từ @forelse, @auth, @guest, đến format ngày, tối ưu SEO – tất cả trong một bài viết súc tích, dễ áp dụng!
Hiển thị giá trị trong Blade

Hiển thị giá trị trong Blade

01.08.2024
Author: ADMIN
Hướng dẫn hiển thị biến trong Laravel Blade: escape HTML tự động, hiển thị dữ liệu thô, giá trị mặc định và cách truy xuất mảng, đối tượng. Giúp bạn tối ưu hiển thị dữ liệu một cách an toàn!