Published on
Ngày xuất bản:

Serverless cơ bản 06: Storage + Database Services (AWS)

Authors
  • avatar
    Name
    Tu Tran

Xây dựng app dù nhỏ hay lớn từ mobile, desktop, website đều cần đến 1 nơi để lưu trữ data. Dưới đây là 3 serverless services phổ biến nhất được dùng để lưu trữ data, file

AWS S3

AWS S3 (Simple Storage Service) là 1 trong những serverless service thế hệ đầu của nhà Amazon. S3 có thế chứa bất kỳ loại file mà bạn đưa cho nó từ ảnh, video, audio đến cả 1 web page html.

Trong S3, bạn tạo “Bucket” (thùng chứa) sau đó bạn đưa các file vào bucket đó (các file đó thường được gọi là các objects)

Khi bạn upload ảnh, video, bạn có thể tải về máy hoặc set up cho phép nó hiển thị trên app của bạn

S3 cũng cung cấp 1 số options (lựa chọn) nâng cao ví dụ: bạn có thể dùng ‘presigned url’ để upload và download file (object) 1 cách bảo mật trong 1 thời gian giới hạn nào đó. Một tính năng khác cũng rất phổ biến đó là bạn có host (chứa) 1 website tĩnh (static website), đồng thời cho phép truy cập website đó cách trực tiếp từ S3 bucket

Cách tính phí: Dựa theo số lượng request + số GB lưu trữ

AWS DynamoDB

DynamoDB là 1 serverless service được dùng để lưu chứa data (dưới dạng string, number, boolean…). Với latency (độ trễ) thấp, tính khả dụng cao, khả năng mở rộng không giới hạn, trả tiền cho mỗi lần sử dụng và không yêu cầu phải quản lý giám sát, Dynamo là 1 lựa chọn tuyệt vời để lưu trữ data khi xây dựng app sử dụng công nghệ serverless

Lưu ý: Để thành thạo DynamoDB cần thời gian, đặc biết nếu các bạn có background về SQL thì khi nhảy sang tìm hiểu DynamoDB sẽ hơi bối rối và khó tiếp cận 1 chút.

Cấu trúc thành phần trong Dynamo bao gồm table, item, attribute.

Ví dụ bạn xây 1 website bán hàng thì danh sách các sản phẩm (product) chính là 1 table, item có nghĩa là từng cá thể 1 sản phẩm nào đó ở trong table (product A, product B…) , attribute (hay dịch sang tiếng việt là thuộc tính) thì nó chính là các thông số của sản phẩm (tên sản phẩm, giá, mô tả ngắn, chất liệu, hình ảnh…)

Một table sẽ gồm nhiều items và 1 item sẽ có nhiều attributes.

Cách tính phí: Dựa theo số lượng request read (đọc dữ liệu) + write (ghi dữ liệu) cũng như số GB data được lưu trữ trong DynamoDB

Aurora Serverless v2

Nếu bạn cần 1 serverless SQL database với tính năng tương đồng như DynamoDB, Aurora Serverless v2 chính là lựa chọn cho bạn. Đây là database tương thích với cả MySQL lẫn PostgreSQL

Tính năng serverless cho phép Aurora tự động tăng/giảm quy mô dựa theo nhu cầu thực tế sử dụng. Tuy nhiên ở trong phiên bản 2 (v2 - version 2) Aurora sẽ không giảm quy mô xuống 0, điều này có nghĩa là 1 bạn vẫn phải trả một mức phí tối thiểu để duy trì.

Cách tính phí: Dựa theo GB data lưu trữ + số lượng request read (đọc dữ liệu) + write (ghi dữ liệu) + công suất thiêu thụ theo mỗi giây.