Thursday, November 21, 2024

[AWS] Giới thiệu về Amazon S3 Buckets và Objects

-

1. Section introduction.

Amazon S3 là một dịch vụ lưu trữ đám mây (cloud storage) được cung cấp bởi Amazon Web Services (AWS), cho phép người dùng lưu trữ và truy xuất dữ liệu từ bất cứ đâu trên thế giới thông qua internet.

Lưu trữ “vô tận” hoặc “vô hạn” là khả năng mở rộng lưu trữ của Amazon S3 mà không giới hạn bởi khối lượng dữ liệu hoặc dung lượng lưu trữ.

Nhiều trang web sử dụng Amazon S3 như một trụ cột chính để lưu trữ và phục vụ nội dung như hình ảnh, video và tài liệu.

Nhiều dịch vụ AWS khác sử dụng Amazon S3 như một phần tích hợp để lưu trữ và truy xuất dữ liệu.

Chúng ta sẽ có một phương pháp tiếp cận từng bước để sử dụng Amazon S3.

2. Amazon S3 Use cases.

• Backup and storage: Sao lưu và lưu trữ dữ liệu là một trong những trường hợp sử dụng phổ biến của Amazon S3, cho phép người dùng lưu trữ các bản sao dữ liệu để phục hồi trong trường hợp bị mất hoặc bị hỏng.

• Disaster Recovery: Amazon S3 cung cấp khả năng lưu trữ dữ liệu phục hồi thiên tai (disaster recovery), cho phép các doanh nghiệp khôi phục dữ liệu sau khi xảy ra sự cố.

• Archive: Amazon S3 cung cấp tính năng lưu trữ dữ liệu lâu dài (archive), cho phép người dùng lưu trữ các bản sao dữ liệu quan trọng hoặc dữ liệu lịch sử.

• Hybrid Cloud storage: Amazon S3 cung cấp tính năng lưu trữ đám mây lai (hybrid cloud storage), cho phép người dùng lưu trữ dữ liệu trên nhiều hệ thống đám mây khác nhau.

• Application hosting: Amazon S3 cũng được sử dụng làm một nền tảng lưu trữ cho việc phát triển và triển khai ứng dụng web.

• Media hosting: Amazon S3 cung cấp khả năng lưu trữ và phục vụ các file đa phương tiện như hình ảnh, video và âm thanh.

• Data lakes & big data analytics: Amazon S3 được sử dụng như một phần của các hệ thống lưu trữ dữ liệu lớn và phân tích dữ liệu, cho phép người dùng lưu trữ và truy xuất các tập dữ liệu lớn.

• Software delivery: Amazon S3 được sử dụng để lưu trữ và phân phối các phần mềm và ứng dụng phần mềm.

• Static website: Amazon S3 cũng được sử dụng để lưu trữ các trang web tĩnh, cho phép người dùng truy cập các trang web thông qua URL.

3. Amazon S3 Buckets.

Trong Amazon S3, “buckets” (thùng hoặc rổ) là khái niệm được sử dụng để chỉ các thư mục hoặc không gian lưu trữ dữ liệu của người dùng.

Mỗi bucket trong Amazon S3 được đặt tên theo các quy ước nhất định, định nghĩa tại cấp độ khu vực và phải có tên duy nhất trên toàn cầu (tất cả các khu vực, tài khoản). Người dùng có thể tạo ra nhiều bucket trong một tài khoản Amazon S3 để phân loại và quản lý dữ liệu của mình.

Việc lưu trữ dữ liệu trong bucket của Amazon S3 là rất linh hoạt và bảo mật, cho phép người dùng lưu trữ các loại dữ liệu khác nhau, bao gồm hình ảnh, video, file âm thanh, file lưu trữ, và nhiều hơn nữa. Các bucket trong Amazon S3 cũng được sử dụng để lưu trữ các file và dữ liệu của các ứng dụng được triển khai trên AWS.

  • Amazon S3 cho phép người dùng lưu trữ các đối tượng (file) trong các “Buckets” (thư mục).
  • Buckets phải có tên duy nhất trên toàn cầu (tất cả các khu vực, tài khoản).
  • Buckets được định nghĩa tại cấp độ khu vực.
  • S3 có vẻ như là một dịch vụ toàn cầu, nhưng các Buckets được tạo ra tại một khu vực cụ thể.
  • Quy ước đặt tên:
    • Không sử dụng chữ hoa, không sử dụng gạch dưới.
    • Tên từ 3 đến 63 ký tự.
    • Không phải là địa chỉ IP.
    • Phải bắt đầu bằng chữ thường hoặc số.
    • Không được bắt đầu với tiền tố xn--
    • Không được kết thúc bằng hậu tố -s3alias.

4. Amazon S3 – Objects.

Trong Amazon S3, “objects” (đối tượng) là khái niệm được sử dụng để chỉ các file hoặc dữ liệu được lưu trữ trong các bucket. Mỗi object trong Amazon S3 được đặt tên bằng một key (khóa), đó là một chuỗi các ký tự đại diện cho tên file hoặc tên của dữ liệu lưu trữ.

Các object trong Amazon S3 có thể được sử dụng để lưu trữ các loại dữ liệu khác nhau, bao gồm hình ảnh, video, file âm thanh, file lưu trữ, các tài liệu HTML, CSS, Javascript, và nhiều hơn nữa.

Mỗi object trong Amazon S3 có một định dạng chuẩn và được xác định bởi một số thuộc tính như metadata, quyền truy cập, mã hóa, và các thuộc tính khác.

Amazon S3 cho phép người dùng thực hiện các hoạt động trên các object như đọc, ghi, sao chép, xóa và di chuyển chúng giữa các bucket hoặc khu vực khác nhau. Với tính năng mã hóa dữ liệu, Amazon S3 cung cấp cơ chế bảo mật cho các object để đảm bảo an toàn và bảo mật của dữ liệu trong quá trình lưu trữ và truy xuất.

Trong Amazon S3, “Objects” (đối tượng) là các file hoặc dữ liệu được lưu trữ trong các “buckets”. Mỗi object trong Amazon S3 có một “Key” (khóa) đại diện cho đường dẫn đầy đủ của nó trong bucket. Key được tạo ra bằng cách kết hợp tiền tố (prefix) và tên của object.

Ví dụ: s3://my-bucket/my_file.txt là key của một object. Trong đó “my-bucket” là tên của bucket, “my_file.txt” là tên của object. Nếu object được lưu trữ trong một thư mục con của bucket thì key sẽ bao gồm đường dẫn đầy đủ đến object đó. Ví dụ: s3://my-bucket/my_folder1/another_folder/my_file.txt

Trong Amazon S3, không có khái niệm “directories” (thư mục) trong bucket, mặc dù giao diện người dùng có thể khiến bạn tin rằng có. Thực tế, các key của object trong bucket được đặt tên dài và chứa dấu “/”. Khi xem danh sách các object trong bucket, các object được sắp xếp theo thứ tự bảng chữ cái của key của chúng.

Amazon S3 – Objects còn có một số đặc điểm khác như sau:

  • Object values: Là nội dung của object, được lưu trữ trong phần body. Kích thước tối đa của một object là 5TB (5000GB). Nếu muốn upload một object có kích thước lớn hơn 5GB, thì phải sử dụng tính năng “multi-part upload” (upload đa phần).
  • Metadata: Là danh sách các cặp key/value, được lưu trữ cùng với object. Metadata có thể là metadata hệ thống hoặc metadata do người dùng tự định nghĩa. Metadata rất hữu ích trong việc quản lý, tìm kiếm và phân loại các object.
  • Tags: Là các cặp key/value, cho phép gắn nhãn cho các object. Mỗi object có thể có tối đa 10 tags và mỗi tag có thể chứa đến 128 ký tự Unicode. Tags rất hữu ích trong việc quản lý bảo mật và quản lý vòng đời (lifecycle) của các object.
  • Version ID: Là một ID phiên bản duy nhất, được tạo ra khi tính năng versioning được kích hoạt trên một bucket. Versioning cho phép lưu nhiều phiên bản của cùng một object và đảm bảo rằng các phiên bản trước đó không bị mất đi hoặc bị ghi đè bởi phiên bản mới hơn.

5. Hãy thử thực hành tạo 1 bucket bằng cách bấm vào Create bucket.

Đặt 1 cái tên bất kỳ, ví dụ test.

Khi mình bấm Create bucket thì báo lỗi đã tồn tại tên này cho dù trong tài khoản của mình chưa hề tạo bucket. Điều này cho thấy tên bucket phải là duy nhất (có thể ai đó đã tạo tên bucket này).

Bây giờ bạn hãy thay đổi 1 cái tên khác, ví dụ stephane-demo-s3 và hãy chọn 1 AWS Region.

Để cho đơn giản, mình sẽ vô hiệu hoá ACL.

Mình sẽ để tuỳ chọn Block all public access để chặn các truy cập từ môi trường internet.

Bucket Versioning mình để theo mặc định là Disable.

Về mã hoá mình cũng tắt theo mặc định và nếu không còn gì thay đổi, hãy bấm Create bucket để tạo bucket mới.

Vậy là mình đã tạo thành công bucket stephane-demo-s3. Do bạn ở region toàn cầu nên bạn có thể thấy được bucket này, nếu bạn chuyển sang 1 regon khác với EU (Ireland) eu-west-1 thì bạn sẽ không còn nhìn thấy nó.

Bạn có thể bấm vào Upload để tải lên một đối tượng nào đó.

Mình sẽ thử tải lên 1 file tên coffee.jpg và nó có đích đến là s3://stephane-demo-s3

Bạn sẽ có 1 số thông tin file trước khi upload, nếu không có gì thay đổi hãy bấm vào Upload

Tại tab Succeeded, bạn thấy © 1 file, 108.4 KB (100.00%) tức là tiến trình Update file đã thành công.

Khi nhấp vào tấm hình thì tại đây bạn sẽ có các thông tin chi tiết của tấm hình, bạn có thể mở tấm hình bằng cách bấm vào Open.

Bạn có thể view tấm hình trên máy tính của bạn, điều này chứng tỏ tấm hình đã được public ra internet.

Nhưng nếu mình dùng url https://stephane-demo-s3.s3.eu-west-1.amazonaws.com/coffee.jpg tại phần Object URL bạn sẽ nhận được 1 thông báo bằng json là bạn không có quyền xem tấm hình này.

Điều này có nghĩa là url khi tôi bấm vào open nó có chứa một thông tin mã hoá liên quan đến thông tin login người dùng của tôi nên tôi mới xem được nó, như vậy là url khi bấm vào open chỉ dành riêng cho tôi. Còn url thứ 2 tại phần Object URL nó không chứa thông tin người dùng của tôi nên tôi không thể xem được nó. Để đưa tấm hình này vào chế độ công khai cho nhiều người xem thì chúng ta hãy làm tiếp ở bài sau.

Hãy quay lại Amazon S3 › Buckets › stephane-demo-s3, bấm Create folder để tạo folder mới.

Bạn cũng có thể tạo tạo folder hoặc xoá các đối tượng,… Ví dụ như tạo 1 folder tên images và bấm Create folder.

Tạo thư mục thành công, tôi có 1 folder images/ như dưới. Hãy vào Amazon › S3 Buckets › stephane-demo-s3 images/ › Upload.

Bấm vào Add files, chọn 1 file bất kỳ để test (ví dụ của mình là beach.jpg).

Và lần này đích đến của mình là s3://stephane-demo-s3/images/.

Và bây giờ bạn đã có 1 file beach.jpg nằm trong images/ như dưới.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories