Amazon S3 là gì?

AWS S3 là dịch vụ lưu trữ đối tượng được xây dựng để lưu trữ và truy xuất bất kỳ lượng dữ liệu nào từ bất cứ nơi nào. Đây là dịch vụ lưu trữ đơn giản có độ bền, độ sẵn có, hiệu suất, tính bảo mật dẫn đầu ngành và khả năng thay đổi quy mô gần như không giới hạn với chi phí cực kỳ thấp.

Amazon S3

Những đặc điểm nổi bật của AWS S3 khiến nó được nhiều người lựa chọn:

Loại dữ liệu lưu trữ

S3 Giúp bạn có thể lưu trữ ảo bất kỳ loại dữ liệu nào, ở bất kỳ định dạng nào.

Khối lượng, số lượng dữ liệu có thể lưu trữ

Không giới hạn tổng khối lượng dữ liệu và số lượng đối tượng bạn có thể lưu trữ. Các đối tượng riêng lẻ của Amazon S3 có thể có kích thước khác nhau, từ tối thiểu 0 byte đến tối đa 5 TB. Đối tượng lớn nhất có thể tải lên trong một yêu cầu PUT là 5 GB.

Tính sẵn sàng

Amazon S3 cho phép mọi nhà phát triển truy cập vào cùng một cơ sở hạ tầng lưu trữ dữ liệu có khả năng mở rộng linh hoạt, tính sẵn sàng cao( lên đến 99,99%), nhanh và ít tốn kém mà Amazon dùng để điều hành hệ thống trang web toàn cầu của mình.

Tính nhất quán

Amazon S3 tự động cung cấp tính nhất quán cao cho phép đọc sau khi ghi mà không cần thay đổi hiệu năng hoặc tính khả dụng, không phải hy sinh khả năng cô lập theo khu vực cho các ứng dụng và không mất thêm phí. Sau khi ghi thành công đối tượng mới hoặc ghi đè đối tượng hiện có, bất kỳ yêu cầu đọc tiếp theo nào sẽ ngay lập tức nhận được phiên bản mới nhất của đối tượng.

Bảo mật

Bạn hoàn toàn có thể yên tâm khi lưu trữ dữ liệu trên S3. Nó cung cấp rất nhiều cơ chế bảo mật giúp dữ liệu của bạn được bảo vệ tối đa: IAM, ACL, SCP, S3 Block Public Access…

Độ bền

Amazon S3 được thiết kế để đảm bảo độ bền dữ liệu lên đến 99,999999999% (11 chữ số 9) cho đối tượng trong một năm bất kỳ. Để dễ hình dung nếu lưu trữ 10.000.000 đối tượng bằng Amazon S3, dự kiến bạn có thể bị mất trung bình một đối tượng sau mỗi 10.000 năm.

Ngoài ra bạn có thể sử dụng Versioning để có thêm một lớp bảo vệ bằng cách cung cấp các phương tiện khôi phục khi khách hàng vô tình ghi đè hoặc xóa đối tượng. Việc này cho phép bạn dễ dàng khôi phục từ các hoạt động vô tình của người dùng và sự cố ứng dụng.

Khu vực AWS

Khu vực AWS là vị trí địa lý mà tại đó, AWS cung cấp nhiều Vùng sẵn sàng tách biệt, riêng rẽ về mặt vật lý, nhưng được kết nối với nhau nhờ kết nối mạng có độ trễ thấp, thông lượng cao và dữ liệu dự phòng cao.

Bạn cần chỉ định một Khu vực AWS khi tạo vùng lưu trữ Amazon S3 của mình.

Vùng sẵn sàng của AWS là một vị trí cách ly vật lý nằm trong một Khu vực AWS. Trong mỗi Khu vực AWS, S3 hoạt động trên tối thiểu ba vùng sẵn sàng, mỗi vùng sẵn sàng cách nhau nhiều dặm để bảo vệ trước các sự cố tại địa phương như hỏa hoạn, lũ lụt, v.v.

Amazon S3 khả dụng ở các Khu vực AWS trên toàn thế giới và bạn có thể sử dụng Amazon S3 cho dù bạn ở đâu. Bạn chỉ cần quyết định (các) Khu vực AWS bạn muốn lưu trữ dữ liệu Amazon S3 của bạn.

Chi phí và cách tối ưu

Chi phí của AWS S3 được tính thế nào?

Với Amazon S3, bạn chỉ phải trả tiền cho những gì bạn sử dụng. Không áp dụng chi phí tối thiểu.

Amazon S3 sẽ tính phí đối với bạn cho các loại hình sử dụng sau:

  • Dung lượng lưu trữ đã sử dụng.
  • Dữ liệu trên mạng nhận về.
  • Dữ liệu trên mạng đi.
  • Yêu cầu dữ liệu.
  • Truy xuất dữ liệu.

Các yếu tố ảnh hưởng đến chi phí của S3:

  • Class lưu trữ.
  • Kích thước dữ liệu.
  • Kích thước truy xuất dữ liệu.
  • Số lần yêu cầu truy xuất.
  • Khu vực AWS.

Bạn có thể tự tính toán chi phí cho dịch vụ S3 bằng Công cụ tính giá AWS.

Một số cách để tối ưu hiệu suất và chi phí khi sử dụng AWS S3

Dựa trên các yếu tố đó, để có thể tối ưu chi phí khi sử dụng dịch vụ Amazon S3, chúng ta nên:

Xác định chính xác nhu cầu sử dụng S3

Để xác định được chính xác nhu cầu sử dụng S3, bạn cần tự trả lời một số câu hỏi:

  • Dữ liệu bạn lưu trữ trong S3 là gì?
  • Bạn cần giữ dữ liệu cũ trong bao lâu?
  • Storage Classes bạn sẽ sử dụng là gì?
  • Bạn nên sử dụng khu vực AWS nào cho bộ chứa S3?
  • Bạn có cần bật tính năng Object Versioning hay không?

Xác định Storage Classes bạn sẽ sử dụng

Amazon S3 cung cấp một loạt Storage Classes:

  • Standard: thông dụng nhất, chi phí lưu trữ cao, nhưng không mất tiền cho số lượng các requets đến data. Thường được sử dụng cho mục đích phân tích dữ liệu, Mobile & gaming application, content distribution…
  • Standard-Infrequent Access (Standard-IA): giá lưu trữ thấp hơn Standard, nhưng chi phí truy cập lại cao hơn. Sử dụng để backup dữ liệu cho phục hồi khi thiên tai…
  • One Zone-Infrequent Access (One Zone-IA): tương tự Standard-IA nhưng dữ liệu chỉ được lưu trữ trong một AZ. Chi phí thấp hơn nhưng rủi ro khi có thể không truy xuất được dữ liệu.
  • Intelligent-Tiering: Chi phí thấp cho việc monitor hàng tháng và chuyển đổi kiểu lưu trữ
  • Glacier: Chi phí lưu trữ thấp nhưng chi phí cho việc truy xuất dữ liệu cao. Thời gian truy xuất dữ liệu có thể từ vài phút đến vài tiếng. Được thiết kế cho việc lưu trữ dung lượng lớn, dài hạn. Thời gian lưu trữ tối thiểu 90 ngày.
  • Glacier Deep Archive: Là Storage Classes có giá rẻ nhất. Tương tự như Glacier nhưng sử dụng cho việc lưu trữ dài hạn hơn Glacier. Thời gian lưu trữ tối thiểu là 180 ngày.

Mỗi Storage Classes có quyền truy cập dữ liệu, khả năng phục hồi và chi phí tương ứng với khối lượng công việc. Bạn có thể dựa vào các yếu tố đó để lựa chọn Class phù hợp với nhu cầu.

Sử dụng S3 Intelligent Tiering

Amazon S3 Intelligent Tiering là 1 Class linh hoạt, nó sẽ giám sát các kiểu truy cập đối tượng và di chuyển các đối tượng đến các tầng lưu trữ rẻ hơn giúp giảm thiểu chi phí khi không được truy cập trong một khoảng thời gian nhất định. Nếu một object đang được giữ hơn 30 ngày, thì đây nên là lựa chọn đầu tiên của bận.

Xóa dữ liệu không sử dụng

Chắc chắn bạn không muốn trả tiền cho những thứ bạn không sử dụng. Vì thế nên loại bỏ các Object khi không còn sử dụng, chi phí cũng sẽ được giảm đi đáng kể.

Đặt giới hạn khi sử dụng Versioning

Với các dữ liệu lơn, khi bạn bật chức năng Versioning để backup các version dữ liệu, nếu không đặt giới hạn xóa các version cũ sau một thời gian sử dụng, chi phí sẽ rất lớn. Vì vậy để tối ưu chi phí bạn nên sử dụng lifecycle policies để tự động xóa các phiên bản trước đó sau một thời gian.

Trên đây là một số cách tối ưu chi phí trên AWS S3 mà mình tổng hợp và rút ra được trong quá trình tìm hiểu, sử dụng AWS, hy vọng bài viết sẽ có ích với các bạn. Xin cảm ơn!