4.Thiết kế giải pháp lưu trữ được tối ưu chi phí trên AWS

Phần này tập trung vào cách thiết kế giải pháp lưu trữ trên AWS sao cho tối ưu chi phí nhưng vẫn đáp ứng được yêu cầu về hiệu năng, khả năng mở rộng, độ bền và tính sẵn sàng của dữ liệu.

Nội dung chính bao gồm cách lựa chọn chiến lược tải dữ liệu lên Amazon S3, so sánh giữa tải theo lô và tải từng tệp riêng lẻ, xác định kích thước lưu trữ phù hợp cho workload, lựa chọn phương pháp truyền dữ liệu có chi phí thấp nhất, tự động mở rộng lưu trữ, quản lý vòng đời object S3, chọn storage tier phù hợp và lựa chọn dịch vụ lưu trữ hiệu quả nhất về chi phí.

Nói ngắn gọn, đây là phần giúp bạn lưu dữ liệu trên AWS một cách thông minh hơn: dữ liệu cần dùng nhanh thì để nơi nhanh, dữ liệu ít dùng thì chuyển sang nơi rẻ hơn, còn dữ liệu không cần nữa thì nên dọn dẹp, đừng để hóa đơn AWS nhắc bạn thay mình.

Mục lục

  1. Thiết kế chiến lược lưu trữ phù hợp
  2. Xác định kích thước lưu trữ chính xác cho một workload
  3. Xác định phương pháp chi phí thấp nhất để truyền dữ liệu vào lưu trữ AWS
  4. Xác định khi nào cần tự động mở rộng lưu trữ
  5. Quản lý vòng đời object S3
  6. Lựa chọn giải pháp sao lưu và/hoặc lưu trữ dài hạn phù hợp
  7. Lựa chọn dịch vụ phù hợp để di chuyển dữ liệu sang các dịch vụ lưu trữ
  8. Lựa chọn storage tier phù hợp
  9. Lựa chọn vòng đời dữ liệu chính xác cho lưu trữ
  10. Lựa chọn dịch vụ lưu trữ hiệu quả nhất về chi phí cho workload

4.1. Thiết kế giải pháp lưu trữ được tối ưu chi phí

Thiết kế chiến lược lưu trữ phù hợp, ví dụ: tải theo lô lên Amazon S3 so với tải từng tệp riêng lẻ

Chọn đúng chiến lược lưu trữ là điều rất quan trọng để tối ưu chi phí và hiệu năng. Dưới đây là so sánh giữa tải theo lô và tải từng tệp riêng lẻ lên Amazon S3.

Tải theo lô

Tải theo lô là cách tải nhiều tệp trong một thao tác duy nhất. Điều này có thể được thực hiện bằng các công cụ như AWS CLI, SDK hoặc Amazon S3 Transfer Acceleration.

Ưu điểm:

  • Giảm overhead: Ít yêu cầu đến S3 hơn, có thể giảm chi phí, đặc biệt với số lượng lớn tệp nhỏ.
  • Cải thiện hiệu năng: Có thể nhanh hơn đáng kể khi cần tải nhiều tệp.

Nhược điểm:

  • Triển khai phức tạp hơn: Cần scripting hoặc sử dụng công cụ chuyên dụng.
  • Có khả năng tạo miền lỗi lớn hơn: Nếu tải theo lô thất bại, nhiều tệp có thể cần được tải lại.

Tải từng tệp riêng lẻ

Tải từng tệp riêng lẻ là cách tải từng tệp một.

Ưu điểm:

  • Triển khai đơn giản hơn: Dễ triển khai hơn với các công cụ và thư viện cơ bản.
  • Miền lỗi nhỏ hơn: Nếu một lần tải thất bại, chỉ một tệp bị ảnh hưởng.

Nhược điểm:

  • Overhead cao hơn: Nhiều yêu cầu hơn đến S3, có thể làm tăng chi phí, đặc biệt với nhiều tệp nhỏ.
  • Hiệu năng thấp hơn: Có thể chậm hơn khi cần tải nhiều tệp.

Khi nào nên dùng cách nào?

Tải theo lô: Phù hợp nhất với số lượng lớn tệp nhỏ, tải lên thường xuyên và khi hiệu năng là yếu tố quan trọng.

Tải từng tệp riêng lẻ: Phù hợp với số lượng tệp nhỏ, tải lên không thường xuyên hoặc khi sự đơn giản là ưu tiên hàng đầu.

Nói vui một chút, nếu chỉ mang vài món đồ thì xách từng món cũng được. Nhưng nếu chuyển cả nhà mà vẫn xách từng món một, thì hơi vất vả cho cả người lẫn hóa đơn.

Các chiến lược lưu trữ khác

Quản lý vòng đời dữ liệu: Di chuyển dữ liệu giữa các lớp lưu trữ khác nhau dựa trên tần suất truy cập. Ví dụ, chuyển dữ liệu ít được truy cập từ S3 Standard sang S3 Glacier.

Nén dữ liệu: Nén dữ liệu trước khi lưu vào S3 để giảm chi phí lưu trữ.

Xác định kích thước lưu trữ chính xác cho một workload

Ước tính chính xác nhu cầu lưu trữ là điều thiết yếu để tối ưu chi phí. Cấp phát quá mức dẫn đến chi phí không cần thiết, trong khi cấp phát thiếu có thể ảnh hưởng đến hiệu năng và tính sẵn sàng.

Các yếu tố cần cân nhắc bao gồm:

  • Khối lượng dữ liệu hiện tại: Hiện đang lưu trữ bao nhiêu dữ liệu?
  • Tốc độ tăng trưởng dữ liệu: Dữ liệu dự kiến tăng nhanh đến mức nào?
  • Policy lưu giữ dữ liệu: Dữ liệu cần được lưu giữ trong bao lâu?
  • Mẫu truy cập dữ liệu: Dữ liệu được truy cập thường xuyên đến mức nào?

Bạn có thể sử dụng các công cụ giám sát như Amazon CloudWatch để theo dõi mức sử dụng lưu trữ và xác định xu hướng.

Xác định phương pháp chi phí thấp nhất để truyền dữ liệu cho workload vào lưu trữ AWS

Có một số phương pháp để truyền dữ liệu vào lưu trữ AWS, mỗi phương pháp có tác động chi phí khác nhau.

Internet: Sử dụng internet công cộng để truyền dữ liệu. Đây thường là tùy chọn đơn giản nhất nhưng có thể chậm và tốn kém với tập dữ liệu lớn.

AWS Direct Connect: Thiết lập kết nối mạng chuyên dụng giữa mạng on-premises và AWS. Cách này cung cấp băng thông cao hơn và độ trễ thấp hơn, nhưng có chi phí định kỳ.

AWS Snow Family: Sử dụng thiết bị vật lý để truyền lượng dữ liệu lớn ngoại tuyến. Cách này hiệu quả về chi phí cho tập dữ liệu rất lớn hoặc khi băng thông mạng bị giới hạn.

AWS DataSync: Được tối ưu cho truyền dữ liệu trực tuyến, đặc biệt với tập dữ liệu lớn và thay đổi thường xuyên. Trong một số trường hợp sử dụng, DataSync có thể hiệu quả về chi phí hơn so với sử dụng internet thông thường.

Phương pháp tối ưu phụ thuộc vào các yếu tố như khối lượng dữ liệu, tần suất truyền, băng thông khả dụng và ngân sách.

Xác định khi nào cần tự động mở rộng lưu trữ

Tự động mở rộng lưu trữ tự động điều chỉnh dung lượng lưu trữ dựa trên nhu cầu. Điều này có thể giúp tối ưu chi phí bằng cách chỉ cấp phát dung lượng lưu trữ cần thiết.

Bạn nên cân nhắc tự động mở rộng lưu trữ trong các trường hợp sau:

  • Workload khó dự đoán: Khi nhu cầu lưu trữ dao động đáng kể.
  • Tăng trưởng dữ liệu thay đổi: Khi khó dự đoán tốc độ tăng trưởng dữ liệu.
  • Tối ưu chi phí: Khi muốn tránh cấp phát lưu trữ quá mức.

Các dịch vụ như Amazon EBS (Elastic Block Storage) cung cấp khả năng tự động mở rộng. Với Amazon S3, lifecycle policy giúp quản lý chi phí bằng cách tự động chuyển dữ liệu sang các lớp lưu trữ rẻ hơn dựa trên tuổi dữ liệu.

Quản lý vòng đời object S3

Amazon S3 cung cấp các lớp lưu trữ khác nhau được thiết kế cho nhiều mẫu truy cập và cân nhắc chi phí. S3 lifecycle policy cho phép bạn tự động chuyển object giữa các lớp lưu trữ này hoặc xóa hoàn toàn object dựa trên các rule được định nghĩa trước. Điều này rất quan trọng để tối ưu chi phí.

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

