Quay lại

Cách tạo AWS S3 dịch vụ quản lý files Chuyên mục Devops    2023-07-01    758 Lượt xem    57 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Cách tạo AWS S3 dịch vụ quản lý files

Vấn đề lưu trữ dữ liệu đã thành mối quan tâm hàng đầu của các doanh nghiệp có khối lượng dữ liệu gia tăng chóng mặt trong thời đại số hóa hiện nay. Đứng trước tình hình đó, Amazon đã cung cấp ra thị trường dịch vụ Amazon S3 và được đánh giá là giải pháp cứu cánh hữu hiệu cho các doanh nghiệp. Để tìm hiểu chi tiết về Amazon S3 này là gì? Mời các bạn cùng mình tham khảo qua bài viết sau.

Amazon S3 là gì?

Amazon S3 hay Amazon Simple Storage Service là một dịch vụ lưu trữ đối tượng trên đám mây được cung cấp bởi Amazon Web Service. Dịch vụ Amazon S3 mang tới cho người dùng hệ thống lưu trữ có thể thay đổi theo quy mô, tính khả dụng dữ liệu, cùng với đó là độ bảo mật đi kèm hiệu năng hoạt động hàng đầu hiện nay.

Với những tính năng mà Amazon S3 mang đến, người dùng ở tất cả ngành nghề đều có thể sử dụng để đáp ứng nhu cầu lưu trữ và bảo vệ dữ liệu cụ thể của mình. Chẳng hạn như, website, ứng dụng di động, ứng dụng doanh nghiệp, phân tích Big Data, thiết bị IoT, sao lưu,… đều có thể được lưu trữ an toàn trên dịch vụ này.

Đồng thời nhờ các tính năng quản lý, người dùng Amazon S3 có thể tối ưu hoạt động tổ chức dữ liệu và kiểm soát quyền truy cập phù hợp với yêu cầu cụ thể của từng tổ chức, doanh nghiệp và yêu cầu về tuân thủ.

Khái niệm cơ bản có trong Amazon S3

Để hiểu rõ hơn về Amazon S3, trước tiên hãy tìm hiểu qua 4 khái niệm cơ bản thường được đề cập trong dịch vụ này. Cụ thể: 

1. Bucket – Vùng chứa

Bucket hay vùng chứa là một trong 4 khái niệm cơ bản của Amazon S3 và được định nghĩa bởi các yếu tố:

  • Dữ liệu được lưu trữ trong Amazon S3 tương tự như một object (đối tượng).
  • Mỗi bucket (vùng chứa) tương ứng với một đơn vị lưu trữ logical trên S3.
  • Một bucket chỉ chứa một object. Trong object sẽ chứa nhiều data (dữ liệu) và metadata mô tả về dữ liệu đó.
  • Người dùng có thể tùy chọn khu vực Amazon S3, bucket được tạo ra sẽ lưu trữ tại khu vực đó.  
  • Với mỗi bucket sẽ có một tên toàn cầu (global) duy nhất. Điều này biểu thị rằng nếu tên bucket đã được sử dụng thì sẽ không có tài khoản AWS ở bất kỳ khu vực có thể đặt trùng được. 

Tóm lại, một bucket như là một container chứa các object lưu trữ trên dịch vụ Amazon S3.

Ví dụ: 

Một object có tên là file/hosting.docs nằm trong bucket gọi là s2sontech thì dữ liệu lúc này có thể được truy xuất thông qua URL: http://s2sontech.s3.amazonaws.com/file/hosting.docs.

Mục đích của việc tạo ra bucket cho người dùng nhằm:

  • Quản lý tên gọi của khu vực lưu trữ (Amazon S3 namespace).
  • Xác định tài khoản người dùng nào tương ứng với từng khu vực lưu trữ dữ liệu cũng như thực hiện hoạt động chuyển đổi dữ liệu để tính phí sử dụng. 
  • Xác định các quyền kiểm soát truy cập cho từng tài khoản.
  • Thuận tiện trong quá trình báo cáo hoạt động trên Amazon S3.

2. Key – Chìa khóa

Key là một chuỗi định danh ID tương ứng với một object nằm trong một bucket. Mỗi object sẽ chỉ có chính xác một key và một địa chỉ truy cập duy nhất bằng cách kết hợp các thông tin bao gồm web service endpoint, key, tên bucket, version.

Ví dụ:

  • URL truy cập object AmazonS3.wsdl: https://doc.s3.amazonaws.com/2006-03-01/AmazonS3.xsd.
  • Tên bucket: doc
  • Key: 2006-03-01/AmazonS3.xsd.

3. Object – Đối tượng

Object hay đối tượng là một những khái niệm cơ bản định nghĩa về một thực thể dữ liệu lưu trữ trong Amazon S3. Trong mỗi object bao gồm object data (đối tượng dữ liệu) và metadata.

Về object dữ liệu, S3 chỉ thực hiện công việc lưu trữ mà không quan tâm loại hình là gì. Ngược lại, metadata là dữ liệu thông tin được lưu trữ theo dạng thức name – value dùng để mô tả về object. Ví dụ, loại hình dữ liệu, ngày chỉnh sửa,… Ngoài ra, object nằm trong bucket còn có một ID độc nhất đi kèm.

4. Region – Vùng

Người dùng có thể lựa chọn khu vực địa lý mà Amazon S3 chứa bucket được khởi tạo. Chỉ khi người dùng xóa hoặc chuyển đổi khu vực của object thì object đó mới biến mất. Việc chọn vùng sẽ mang lại nhiều lợi ích thiết thực như giảm độ trễ, tiết kiệm chi phí,…

Đồng thời, để người dùng có thể lựa chọn những khu vực mà Amazon S3 lưu trữ có hiệu quả và tối ưu cần cân nhắc đến 4 yếu tố quan trọng như sau:

  • Giá.
  • Địa điểm khách hàng sử dụng dịch vụ.
  • Độ trễ.
  • Tính khả dụng dịch vụ.

Amazon S3 hoạt động như thế nào?

Như đã đề cập, Amazon S3 là một dịch vụ lưu trữ đối tượng với mục đích thiết kế dùng để lưu trữ và truy xuất lưu lượng dữ liệu bất kỳ ở mọi lúc, mọi nơi. Để thực hiện điều đó, dịch vụ này được thiết kế với quy trình hoạt động gồm 5 bước sau:

  • Bước 1: Đăng nhập vào Amazon S3 và khởi tạo một bucket.
  • Bước 2: Thêm đối tượng vào bucket.
  • Bước 3: Xem thông tin về đối tượng.
  • Bước 4: Thực hiện thao tác di chuyển, xóa đối tượng hoặc bucket nếu có nhu cầu.

Ưu điểm khi sử dụng Amazon S3

Dưới đây là một số điểm đặc trưng nổi bật mà Amazon S3 mang đến cho người dùng: 

  • Tạo và lưu trữ dữ liệu buckets: Người dùng có thể tạo và đặt tên cho bucket chứa dữ liệu trong Amazon S3. Dữ liệu được lưu trữ đa dạng thể loại với phạm vi không giới hạn. Với mỗi dữ liệu được lưu trữ sẽ là một object và người dùng có thể tải dữ liệu lên tùy thích với dung lượng chứa tối đa 5TB. 
  • Tải dữ liệu: Bên cạnh việc tải dữ liệu lên bucket để lưu trữ, người dùng còn có thể tải dữ liệu xuống thiết bị bất cứ lúc nào. Hoặc chia sẻ dữ liệu cho những người dùng khác nằm trong Amazon S3 bucket cùng tải dữ liệu về.
  • Phân quyền: Đối với những dữ liệu nằm trong Amazon S3 bucket, người dùng có thể phân quyền cho phép hoặc từ chối quyền tải lên, tải xuống dữ liệu chứa trong đó. 
  • An toàn: Trong Amazon S3 còn cung cấp khả năng mã hóa dữ liệu mà người dùng lưu trữ theo 2 cách là Mã hóa ở client side hoặc Mã hóa ở server side. Trong trường hợp dữ liệu hỏng, hệ thống vẫn lưu trữ lại nhiều bản sao hỗ trợ khôi phục lại. Đồng thời, mỗi bản chỉnh sửa cũng đều được lưu trữ lại để sử dụng mỗi khi cần thiết. 
  • Giao diện tương tác tiêu chuẩn: Thông qua những công cụ lập trình, người dùng có thể sử dụng REST hoặc SOAP để điều chỉnh kết nối từ ứng dụng đến S3.
  • Tính ổn định: Amazon S3 còn cung cấp đến người dùng một thỏa thuận cấp dịch vụ (SLA – Service level agreement) nhằm duy trì uptime ở mức 99.99%. Vậy nên bất cứ vấn đề hỏng hóc nào đều được phục hồi với tốc độ nhanh chóng và trong thời gian ngắn. Sự ổn định của dữ liệu thường xuyên được Amazon S3 xác minh bằng cách sử dụng checksum: nesu s3. 
  • Đơn giản: Người dùng có thể sử dụng Amazon S3 mà không gặp bất kỳ khó khăn nào. Bởi, dịch vụ được xây dựng dựa trên những khái niệm cơ bản, đơn giản và có tính tương thích cao với mọi ứng dụng của người dùng. Tuy nhiên, nếu cần thiết, người dùng vẫn có thể thiết kế những lược đồ lưu trữ phức tạp hơn bằng cách sử dụng các hàm. 
  • Tính mở rộng: Hơn thế nữa, S3 còn thiết kế mở rộng linh hoạt và điều chỉnh dễ dàng khi lưu lượng truy cập gia tăng đột biến. Lúc này, dịch vụ sẽ tự động tăng mức dung lượng trữ theo yêu cầu và người dùng chỉ cần chi trả khoản phí cho bộ nhớ mà mình sử dụng. 
  • Chi phí tối thiểu: So với những giải pháp đến từ các đối thủ cạnh tranh trên thị trường, người dùng Amazon S3 chỉ cần bỏ ra một khoản mức rất thấp và được đánh giá là có tính cạnh tranh cao.

Những lợi ích khi sử dụng Amazon S3

Với những ưu điểm mà Amazon S3 sở hữu, dịch vụ này khi được ứng dụng sẽ mang lại nhiều lợi ích bất ngờ cho người dùng. Cụ thể: 

Cung cấp hiệu năng, tính linh hoạt, tính khả dụng và độ bền đứng đầu lĩnh vực

Người dùng có thể nhanh chóng tăng, giảm quy mô lưu trữ dữ liệu theo nhu cầu sử dụng mà không cần thanh toán trước hay mua theo chu kỳ. Thời gian uptime lên đến 99.9%. Đồng thời dịch vụ này có khả năng tự động sao lưu dữ liệu của các đối tượng nên dữ liệu sẽ được bảo vệ an toàn trước những sự cố, lỗi hay gặp phải đe dọa và luôn khả dụng khi cần thiết.

Cung cấp các lưu trữ giúp tiết kiệm chi phí

Dịch vụ Amazon S3 cho phép người dùng lưu trữ dữ liệu dựa trên Các lớp lưu trữ S3 theo từng cấp truy cập khác nhau với mức phí tương ứng. Đồng thời, thông qua Phân tích lớp lưu trữ S3, người dùng có thể xác định những dữ liệu có thể di chuyển tới lớp lưu trữ có chi phí thấp hơn. Điều này sẽ giúp tiết kiệm chi phí mà không ảnh hưởng tới hiệu suất hoạt động.

Không những thế, người dùng còn có thể lưu trữ dữ liệu trong S3 Thông minh – Phân bậc để tự động giảm thiểu chi phí. Dịch vụ này cho phép phân bậc đối tượng theo các cấu trúc truy cập dễ thay đổi hoặc không xác định.

Tính bảo mật cao và cung cấp khả năng kiểm tra ưu việt

Amazon S3 có khả năng ngăn chặn các truy cập dữ liệu trái phép nhờ tính năng mã hóa và các công cụ quản lý truy cập. Trong đó có thể kể đến:

  • Tính năng Amazon Macie giúp xác định vùng chứa dữ liệu nhạy cảm và phát hiện ra những yêu cầu truy cập bất thường. 
  • Các chương trình tuân thủ như PCI-DSS, FedRAMP, FISMA,… để đáp ứng những yêu cầu về quy định.
  • Khả năng kiểm tra giúp giám sát chặt chẽ các yêu cầu truy cập vào S3.

Cung cấp các công cụ quản lý giúp kiểm soát chi tiết dữ liệu

Dịch vụ Amazon S3 cung cấp cho người dùng khả năng phân loại, quản lý cũng như báo cáo về dữ liệu thông qua những tính năng hỗ trợ như:

  • Phân tích các lớp lưu trữ S3 để phân tích cấu trúc truy cập.
  • Các chính sách Vòng đời S3 giúp chuyển object sang lớp lưu trữ có mức chi phí thấp hơn. 
  • Sao chép liên khu vực S3 giúp sao chép dữ liệu từ khu vực này sang khu vực khác.
  • Khóa đối tượng S3 để xác định ngày duy trì với ứng dụng và cũng làm nhiệm vụ bảo vệ để ứng dụng không bị xóa đi.
  • Kho S3 nơi cung cấp thông tin về đối tượng lưu trữ của người dùng, cũng như tìm hiểu về siêu dữ liệu và trạng thái mã hóa của những đối tượng đó.
  • Ngoài ra, người dùng còn có thể sử dụng S3 Batch Operations giúp thay đổi thuộc tính đối tượng và thực hiện những tác vụ liên quan đến quản lý lưu trữ. 

Bởi vì Amazon S3 có xây dựng liên kết với AWS Lambda nên người dùng có thể dễ dàng ghi lại nhật ký hoạt động của mình, cảnh báo và thực hiện tự động hóa luồng công việc mà không cần thêm công cụ nào khác.

Tại sao nên sử dụng Amazon S3

Như đã đề cập ở trên, Amazon S3 sở hữu nhiều tính năng ưu việt cùng mức phí cạnh tranh so với các đối thủ trên thị trường. Người dùng nên sử dụng dịch vụ này bởi nó mang lại hiệu quả vượt trội trong những trường hợp sau:

Sao lưu và phục hồi

Thay vì chỉ sử dụng những giải pháp tại chỗ, người dùng có thể xây dựng hệ thống sao lưu và phục hồi có quy mô linh hoạt, bền bỉ và tính bảo mật với Amazon S3. Bên cạnh đó, thông qua các đối tác AWS và APN mà người dùng có thể đáp ứng Thời gian khôi phục (Recovery Time Objectives – RTO), Thời điểm khôi phục (Recovery Point Objectives – RPO) và những yêu cầu về tuân thủ. Cũng nhờ vào AWS, người dùng có thể sao lưu dữ liệu nhanh chóng thông qua AWS Cloud hoặc dịch vụ AWS Storage Gateway.

Khôi phục sau thảm họa (DR)

Dựa vào khả năng lưu trữ, khả năng sao chép liên khu vực cùng các dịch vụ mạng, cơ sở dữ liệu và điện toán AWS khác mà người dùng có thể thiết kế ra các kiến trúc DR. Đây là yếu tố không thể thiếu hỗ trợ khôi phục nhanh chóng hệ thống dữ liệu sau khi xảy ra các tình huống mất điện bởi thảm họa tự nhiên, lỗi của con người hoặc lỗi hệ thống. Người dùng không phải tốn nhiều chi phí mà vẫn có thể bảo vệ dữ liệu, ứng dụng quan trọng đang khởi chạy ở AWS Cloud hoặc môi trường tại chỗ. 

Lưu trữ

Amazon S3 cung cấp các lớp S3 Glacier và S3 Glacier Deep Archive giúp lưu trữ dữ liệu mà không phụ thuộc vào cơ sở hạ tầng vật lý. Đối tượng sẽ được duy trì với mức giá thấp nhất trong thời gian dài chỉ bằng cách thông qua chính sách S3 Vòng đời hoặc tải trực tiếp lên các lớp lưu trữ. Còn với khóa đối tượng S3 (object lock), người dùng duy trì với đối tượng theo ngày để đáp ứng những yêu cầu về tuân thủ cũng như giữ cho đối tượng không bị xóa.

Khác với các thư viện băng từ, người dùng dịch vụ S3 Glacier được phép khôi phục lại đối tượng đã lưu trữ thông qua truy xuất nhanh (1 phút) hoặc truy xuất tiêu chuẩn (3 – 5 giờ). Còn để hoàn tất toàn bộ quá trình khôi phục dữ liệu lớn trong S3 Glacier và toàn bộ dữ liệu trong S3 Glacier Deep Archive, người dùng sẽ mất khoảng 12 giờ.

Kho dữ liệu và phân tích dữ liệu không giới hạn

Một điểm tiện lợi hơn khi lựa chọn Amazon S3 là người dùng có thể đẩy nhanh quá trình đổi mới. Điều này được thực hiện bằng cách khởi tạo kho dữ liệu trong Amazon S3 và sử dụng những những công cụ machine learning, phân tích cùng truy vấn tại chỗ để trích xuất các thông tin chi tiết quan trọng. 

Đồng thời, người dùng còn có thể sử dụng dịch vụ AWS Lake Formation nhằm khởi tạo nhanh chóng kho dữ liệu và tập trung xác định, thi hành những chính sách về bảo mật, quản trị cũng kiểm tra trong hệ thống. Với dịch vụ này, các tài nguyên S3 và cơ sở dữ liệu sẽ được thu thập lại và dịch chuyển vào kho chứa mới trong Amazon S3. Cùng với đó, thuật toán machine learning sẽ dọn dẹp và phân loại những dữ liệu trên.

Nhìn chung, Amazon S3 đáp ứng mọi nhu cầu gia tăng quy mô, mở rộng kho dữ liệu của người dùng mà không yêu cầu nhiều kinh phí. 

Lưu trữ đám mây

Với AWS Storage Gateway, người dùng có thể tạo ra một liên kết liền mạch giữa ứng dụng tại chỗ cùng Amazon S3 giúp giảm phạm vi của trung tâm dữ liệu. Đồng thời qua đó người dùng cũng có thể sử dụng quy mô, độ tin cậy, độ bền cũng như khả năng phân tích và machine learning đổi mới của AWS. 

Không chỉ vậy, người dùng còn có thể sử dụng AWS DataSync để tự động hóa quá trình truyền tải dữ liệu giữa dữ liệu lưu trữ tại chỗ và Amazon S3 với tốc độ nhanh hơn gấp 10 lần so với những công cụ miễn phí. Ngoài ra, để người dùng có thể làm việc trực tiếp với nhà cung cấp APN hoặc trực tiếp truyền tệp vào/ra khỏi Amazon S3 bằng dịch vụ AWS Transfer for SFTP. Đây là dịch vụ cho phép trao đổi tệp an toàn được quản lý bởi các bên thứ ba.

Dữ liệu ứng dụng cho đám mây

Bằng cách sử dụng dịch vụ Amazon S3 và AWS, người dùng giờ đây có thể xây dựng các ứng dụng trên Internet và di động với hiệu quả tối ưu về mặt chi phí lẫn hiệu năng lưu trữ dữ liệu cao. 

Người dùng có thể sử dụng Amazon S3 để tải lên và truy cập dữ liệu ở mọi nơi, giúp triển khai ứng dụng nhanh với quy mô lớn. Người dùng cũng có quyền truy cập vào các công cụ và dịch vụ mới nhất về machine learning cũng như phân tích dành cho các nhà phát triển của AWS. Mục đích của điều này nhằm thực hiện các đổi mới và tối ưu hóa ứng dụng cho đám mây của người dùng. 

Những loại dữ liệu mà Amazon S3 có thể lưu trữ

Dịch vụ Amazon S3 có thể lưu trữ được tất cả các loại dữ liệu và kiểu dữ liệu với số lượng đối tượng gần như không giới hạn, bao gồm cả dữ liệu, key và metadata. Tuy vậy nhưng qua quá trình sử dụng thực tế, dữ liệu lưu trữ vẫn được phân chia thành 2 loại:

  • Dữ liệu tần suất cao, thường xuyên truy cập.
  • Dữ liệu tần suất thấp, không thường xuyên truy cập.

Qua đó, Amazon S3 sẽ cung cấp cho người dùng 3 loại hình lưu trữ tiêu biểu (AWS S3 Storage Classes) phù hợp để lựa chọn. Cụ thể: 

  • Standard: Là hình thức lưu trữ dành cho dữ liệu có mức độ truy cập thường xuyên, phù hợp sử dụng trong các trường hợp yêu cầu tốc độ truy cập cao và độ trễ thấp. Chẳng hạn như trong ngân hàng, bệnh viện,… Đây là kiểu lưu trữ mặc định trong S3.
  • Standard_IA: Là hình thức lưu trữ những dữ liệu truy cập không thường xuyên và phù hợp sử dụng trong trường hợp yêu cầu lưu trữ lâu dài, ít truy cập vào nhưng vẫn mong đợi hiệu suất cao. Chẳng hạn như trong ngân hàng với những khách hàng đã kết thúc sử dụng dịch vụ (khóa thẻ), hồ sơ về họ sẽ không còn truy cập thường xuyên. Tuy nhiên, nếu một thời điểm bất kỳ họ có nhu cầu mở thẻ lại thì hồ sợ vẫn cần được truy xuất để lấy ra nhanh chóng.
  • Glacier: Đây là một dịch vụ lưu trữ có chi phí cực thấp với khả năng cung cấp những lưu trữ dài hạn cùng các tính năng bảo mật để lưu trữ và sao lưu dữ liệu. Thông qua Glacier, người dùng có thể lưu trữ hiệu quả chi phí dữ liệu của mình trong thời gian nhiều tháng, nhiều năm hay thậm chí là nhiều thập kỷ. Chẳng hạn như trong ngân hàng, những hóa đơn thanh toán, scan tài liệu… hơn 1 năm sẽ không cần thiết để sử dụng hàng ngày và khi cần thiết thì cũng không yêu cầu truy xuất nhanh.

Lab document

aws configure // config user
aws s3 ls  hiển thị list bucket
aws s3 ls s3://{buckname}/{path} dir bucket
aws s3 mb s3://{buckname}  tạo bucket
aws s3 rb s3://{buckname}   xóa bucket trường hợp bucket có data
aws s3 rb s3://{buckname} --force xóa bucket trường hợp bucket không có dữ liệu
aws s3 sync {folder path} s3://{buckname}/{path}   Đồng bộ lên bucket trường hợp này chỉ thêm và update mà không xóa
aws s3 sync {folder path} s3://{buckname}/{path} --delete Đồng bộ với thư mục local sẽ xóa file nếu không tồn tại ở local
aws s3 cp {file path} s3://{buckname}/{path}    copy file từ local lên s3
aws s3 mv {file path} s3://{buckname}/{path}    move file từ local lên s3
aws s3 rm s3://{buckname}/{file path} xóa file
aws s3 rm s3://{buckname}/{folder path} --recursive  xóa thư mụcaws s3 ls  hiển thị list bucket
aws s3 ls s3://{buckname}/{path} dir bucket
aws s3 mb s3://{buckname}  tạo bucket
aws s3 rb s3://{buckname}   xóa bucket trường hợp bucket có data
aws s3 rb s3://{buckname} --force xóa bucket trường hợp bucket không có dữ liệu
aws s3 sync {folder path} s3://{buckname}/{path}   Đồng bộ lên bucket trường hợp này chỉ thêm và update mà không xóa
aws s3 sync {folder path} s3://{buckname}/{path} --delete Đồng bộ với thư mục local sẽ xóa file nếu không tồn tại ở local
aws s3 cp {file path} s3://{buckname}/{path}    copy file từ local lên s3
aws s3 mv {file path} s3://{buckname}/{path}    move file từ local lên s3
aws s3 rm s3://{buckname}/{file path} xóa file
aws s3 rm s3://{buckname}/{folder path} --recursive  xóa thư mục

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday