1. Moving between Storage Classes.
Amazon S3 là một dịch vụ lưu trữ đám mây của Amazon cho phép bạn lưu trữ và truy cập các đối tượng (object) của mình trên đám mây. Nó cung cấp nhiều lớp lưu trữ khác nhau, bao gồm Standard, Standard-IA, One Zone-Infrequent Access, Intelligent-Tiering, Glacier và Glacier Deep Archive.
Một tính năng quan trọng của Amazon S3 là khả năng chuyển đổi các đối tượng giữa các lớp lưu trữ khác nhau. Ví dụ, bạn có thể chuyển đổi các đối tượng ít được truy cập sang lớp lưu trữ Standard-IA để tiết kiệm chi phí lưu trữ. Ngược lại, các đối tượng lưu trữ dưới dạng bản sao lưu có thể được chuyển sang Glacier hoặc Glacier Deep Archive để lưu trữ lâu dài.
Việc chuyển đổi các đối tượng giữa các lớp lưu trữ khác nhau có thể được thực hiện tự động bằng cách sử dụng các quy tắc Lifecycle (Lifecycle Rules). Lifecycle Rules là một tập hợp các quy tắc được cấu hình để tự động chuyển đổi các đối tượng giữa các lớp lưu trữ khác nhau theo một kế hoạch được xác định trước.
Ví dụ, bạn có thể cấu hình một quy tắc Lifecycle Rule để tự động chuyển đổi các đối tượng đã không được truy cập trong vòng 30 ngày sang lớp lưu trữ Standard-IA. Sau đó, các đối tượng đã không được truy cập trong vòng 60 ngày có thể được chuyển đổi sang lớp lưu trữ Glacier. Từ đó, bạn có thể quản lý các đối tượng của mình một cách thông minh và tối ưu hóa chi phí lưu trữ.
2. Lifecycle Rules.
Lifecycle Rules là một tính năng quan trọng của Amazon S3 cho phép bạn tự động quản lý các đối tượng (object) trên S3 bằng cách chuyển đổi chúng sang các lớp lưu trữ khác nhau hoặc xóa chúng sau một khoảng thời gian nhất định.
Lifecycle Rules bao gồm hai loại hành động: Transition Actions và Expiration Actions.
Transition Actions cho phép bạn cấu hình để các đối tượng được chuyển đổi sang một lớp lưu trữ khác nhau sau một khoảng thời gian nhất định. Ví dụ, bạn có thể cấu hình để các đối tượng được tạo ra trong 60 ngày qua được chuyển đổi sang lớp lưu trữ Standard-IA và sau 6 tháng, chúng được chuyển sang lớp lưu trữ Glacier. Điều này giúp tối ưu chi phí lưu trữ cho các đối tượng khác nhau.
Expiration Actions cho phép bạn cấu hình để các đối tượng bị xóa sau một khoảng thời gian nhất định. Ví dụ, các tập tin nhật ký truy cập có thể được đặt để xóa sau 365 ngày. Bên cạnh đó, Rules cũng có thể được tạo để xóa phiên bản cũ của các tập tin (nếu tính năng versioning được bật), hoặc các phần tải lên đa phần không hoàn thành.
Lifecycle Rules cũng cho phép bạn tạo quy tắc cho một tiền tố cụ thể (prefix), ví dụ: s3://mybucket/mp3/* hoặc tạo quy tắc cho các đối tượng được đánh dấu bằng các thẻ (tags) nhất định, ví dụ: Department: Finance. Điều này giúp bạn tối ưu hóa việc quản lý các đối tượng trên S3 một cách nhanh chóng và dễ dàng.
3. Scenario for Lifecycle Rules.
3.1. Scenario 1.
Kịch bản sử dụng Lifecycle Rules để thiết lập các hành động tự động cho các đối tượng S3 trong vòng đời của chúng. Theo kịch bản, hình ảnh nguồn được tải lên S3 sẽ được lưu trữ trên lớp lưu trữ Standard và sau 60 ngày, chúng sẽ được chuyển sang lớp lưu trữ Glacier.
Đối với các hình ảnh thu nhỏ, chúng sẽ được lưu trữ trên lớp lưu trữ One-Zone IA. Với cấu hình vòng đời, sau 60 ngày, các hình ảnh thu nhỏ sẽ bị xóa khỏi S3 để giảm chi phí lưu trữ. Điều này có ý nghĩa là nếu người dùng cần xem lại các hình ảnh thu nhỏ sau 60 ngày, các thumbnail sẽ được tạo lại bằng cách chạy ứng dụng của EC2, nhưng việc tạo lại thumbnail sẽ không gây ra sự cố lớn, vì chúng có thể được tái tạo dễ dàng.
Với việc lưu trữ hình ảnh nguồn trên Standard và hình ảnh thu nhỏ trên One-Zone IA, chi phí lưu trữ sẽ được giảm thiểu so với việc lưu trữ tất cả các hình ảnh trên lớp lưu trữ Standard hoặc One-Zone IA. Nếu các hình ảnh thu nhỏ không được sử dụng, chúng sẽ được xóa sau 60 ngày, giúp giảm chi phí lưu trữ.
3.2. Scenario 2.
Để đáp ứng yêu cầu của quy định trong công ty, chúng ta có thể sử dụng các tính năng của Amazon S3 để quản lý vòng đời đối tượng (object lifecycle) như sau:
- Bật tính năng S3 Versioning để lưu trữ nhiều phiên bản của đối tượng. Khi một đối tượng được xóa, nó sẽ không bị xóa vĩnh viễn mà sẽ được ẩn đi bởi một “delete marker”. Điều này cho phép người dùng khôi phục đối tượng sau khi nó đã bị xóa.
- Sử dụng các hành động transition của Lifecycle Rules để di chuyển các phiên bản “noncurrent” (phiên bản cũ) của đối tượng sang lớp lưu trữ Standard IA sau 30 ngày. Điều này giúp tiết kiệm chi phí lưu trữ cho các phiên bản cũ của đối tượng.
- Tiếp theo, sử dụng hành động transition để chuyển các phiên bản “noncurrent” của đối tượng sang lớp lưu trữ Glacier Deep Archive sau 365 ngày. Điều này giúp giảm chi phí lưu trữ cho các phiên bản cũ của đối tượng, nhưng vẫn đảm bảo khả năng khôi phục đối tượng trong vòng 48 giờ.
Như vậy, với kịch bản này, các đối tượng được lưu trữ trên S3 sẽ được quản lý vòng đời một cách hiệu quả, đáp ứng được yêu cầu của quy định trong công ty.
4. Storage Class Analysis.
Storage Class Analysis là một tính năng của Amazon S3 giúp bạn quyết định khi nào nên chuyển đổi các đối tượng sang lớp lưu trữ phù hợp hơn. Với Storage Class Analysis, bạn có thể xác định các đối tượng nào cần được chuyển đổi sang lớp lưu trữ khác để giảm chi phí lưu trữ.
Storage Class Analysis chỉ hoạt động cho các đối tượng được lưu trữ trong lớp Standard và Standard IA, không áp dụng cho các lớp lưu trữ One-Zone IA hoặc Glacier. Tính năng này cung cấp cho bạn báo cáo hàng ngày về các đối tượng của bạn, với đề xuất về cách chuyển đổi chúng sang lớp lưu trữ phù hợp hơn.
Báo cáo được cập nhật hàng ngày và có thể mất từ 24 đến 48 giờ để bắt đầu xem dữ liệu phân tích. Việc sử dụng Storage Class Analysis là bước đầu tiên tốt để bạn có thể đưa ra hoặc cải thiện các quy tắc Lifecycle Rules của mình, nhằm đảm bảo việc lưu trữ dữ liệu hiệu quả và giảm chi phí.
5. Thực hành.
Hãy vào Amazon S3 › Buckets › s3-storage-classes-stephane-demo › Lifecycle configuration › Create lifecycle rule điền thông tin Lifecycle rule name, chọn Apply to all objects in the bucket để áp dụng cho tất cả đối tượng.
Khi chọn tùy chọn “I acknowledge that this rule will apply to all objects in the bucket”, nghĩa là quy tắc sẽ áp dụng cho tất cả các đối tượng trong bucket, không phân biệt là đối tượng nào và không cần phải đặt bất kỳ điều kiện hay ràng buộc nào. Việc áp dụng quy tắc cho tất cả các đối tượng trong bucket sẽ giúp đơn giản hóa quản lý và đảm bảo những đối tượng mới được tạo trong tương lai sẽ được áp dụng quy tắc này.
Các tùy chọn được liệt kê đều liên quan đến việc quản lý các phiên bản của các đối tượng (objects) trong S3 và cho phép bạn áp dụng các hành động khác nhau trên các phiên bản này.
- Move current versions of objects between storage classes: Cho phép di chuyển phiên bản hiện tại của đối tượng giữa các lớp lưu trữ khác nhau trong S3. Ví dụ: di chuyển các phiên bản của các file cũ hơn vào lớp lưu trữ Standard-Infrequent Access (Standard IA) để giảm chi phí lưu trữ.
- Move noncurrent versions of objects between storage classes: Cho phép di chuyển các phiên bản không phải là phiên bản hiện tại của đối tượng giữa các lớp lưu trữ khác nhau trong S3. Ví dụ: di chuyển các phiên bản của các file cũ hơn vào lớp lưu trữ Standard-Infrequent Access (Standard IA) để giảm chi phí lưu trữ.
- Expire current versions of objects: Cho phép đặt hạn cho các phiên bản hiện tại của đối tượng, khi đến hạn thì các phiên bản này sẽ tự động bị xóa khỏi S3. Ví dụ: đặt hạn 6 tháng cho các phiên bản hiện tại của các file hình ảnh để giải phóng không gian lưu trữ.
- Permanently delete noncurrent versions of objects: Cho phép xóa vĩnh viễn các phiên bản không phải là phiên bản hiện tại của đối tượng khỏi S3. Ví dụ: xóa các phiên bản không phải là phiên bản hiện tại của các file hình ảnh sau khi chúng đã được chuyển sang Glacier.
- Delete expired object delete markers or incomplete multipart uploads: Cho phép xóa các điểm đánh dấu xóa đối tượng (delete markers) đã hết hạn hoặc các tải lên đa phần chưa hoàn thành (incomplete multipart uploads). Ví dụ: xóa các điểm đánh dấu xóa đối tượng (delete markers) sau khi các phiên bản của đối tượng đã bị xóa hoặc xóa các tải lên đa phần chưa hoàn thành để giải phóng không gian lưu trữ.
Ở thiết lập đầu tiên, mình sử dụng tuỳ chọn “Move current versions of objects between storage classes”.
Sau đó mình sẽ thiết lập các lựa chọn cho các quy tắc chuyển đổi lớp lưu trữ (storage class transition) cho các đối tượng trên S3. Các lựa chọn này định nghĩa chuyển đổi đối tượng sang lớp lưu trữ khác sau một số ngày nhất định kể từ khi đối tượng được tạo ra trên S3.
- Lựa chọn thứ nhất: Chuyển đổi lớp lưu trữ sang Standard-IA (Standard Infrequent Access) và sau 30 ngày kể từ khi đối tượng được tạo.
- Lựa chọn thứ hai: Chuyển đổi lớp lưu trữ sang Intelligent-Tiering và sau 60 ngày kể từ khi đối tượng được tạo.
- Lựa chọn thứ ba: Chuyển đổi lớp lưu trữ sang Glacier Instant Retrieval và sau 90 ngày kể từ khi đối tượng được tạo.
- Lựa chọn thứ tư: Chuyển đổi lớp lưu trữ sang S3 Glacier Flexible Retrieval và sau 180 ngày kể từ khi đối tượng được tạo.
- Lựa chọn thứ năm: Chuyển đổi lớp lưu trữ sang S3 Glacier Deep Archive và sau 365 ngày kể từ khi đối tượng được tạo.
Các lựa chọn này giúp bạn quản lý và giảm chi phí lưu trữ bằng cách tự động chuyển đổi các đối tượng sang lớp lưu trữ phù hợp với mức độ truy cập và yêu cầu bảo mật của dữ liệu.
Giải thích về “Transition noncurrent versions of objects between storage classes” một chút, nó là một tính năng của Amazon S3 Lifecycle Rule, cho phép chuyển các phiên bản không mới của một đối tượng từ một lớp lưu trữ sang lớp lưu trữ khác. Một phiên bản không mới là phiên bản của đối tượng đã bị thay thế bởi phiên bản mới hơn của đối tượng. Ví dụ, nếu bạn có một đối tượng có 3 phiên bản, phiên bản đầu tiên là phiên bản gốc, phiên bản thứ hai là phiên bản mới hơn và phiên bản thứ ba là phiên bản không mới, sau đó bạn có thể chuyển phiên bản thứ ba (phiên bản không mới) của đối tượng này sang một lớp lưu trữ khác để tiết kiệm chi phí lưu trữ.
Bằng cách sử dụng tính năng này của Amazon S3, bạn có thể giảm chi phí lưu trữ bằng cách chuyển các phiên bản không mới của đối tượng sang các lớp lưu trữ rẻ hơn. Ví dụ, bạn có thể chuyển các phiên bản không mới của đối tượng sang lớp lưu trữ Standard-IA để giảm chi phí lưu trữ. Tính năng “Transition noncurrent versions of objects between storage classes” cũng được sử dụng để tăng tính linh hoạt và đáp ứng cho nhu cầu lưu trữ khác nhau của các phiên bản không mới của đối tượng.
Tiếp theo mình sẽ thêm tuỳ chọn “Move noncurrent versions of objects between storage classes”
Tuỳ chọn “Choose storage class transitions is Glacier Flexible Retrieval (formerly Glacier) and Days after objects become noncurrent is 90” có nghĩa là các object không còn được sử dụng (noncurrent versions) trong khoảng thời gian 90 ngày sẽ được chuyển sang lớp lưu trữ Glacier Flexible Retrieval. Lớp lưu trữ này là một tùy chọn khác của lớp lưu trữ Glacier, nó cho phép truy xuất dữ liệu nhanh hơn, nhưng có giá thành cao hơn. Nó được sử dụng khi bạn cần truy xuất dữ liệu ngay lập tức, nhưng không thường xuyên sử dụng nó. Ví dụ, bạn có thể sử dụng lớp lưu trữ Glacier Flexible Retrieval để lưu trữ dữ liệu lưu trữ dự phòng hoặc lưu trữ các bản sao của dữ liệu nội bộ mà không cần truy cập thường xuyên.
Tiếp theo mình Enable tuỳ chọn “Expire current versions of objects”.
“I acknowledge that this lifecycle rule will incur a one-time lifecycle request cost per object if it transitions small objects” có nghĩa là bạn xác nhận rằng quy tắc vòng đời này sẽ gây ra chi phí yêu cầu vòng đời một lần cho mỗi đối tượng nếu nó chuyển đổi các đối tượng nhỏ. Trong trường hợp này, nếu các đối tượng nhỏ được chuyển đổi sang lớp bộ nhớ khác, AWS sẽ tính phí cho mỗi yêu cầu vòng đời để chuyển đổi từng đối tượng.
“Expire current versions of objects” trong S3 Lifecycle Rule có nghĩa là các phiên bản (versions) của đối tượng (object) sẽ được tự động xóa khỏi S3 sau khi đạt đến thời gian được chỉ định. Trong trường hợp này, “700” được sử dụng để chỉ số ngày sau khi phiên bản hiện tại của đối tượng đã được tạo ra thì nó sẽ được tự động xóa khỏi S3. Vì vậy, nếu số ngày được thiết lập là 700, thì các phiên bản hiện tại của đối tượng sẽ bị xóa khỏi S3 sau 700 ngày kể từ khi chúng được tạo ra.
“Permanently delete noncurrent versions of objects is 700” có nghĩa là sau khi đối tượng (object) đã bị xóa và trở thành phiên bản phiên bản không hiện tại (noncurrent version) trong vòng 700 ngày, chúng sẽ bị xóa vĩnh viễn khỏi lưu trữ S3 của bạn. Việc này giúp giảm chi phí lưu trữ và đảm bảo rằng dữ liệu không còn cần thiết sẽ không được lưu trữ trong khoảng thời gian dài.
Phần cuối cùng sẽ cho bạn review lại các thiết lập, nếu không muốn thay đổi gì bạn hãy kéo xuống dưới và bấm Create rule để tạo rule này.
Thông báo “The lifecycle configuration was updated. Lifecycle rule “DemoRule” was successfully added.” cho biết bạn đã tạo rule thành công.
Trong S3 Lifecycle Rules, việc quản lý vòng đời đối tượng trên S3 là miễn phí. Tuy nhiên, nếu sử dụng các hành động đi kèm như chuyển đổi lớp lưu trữ hoặc xóa đối tượng, phí sử dụng dịch vụ S3 sẽ được tính toán dựa trên quy định giá của AWS.