Giới thiệu về AWS S3

Bạn muốn làm một website về chia sẻ ảnh hoặc chia sẻ video, nhưng đang băn khoăn không biết nên sử dụng giải pháp nào cho việc đó, có nhiều người sẽ sử dụng Imgur để chứa ảnh vì nó miễn phí. Nhưng bạn cần phải xem lại việc sử dụng nó nếu bạn thực sự nghiêm túc khi phát triển sản phẩm của bạn, khi trang web của bạn lớn lên và có nhiều lượng truy cập, cũng như bạn muốn xây dựng một ứng dụng thì hàng tá lỗi xảy ra.

Vì vậy, bạn nên xây dựng một store (server) để lưu trữ dữ liệu của bạn, nhưng ngay lúc này giải pháp này không khả thi, vì khá là tốn tiền, và mở rộng nó là khó khăn nếu như bạn không có đội ngũ Devops chuyên nghiệp. Sau một hồi tìm hiểu trên google, bạn có thể thấy nhiều nhà cung cấp dịch vụ trên thế giới có thể làm chuyện đó giúp bạn với chi phí thấp, mà hình điển là dịch vụ S3 của Amazon. Vậy thì AWS S3 là cái gì?

URL đẹp với AWS s3 - Cộng đồng DEV

AWS là gì?

Trước tiên ta cần tìm hiểu AWS là gì? Vào năm 2006, Amazon Web Services (AWS) bắt đầu cung cấp các cơ sở dịch vụ hạ tầng CNTT cho các doanh nghiệp dưới hình thức web dịch vụ (thường được gọi là điện toán đám mây). Hiện nay còn có nhiều nhà cung cấp khác như Microsoft Azure, Google Cloud, …

Một trong những lợi ích chính của điện toán đám mây là giảm thiểu chi phí cơ sở hạ tầng trả trước bằng các khoản phí không cố định ở mức thấp, có khả năng thay đổi theo quy mô hoạt động kinh doanh. Doanh nghiệp không còn cần phải lên kế hoạch và mua máy chủ cũng như các cơ sở hạ tầng CNTT khác trước nhiều tuần hay nhiều tháng. Thay vào đó, họ có thể ngay lập tức đăng ký hàng trăm hoặc hàng nghìn máy chủ chỉ trong vài phút và mang lại kết quả nhanh hơn.

Để giảm thiểu việc bị mất điện đột ngột và đảm bảo tính mạnh mẽ của hệ thống, AWS đa dạng về địa lý theo khu vực. Các khu vực này có trung tâm ở Hoa Kỳ, châu Âu, Brazil, Singapore, Nhật Bản và Úc. Mỗi khu vực bao gồm nhiều khu vực địa lý nhỏ hơn.

AWS cung cấp 3 cách để tạo và quản lý tài nguyên:

  • AWS Management Console
  • AWS CLI
  • AWS SDKs

 Tất cả đều tham chiếu đến API AWS.

S3 là gì?

Amazon S3 (Amazon Simple Storage Service) là dịch vụ lưu trữ đối tượng được xây dựng để lưu trữ và truy xuất dữ liệu với khối lượng bất kỳ từ bất cứ nơi nào trên Internet. Đâ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, 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. Điều này cho phép các tổ chức tránh mua phần cứng và thanh toán cho các bộ nhớ mà không được sử dụng. Amazon S3 là một dịch vụ rất phải chăng. Theo AWS, để lưu trữ dữ liệu trên web người dùng chỉ trả tiền cho bộ nhớ và băng thông mà họ thực sự sử dụng. Các tổ chức chủ yếu sử dụng Amazon S3 để sao lưu và lưu trữ, để chạy các ứng dụng, lưu trữ các trang web lưu lượng truy cập cao, hoặc sao lưu dữ liệu trang web theo những khoảng thời gian đều đặn.

Ví dụ: Nếu bạn muốn lưu trữ cho một trang web cho doanh nghiệp của mình bạn có thể lưu trữ các tập tin và assets tại Amazon S3 để thu hồi nhanh hơn và chi phí lưu trữ thấp hơn. Nó cũng cho phép bạn có thể ghi lại các thay đổi và có thể rollback đến một phiên bản trước đó bất cứ khi nào cần. Amazon S3 rất dễ sử dụng và cung cấp nhiều cách khác nhau để được truy cập và quản lý. Nó cung cấp các API dịch vụ web REST và SOAP để lưu trữ, truy xuất và quản lý dữ liệu.

Tại sao chọn Amazon S3?

Trước tiên tôi tin tưởng Amazon bởi vì nó là một công ty cực kỳ lớn, và có thể nói là tốt nhất trong công nghệ điện toán đám mây:

Tính ổn định: Nó được thiết kế để chịu được các hỏng hóc và phục hồi hệ thống rất nhanh với thời gian tối thiểu. Amazon cung cấp một thỏa thuận cấp dịch vụ (service-level agreement – SLA) để duy trì tính sẵn sàng ở mức 99.99 phần trăm.

Đơn giản: Dễ dùng S3 được xây dựng trên các khái niệm đơn giản và cung cấp tính mềm dẻo cao cho việc phát triển các ứng dụng của bạn. Bạn có thể xây dựng các lược đồ lưu trữ phức tạp hơn, nếu cần, bằng cách thêm các hàm vào các thành phần của S3.

Tính mở rộng: Thiết kế của S3 cung cấp một cấp độ cao về tính mở rộng và cho phép sự điều chỉnh dễ dàng trong dịch vụ khi lượng truy cập vào ứng dụng web của bạn tăng đột biến với lưu lượng khổng lồ.

Rất Rẻ: Chi phí sử dụng S3 rất cạnh tranh với các giải pháp của công ty và cá nhân khác trên thị trường. ( Chỉ từ 0,021 – 0,023 USD/GB/Tháng)

Cơ bản về Amazon S3

Để hiểu về Amazon S3, bạn cần nắm 1 số khái niệm cơ bản. Amazon S3 lưu trữ dữ liệu như các object trong các bucket. 

Object

Một object bao gồm key, version ID, value, metadata và sub resources (tuỳ chọn) .

Key: Tên mà bạn gán cho một object. Bạn sử dụng key để truy xuất đối tượng. 

Version ID: Trong một bucket, key và version ID để xác định duy nhất một object. Version ID là một chuỗi mà Amazon S3 tạo ra khi bạn thêm một object vào một bucket.

Value: Nội dung mà bạn đang lưu trữ. Giá trị đối tượng có thể là bất kỳ chuỗi byte nào. Các đối tượng có thể có kích thước từ 0 đến 5 TB.

Metadata: Một tập hợp các cặp name-value mà bạn có thể lưu trữ thông tin về object. Bạn có thể gán metadata, được gọi là user-defined metadata, cho các đối tượng của mình trong Amazon S3. Amazon S3 cũng chỉ định system-metadata hệ thống cho các đối tượng mà nó sử dụng để quản lý các đối tượng này.

Sub resources: Amazon S3 sử dụng cơ chế sub-resource để lưu trữ thông tin bổ sung về đối tượng cụ thể. Bởi vì sub-resource là cấp dưới của các object, chúng luôn được liên kết với một số thực thể khác như một object hoặc một bucket.

Bucket

Để lưu 1 object trong Amazon S3, bạn tải file lên 1 bucket. Khi đã tải file, bạn có thể gán quyền cho object cũng như bổ sung metadata.

Không có giới hạn về kích thước bucket hoặc tổng dữ liệu trong quyền tài khoản của bạn.

Bucket là các thùng chứa cho các object. Bạn có thể tạo 1 hay nhiều bucket. Với mỗi bucket, bạn có thể điều khiển việc truy xuất đến nó (ai có thể tạo, xóa và xem các object trong bucket).

Mỗi một tài khoản chỉ tạo được tối đa là 100 buckets, và Bucket có tên là duy nhất và đặt tên nó nên tuân theo luật sau:

  • Bucket có thể chứa các ký tự như chữ cái, hoặc số, dấu gạch dưới ( _ ), dấu chấm, dấu phẩy hoặc dấu gạch trên (-).
  • Bắt đầu số hoặc ký tự.
  • Không quá ngắn cần phải đặt tên trên 3 và không quá dài ký tự, nên dưới 255.
  • Bucket không thể chứa dạng địa chỉ IP, ví dụ 192.168.1.1 sẽ không hợp lệ.

Cách dùng và cách hoạt động của S3

Bạn có thể xem hướng dẫn sử dụng chi tiết tại đây. Tôi sẽ không hướng dẫn chi tiết cách dùng nó trong bài viết này, mà tôi chỉ muốn chỉ bạn sử dụng nó như thế nào vào dự án của bạn. 

Ví dụ khi bạn vào trang web chia sẻ hình ảnh của bạn sau đó bạn tải lên một hình ảnh với tên là cat.jpeg thì lúc này trên Bucket của web sẽ lưu trữ hình đó, tuỳ cách bạn cho tập tin này lưu ở đâu.

Sau đó bạn truy cập thông qua URL https://s3-ap-southeast-1.amazonaws.com/images.aws.bucket/2021/03/17/cat.jpeg bạn sẽ thấy được tập tin (object) mà bạn đã tải lên.

Tóm lại, những thao tác trên đây gọi là thêm một object vào một bucket, trong trường hợp của này object là một cái hình, nhưng bạn cần chú ý rằng object có thể là bất kỳ tập tin nào: text file, photo, video,… Khi thêm tập tin vào Amazon S3, có thể tùy chọn thêm metadata và gán quyền truy cập vào tập tin.

Kết luận

Qua bài viết trên ta có thể thấy được một ứng dụng rất đơn giản mà Amazon S3 có thể được sử dụng trong thực tế, nếu không so sánh về mặt chi phí so với các giải pháp lưu trữ trên điện toán đám mây khác, ta có thể thấy giải pháp trên rất dễ sử dụng và rất phù hợp với các doanh nghiệp cần lưu trữ hay backup dữ liệu dài hạn, kể cả dữ liệu của doanh nghiệp có dung lượng tăng nhanh thì S3 vẫn hoàn toàn có thể đáp ứng ngay lập tức mà không cần phải chờ đợi việc mua phần cứng mở rộng và chỉ phải trả cho dung lượng lưu trữ thực tế sử dụng.

Ngoài ứng dụng lưu trữ đơn thuần nêu trên, S3 còn cung cấp một bộ API mạnh mẽ giúp cho các ứng dụng cần lưu trữ, truy xuất thông tin nhanh và nhiều như AI/ML, phân tích/xử lý dữ liệu mà các giải pháp lưu trữ khác khó có thể đạt được.

 

Tài liệu tham khảo: 

https://aws.amazon.com/vi/s3/

https://www.aws.training/Details/eLearning?id=29700

Add a Comment

Scroll Up