Tuesday, August 3, 2021

Giới thiệu về Amazon Simple Storage Service ( S3 )

 Amazon S3

Trong bài viết này mình sẽ giới thiệu về dịch vụ lưu trữ Amazon S3, các trường hợp sử dụng, các thành phần chính và một số tính năng quan trọng như versioning, quản lý vòng đời đối tượng, mã hóa.. nhé 😀


Amazon S3 là gì?

  • Amazon S3 cung cấp dịch vụ lưu trữ trên điện toán đám mây an toàn, đảm bảo và có khả năng mở rộng cao.
  • Amazon S3 có giao diện web sử dụng đơn giản, người dùng có khả năng lưu trữ và truy xuất bất kỳ lượng dữ liệu không giới hạn về mặt dung lượng. Dữ liệu được tự động nhân bản trên nhiều máy chủ và các trung tâm dữ liệu trong một khu vực ( Region ).

Amazon S3 sử dụng trong các trường hợp nào:

  • Lưu trữ và backup dữ liệu.
  • Lưu trữ tập tin ứng dụng
  • Lưu trữ phương tiện truyền thông
  • Lưu trữ AMIs ( Amazon Machine Images ) và snapshots ( bản backup của các dịch vụ ).
  • Lưu trữ một trang web tĩnh trên Amazon S3: Bạn có thể lưu trữ một trang web tĩnh trên Amazon S3 bằng cách định cấu hình một nhóm để lưu trữ trang web và sau đó tải nội dung trang web của bạn lên .

  • Tóm lại là S3 phù hợp cho bất cứ dạng dữ liệu gì có kiểu truy xuất là WORM ( Write Once Read Many – đọc một lần ghi nhiều lần, chứ ko phải là con sâu nha 😀 )

Thành phần của Amazon S3

  • Bucket: Là một container (có thể hiểu như thư mục) mà các objects (có thể hiểu files) lưu trữ trong đó, bucket cho phép lưu trữ không giới hạn số lượng objects. Bạn có thể tạo và sử dụng nhiều Bucket, tối đa 100 buckets cho mỗi account. Tên bucket phải là duy nhất, chứa tối đa 63 chữ cái thường, số, dấu gạch nối và dấu chấm.
  • Object: Là các tệp lưu trữ dữ liệu trong Bucket Amazon S3, có thể lưu trữ mọi loại dữ liệu với bất kì định dạng nào. Dung lượng tối đa của mỗi bucket là 5TB.
  • Key: Là mã định danh duy nhất tương ứng với object được lưu trữ trong mỗi Bucket. Một key có thể lên tới 1024 byte ký tự Unicode UTF-8, bao gồm dấu gạch chéo, dấu gạch chéo ngược, dấu chấm và dấu gạch ngang.
  • Object URL: Vì Amazon S3 là dịch vụ lưu trữ qua mạng internet, nên mỗi object sẽ có một địa chỉ URL duy nhất ứng với tên bucket, object và key. Ví dụ: http://mybucket.s3.amazonaws.com/averageguy.doc với tên bucket là mybucket, averageguy .doc là tên object/ key. 😀

Vùng của Amazon S3 Bucket

Amazon S3 là dịch vụ qui mô toàn cầu ( global ) tuy nhiên mỗi S3 bucket lại nằm trong một vùng nhất định tùy vào cấu hình lúc bạn khởi tạo ( Bạn nên chọn region hợp lí để giảm thiểu độ trễ và khắc phục sự cố nhanh nhất).

Amazon S3 Security

Truy suất dữ liệu:

– Bạn có thể điều khiển quyền truy cập dữ liệu với:

  • IAM policies: Bạn chỉ được cấp quyền người dùng trong phạm vi quyền tài khoản AWS của bạn truy cập dữ liệu Amazon S3
  • ACLs: Bạn chỉ có thể cấp quyền cho các tài khoản AWS khác truy cập vào tài nguyên dữ liệu Amazon S3 của bạn.
  • Bucket policies: Bạn có thể add/ deny quyền truy cập một số hoặc tất cả objects trong một Bucket và cấp quyền cho người dùng trong tài khoản AWS của bạn hoặc tài khoản AWS khác truy cập vào tài nguyên Amazon S3.

Vận chuyển dữ liệu

Để tăng khả năng bảo mật, bạn có thể upload dữ liệu lên và tải xuống từ Amazon S3 một cách an toàn thông qua các điểm cuối được mã hóa SSL. Các điểm cuối được mã hóa có thể truy cập từ Internet và từ bên trong Amazon EC2 để dữ liệu được truyền an toàn. Bên cạnh đó, bạn cũng có thể sử dụng AWS SDKs để mã hóa dữ liệu.

Lưu trữ dữ liệu

Amazon S3 cung cấp nhiều tùy chọn để bảo vệ dữ liệu phía khách hàng ( sử dụng thư viện quản lý key, dữ liệu được mã hóa trước khi gửi đến Amazon S3 và giải mã dữ liệu khi truy xuất ) và phía máy chủ AWS S3. Mã hóa phía máy chủ ( mã hóa cho object) bao gồm:

  • SSE-S3: mã hóa các objects bằng key được xử lý và quản lý bởi AWS. Mã hóa AES-256, Object có header: “x-amz-server-side-encryption”:”AES256”
  • SS3- KMS: Sử dụng dịch vụ quản lí key ( KMS ) của AWS để quản lí key cho object. Ưu điểm của KMS là quản lí người dùng và quản lí chi phí bạn đã sử dụng. Object có header : “x-amz-server-side-encryption”:”aws:kms”
  • SS3 – C: Được sử dụng khi bạn muốn duy trì các key mã hóa của riêng mình nhưng không muốn quản lý hoặc thực hiện thư viện mã hóa phía máy khách. Với SSE-C, AWS sẽ thực hiện mã hóa/ giải mã các đối tượng của bạn khi bạn toàn quyền kiểm soát các khóa. Amazon S3 không lưu khóa mã hóa bạn cung cấp. Key mã hóa phải được cung cấp trong HTTP header tương ứng mỗi lần request.

Tính năng S3 versioning

  • Phiên bản Amazon S3 giúp bảo vệ dữ liệu của bạn khỏi việc lỡ tay xóa ngooài ý muốn hoặc bị tấn công bằng cách giữ nhiều phiên bản của từng đối tượng trong nhóm, được xác định bằng ID duy nhất.
  • Phiên bản cho phép bạn bảo vệ, truy xuất và khôi phục mọi phiên bản của mọi đối tượng được lưu trữ trong nhóm Amazon S3. Bạn có thể khôi phục đối tượng về trạng thái cũ bằng cách tham chiếu ID phiên bản và object key.
  • Khi đã bật tính năng versioning, tính năng versioning không thể được tắt hoàn toàn; nó chỉ có thể bị tạm ngưng ( suspend versioning )
  • Tính năng S3 versioning không tính thêm tiền, tuy nhiên bạn vẫn phải trả thêm tiền cho dung lượng tăng thêm bởi các version được sinh ra khi bạn sửa đổi hoặc xóa một đối tượng :D.

Có 3 trạng thái version của Bucket Amazon S3 :

  • Un-versioned ( default)
  • Versioning enabled
  • Versioning – suspended.

Quản lý vòng đời đối tượng – Amazon S3 Object Lifecycle

  • Quản lý vòng đời Object Amazon S3 tương đương với khả năng phân tầng lưu trữ tự động trong cơ sở hạ tầng lưu trữ CNTT truyền thống. Trong nhiều trường hợp, dữ liệu có vòng đời tự nhiên, bắt đầu là dữ liệu được truy cập thường xuyên, chuyển sang dữ liệu ít được truy cập, sau một thời gian và kết thúc vòng đời .
  • Sử dụng quy tắc cấu hình vòng đời của Amazon S3, bạn có thể giảm chi phí lưu trữ bằng cách tự động chuyển dữ liệu từ lớp lưu trữ này sang lớp lưu trữ khác hoặc xóa dữ liệu sau một khoảng thời gian.
  • Khi bạn định cấu hình quy tắc vòng đời, bạn chỉ định lớp lưu trữ bạn muốn chuyển đổi đối tượng và số ngày sau khi tạo đối tượng để chuyển đổi nó. Bạn có thể chuyển đổi các đối tượng sang lớp lưu trữ Standard – Infrequent Access (IA), lưu trữ chúng vào Amazon Glacier hoặc xóa chúng vĩnh viễn.

Amazon S3 Pricing

  • Giá Amazon S3 dựa trên dung lượng lưu trữ và băng thông sử dụng.
  • Giá được dựa trên dung lượng sử dụng mỗi tháng.
  • Bạn có thể tính giá online trước khi sử dụng qua link: http://calculator.s3.amazonaws.com/calc5.html

No comments:

Post a Comment

So sánh các GitFlow model và áp dụng với CICD

https://medium.com/oho-software/so-s%C3%A1nh-c%C3%A1c-gitflow-model-v%C3%A0-%C3%A1p-d%E1%BB%A5ng-v%E1%BB%9Bi-cicd-b6581cfc893a