S3 Standard: Dành cho dữ liệu được truy cập thường xuyên. Lớp này cung cấp độ bền, tính sẵn sàng và hiệu năng cao, nhưng cũng là lựa chọn đắt nhất.

S3 Intelligent-Tiering: Dành cho dữ liệu có mẫu truy cập không xác định hoặc thay đổi. Dịch vụ tự động di chuyển object giữa tầng truy cập thường xuyên và không thường xuyên dựa trên mức sử dụng. Cách này giúp tiết kiệm chi phí mà không ảnh hưởng đến hiệu năng.

S3 Standard-IA (Infrequent Access): Dành cho dữ liệu ít được truy cập hơn nhưng vẫn cần truy cập nhanh khi cần. Chi phí lưu trữ thấp hơn S3 Standard, nhưng có phí truy xuất.

S3 One Zone-IA: Tương tự S3 Standard-IA, nhưng dữ liệu được lưu trong một Availability Zone duy nhất. Chi phí thấp hơn S3 Standard-IA, nhưng kém khả năng phục hồi hơn trước lỗi AZ.

S3 Glacier Instant Retrieval: Dành cho dữ liệu lưu trữ dài hạn cần truy cập ngay lập tức trong mili giây. Chi phí lưu trữ thấp, nhưng chi phí truy xuất cao hơn so với một số tùy chọn truy xuất khác trong Glacier.

S3 Glacier Flexible Retrieval: Trước đây là S3 Glacier. Lớp này dành cho dữ liệu lưu trữ dài hạn với thời gian truy xuất từ vài phút đến vài giờ. Chi phí lưu trữ thấp hơn S3 Glacier Instant Retrieval.

S3 Glacier Deep Archive: Dành cho dữ liệu lưu trữ dài hạn với thời gian truy xuất từ 12 đến 48 giờ. Đây là tùy chọn lưu trữ có chi phí thấp nhất.

S3 Lifecycle Policies

S3 Lifecycle Policies định nghĩa các rule để chuyển object giữa các lớp lưu trữ hoặc xóa chúng. Bạn có thể định nghĩa rule dựa trên:

  • Tuổi object: Chuyển object sang lớp lưu trữ rẻ hơn sau một số ngày nhất định.
  • Prefix object: Áp dụng rule cho object có prefix cụ thể.
  • Tag: Áp dụng rule cho object có tag cụ thể.

Ví dụ lifecycle policy

  • Chuyển object sang S3 Standard-IA sau 30 ngày.
  • Chuyển object sang S3 Glacier Flexible Retrieval sau 90 ngày.
  • Xóa vĩnh viễn object sau 365 ngày.

Bằng cách sử dụng lifecycle policy hiệu quả, bạn có thể bảo đảm dữ liệu được lưu trong lớp lưu trữ hiệu quả nhất về chi phí dựa trên mẫu truy cập của nó.

Lựa chọn giải pháp sao lưu và/hoặc lưu trữ dài hạn phù hợp

AWS cung cấp một số dịch vụ cho sao lưu và lưu trữ dài hạn, mỗi dịch vụ có đặc điểm chi phí và hiệu năng khác nhau.

AWS Backup: Đây là dịch vụ sao lưu tập trung, giúp đơn giản hóa việc quản lý sao lưu trên nhiều dịch vụ AWS, bao gồm EC2, EBS, RDS, DynamoDB, EFS và Storage Gateway. AWS Backup cho phép bạn định nghĩa policy và lịch sao lưu, đồng thời tích hợp với S3 để lưu trữ bản sao lưu. Dịch vụ này cung cấp khả năng tối ưu chi phí thông qua lifecycle policy cho các bản sao lưu được lưu trong S3.

Amazon S3 Glacier: Như đã đề cập, S3 Glacier được thiết kế cho lưu trữ dài hạn. Dịch vụ này cung cấp tùy chọn lưu trữ có chi phí thấp cho dữ liệu ít được truy cập. Bạn có thể sử dụng S3 lifecycle policy hoặc tải trực tiếp để chuyển dữ liệu sang Glacier.

AWS Storage Gateway: Dịch vụ này kết nối appliance phần mềm on-premises với lưu trữ dựa trên đám mây. Storage Gateway hữu ích cho các giải pháp sao lưu hybrid cloud.

Việc chọn đúng giải pháp phụ thuộc vào các yếu tố như:

  • Mục tiêu thời gian khôi phục (RTO): Thời gian tối đa có thể chấp nhận để khôi phục một bản sao lưu.
  • Mục tiêu điểm khôi phục (RPO): Lượng dữ liệu tối đa có thể chấp nhận bị mất trong trường hợp xảy ra lỗi.
  • Yêu cầu lưu giữ dữ liệu: Dữ liệu cần được lưu giữ trong bao lâu.
  • Cân nhắc chi phí: Ngân sách cho sao lưu và lưu trữ dài hạn.

Đối với sao lưu thường xuyên và khôi phục nhanh, AWS Backup là lựa chọn tốt. Đối với lưu trữ dài hạn với yêu cầu khôi phục ít nghiêm ngặt hơn, S3 Glacier thường hiệu quả hơn về chi phí.

Lựa chọn dịch vụ phù hợp để di chuyển dữ liệu sang các dịch vụ lưu trữ

Di chuyển dữ liệu sang các dịch vụ lưu trữ AWS có thể là một quy trình phức tạp. AWS cung cấp một số dịch vụ để đơn giản hóa quy trình này.

AWS Snow Family (Snowcone, Snowball Edge, Snowmobile): Dùng để truyền lượng dữ liệu lớn ngoại tuyến. Thiết bị Snow được gửi vật lý đến bạn, bạn nạp dữ liệu vào thiết bị, sau đó gửi lại cho AWS. Cách này phù hợp khi băng thông mạng bị giới hạn hoặc không khả dụng.

AWS DataSync: Dùng để truyền dữ liệu trực tuyến giữa lưu trữ on-premises và các dịch vụ lưu trữ AWS. DataSync sử dụng một software agent để truyền dữ liệu hiệu quả qua mạng.

AWS Transfer Family: Dùng cho truyền tệp bảo mật bằng các giao thức tiêu chuẩn như SFTP, FTPS và FTP.

AWS Storage Gateway: Như đã đề cập, Storage Gateway có thể được dùng cho các kịch bản lưu trữ hybrid cloud, bao gồm di chuyển dữ liệu.

Việc chọn đúng dịch vụ phụ thuộc vào các yếu tố như:

  • Khối lượng dữ liệu: Lượng dữ liệu cần di chuyển.
  • Băng thông mạng: Băng thông mạng khả dụng.
  • Thời gian di chuyển: Thời gian có sẵn cho việc di chuyển.
  • Yêu cầu bảo mật: Yêu cầu bảo mật cho việc truyền dữ liệu.

Lựa chọn storage tier phù hợp

AWS cung cấp một số storage tier trong các dịch vụ lưu trữ, mỗi tier có đặc điểm hiệu năng và tác động chi phí khác nhau. Chọn đúng tier là điều rất quan trọng để tối ưu chi phí lưu trữ.

Dưới đây là phân tích các tier chính trong Amazon S3, vì đây là dịch vụ phổ biến nhất trong ngữ cảnh này:

S3 Standard: Được thiết kế cho dữ liệu được truy cập thường xuyên, cung cấp độ bền, tính sẵn sàng và hiệu năng cao. Đây là tier đắt nhất.

S3 Intelligent-Tiering: Tự động di chuyển dữ liệu giữa tier truy cập thường xuyên và không thường xuyên dựa trên mẫu sử dụng. Tier này phù hợp với dữ liệu có mẫu truy cập không xác định hoặc thay đổi. Có một khoản phí nhỏ hằng tháng cho giám sát và tự động hóa.

S3 Standard-IA (Infrequent Access): Dành cho dữ liệu ít được truy cập hơn nhưng vẫn cần truy cập nhanh khi cần. Lớp này cung cấp chi phí lưu trữ thấp hơn S3 Standard nhưng có tính phí truy xuất.

S3 One Zone-IA: Tương tự S3 Standard-IA nhưng lưu dữ liệu trong một Availability Zone duy nhất. Điều này tiếp tục giảm chi phí lưu trữ nhưng cung cấp tính sẵn sàng và độ bền thấp hơn, nên không khuyến nghị cho dữ liệu quan trọng.

S3 Glacier Instant Retrieval: Dành cho dữ liệu lưu trữ dài hạn cần truy cập ngay lập tức với thời gian truy xuất mili giây. Chi phí lưu trữ thấp hơn Standard-IA và có phí truy xuất.

S3 Glacier Flexible Retrieval: Trước đây là S3 Glacier. Lớp này dành cho dữ liệu lưu trữ dài hạn với thời gian truy xuất từ vài phút đến vài giờ. Đây là tùy chọn lưu trữ chi phí thấp cho dữ liệu lưu trữ dài hạn.

S3 Glacier Deep Archive: Dành cho dữ liệu lưu trữ dài hạn hiếm khi được truy cập. Lớp này cung cấp chi phí lưu trữ thấp nhất nhưng có thời gian truy xuất lâu nhất, có thể lên đến 12 giờ.

Khi chọn storage tier, hãy cân nhắc các yếu tố sau:

  • Tần suất truy cập: Dữ liệu sẽ được truy cập thường xuyên đến mức nào?
  • Thời gian truy xuất: Dữ liệu cần được truy xuất nhanh đến mức nào?
  • Yêu cầu độ bền và tính sẵn sàng: Việc bảo vệ dữ liệu khỏi mất mát hoặc không khả dụng quan trọng đến mức nào?
  • Chi phí: Ngân sách cho lưu trữ là bao nhiêu?

Lựa chọn vòng đời dữ liệu chính xác cho lưu trữ

Quản lý vòng đời dữ liệu liên quan đến việc định nghĩa policy để tự động di chuyển dữ liệu giữa các storage tier khác nhau dựa trên tuổi và tần suất truy cập. Điều này có thể giảm đáng kể chi phí lưu trữ bằng cách chuyển dữ liệu cũ hơn, ít được truy cập hơn sang các tier rẻ hơn.

S3 Lifecycle policy cho phép bạn:

  • Chuyển object sang các lớp lưu trữ khác nhau: Tự động chuyển object sang tier rẻ hơn như Standard-IA, One Zone-IA, Glacier Instant Retrieval, Glacier Flexible Retrieval hoặc Glacier Deep Archive sau một khoảng thời gian được chỉ định.
  • Hết hạn object: Tự động xóa object sau một khoảng thời gian được chỉ định.
  • Quản lý version: Cấu hình rule để quản lý các version khác nhau của object.

Ví dụ lifecycle rule

  • Chuyển object sang S3 Standard-IA sau 30 ngày.
  • Chuyển object sang S3 Glacier Flexible Retrieval sau 90 ngày.
  • Xóa vĩnh viễn object sau 365 ngày.

Bằng cách triển khai lifecycle policy phù hợp, bạn có thể bảo đảm dữ liệu được lưu trong tier hiệu quả nhất về chi phí trong suốt vòng đời của nó.

Lựa chọn dịch vụ lưu trữ hiệu quả nhất về chi phí cho workload

AWS cung cấp nhiều dịch vụ lưu trữ khác nhau, mỗi dịch vụ có điểm mạnh và điểm yếu riêng. Việc chọn đúng dịch vụ phụ thuộc vào yêu cầu workload cụ thể.

Dưới đây là tổng quan nhanh:

Amazon S3: Lưu trữ đối tượng cho nhiều trường hợp sử dụng, bao gồm sao lưu, lưu trữ dài hạn, lưu trữ media và data lake. S3 cung cấp các storage tier khác nhau để tối ưu chi phí.

Amazon EBS (Elastic Block Storage): Lưu trữ khối cho phiên bản EC2. EBS cung cấp hiệu năng cao và độ trễ thấp cho workload cần truy cập trực tiếp vào block device. Các loại EBS volume khác nhau cung cấp đặc điểm hiệu năng và chi phí khác nhau.

Amazon EFS (Elastic File System): Hệ thống tệp mạng cho phiên bản EC2. EFS cung cấp lưu trữ tệp dùng chung có thể được truy cập đồng thời bởi nhiều phiên bản.

Amazon FSx: Hệ thống tệp được quản lý cho các workload cụ thể, chẳng hạn như Windows file server với FSx for Windows File Server và điện toán hiệu năng cao với FSx for Lustre.

AWS Storage Gateway: Dịch vụ lưu trữ hybrid cloud, kết nối appliance phần mềm on-premises với các dịch vụ lưu trữ AWS.

Khi chọn dịch vụ lưu trữ, hãy cân nhắc các yếu tố sau:

  • Mẫu truy cập dữ liệu: Dữ liệu sẽ được truy cập như thế nào, ví dụ truy cập ngẫu nhiên hay truy cập tuần tự?
  • Yêu cầu hiệu năng: Yêu cầu về độ trễ và thông lượng là gì?
  • Yêu cầu độ bền và tính sẵn sàng: Việc bảo vệ dữ liệu khỏi mất mát hoặc không khả dụng quan trọng đến mức nào?
  • Chi phí: Ngân sách cho lưu trữ là bao nhiêu?