Google Cloud Storage: Hướng dẫn cho người mới bắt đầu
Giới thiệu
Thuật ngữ "Cloud" có thể khiến nhiều người cảm thấy lo lắng, như một vũ trụ trừu tượng đầy rẫy thuật ngữ kỹ thuật và dịch vụ phức tạp. Tuy nhiên, tại trung tâm của sự phức tạp này là những khái niệm đơn giản và mạnh mẽ. Một trong những khái niệm thiết yếu nhất là lưu trữ đối tượng. Trong bài viết này, chúng ta sẽ khám phá một trong những công cụ mạnh mẽ và dễ tiếp cận nhất trong lĩnh vực này: Google Cloud Storage (GCS).
Hãy tưởng tượng GCS không phải là một công nghệ bí ẩn, mà là một ổ đĩa cứng gần như vô hạn, có thể truy cập từ bất kỳ đâu trên thế giới, cực kỳ an toàn và linh hoạt. Đây là một dịch vụ được thiết kế để lưu trữ những gì được gọi là "dữ liệu phi cấu trúc", bao gồm hầu hết mọi thứ mà bạn có thể nghĩ đến: hình ảnh và video của trang web, bản sao lưu (backup) của cơ sở dữ liệu, tệp log của ứng dụng, hoặc thậm chí là những tập dữ liệu lớn cho trí tuệ nhân tạo.
Bài viết này sẽ hướng dẫn bạn từng bước trong việc khám phá GCS. Chúng ta sẽ không chỉ lướt qua các tính năng; chúng ta sẽ hiểu được logic đằng sau chúng. Chúng ta sẽ tập trung vào việc sử dụng công cụ dòng lệnh gcloud, một công cụ không thể thiếu cho bất kỳ nhà phát triển nào muốn tự động hóa các tác vụ và làm việc hiệu quả. Khi bạn thành thạo GCS, bạn không chỉ học cách lưu trữ tệp; bạn đang đặt viên gạch đầu tiên để xây dựng các ứng dụng có thể mở rộng, từ việc lưu trữ các trang web tĩnh đến phân tích dữ liệu quy mô lớn (Big Data). GCS là một giải pháp lưu trữ đối tượng thống nhất, có nghĩa là nó được thiết kế để làm nền tảng cho nhiều dịch vụ khác của Google Cloud, như BigQuery cho phân tích dữ liệu hoặc Vertex AI cho học máy. Học GCS là mở ra cánh cửa cho toàn bộ hệ sinh thái của Google Cloud.
Các khái niệm chính
Trước khi gõ lệnh đầu tiên, điều quan trọng là phải hiểu hai thành phần cơ bản cấu thành Google Cloud Storage. Giống như một hệ thống tệp được tạo thành từ các thư mục và tệp, GCS được cấu trúc xung quanh các "buckets" và "objects".
Buckets: Những thùng chứa của bạn trong đám mây
Một "bucket" (có nghĩa là "thùng" trong tiếng Anh) là thùng chứa cơ bản trong GCS. Nó tương đương với thư mục gốc hoặc ổ đĩa chính nơi bạn sẽ lưu trữ dữ liệu của mình. Khi bạn bắt đầu sử dụng GCS, điều đầu tiên bạn sẽ làm là tạo một bucket.
Một trong những đặc điểm quan trọng nhất, và thường là nguồn gốc của sự nhầm lẫn cho người mới, là tên của một bucket phải duy nhất toàn cầu. Điều này có nghĩa là tên mà bạn chọn không thể đã được sử dụng bởi một người dùng khác của Google Cloud, ở bất kỳ đâu trên thế giới. Lý do rất đơn giản: mỗi bucket có thể được truy cập thông qua một URL tiêu chuẩn trên Internet (ví dụ: storage.googleapis.com/mon-nom-de-bucket-unique). Do đó, nó là một phần của không gian tên toàn cầu, giống như tên miền của các trang web.
Để tránh lỗi, tên của buckets phải tuân theo một số quy tắc đơn giản:
- Chúng chỉ có thể chứa các chữ cái thường, số, dấu gạch ngang (
-), dấu gạch dưới (_) và dấu chấm (.). - Chúng phải bắt đầu và kết thúc bằng một chữ cái hoặc số.
- Độ dài phải nằm trong khoảng từ 3 đến 63 ký tự.
Objects: Các tệp và siêu dữ liệu của bạn
Nếu một bucket là thư mục, thì một "object" chỉ đơn giản là tệp mà nó chứa. Nó có thể là bất kỳ loại tệp nào (hình ảnh, tài liệu PDF, video, tệp nhị phân) và kích thước của nó có thể lên đến 5 To.
Mỗi object trong GCS bao gồm hai thành phần không thể tách rời:
- Dữ liệu: Nội dung thô của tệp chính nó.
- Siêu dữ liệu: Một tập hợp thông tin mô tả object. Điều này bao gồm các siêu dữ liệu tiêu chuẩn như tên của object, kích thước, loại nội dung (ví dụ:
image/jpeg), và ngày sửa đổi cuối cùng. Bạn cũng có thể thêm siêu dữ liệu tùy chỉnh của riêng bạn để gán nhãn và tổ chức dữ liệu.
Tóm lại, cấu trúc rất đơn giản: bạn tạo các buckets để tổ chức dự án của mình, và bạn đặt các objects (các tệp của bạn) bên trong các buckets này.
Bước đầu tiên với gcloud storage
Giờ đây, khi các khái niệm đã rõ ràng, hãy chuyển sang thực hành. Công cụ gcloud là một giao diện dòng lệnh (CLI) mạnh mẽ cho phép bạn tương tác với tất cả các dịch vụ của Google Cloud, bao gồm cả GCS. Tập hợp các lệnh dành riêng cho lưu trữ là gcloud storage. Điều quan trọng cần lưu ý là gcloud storage là công cụ hiện đại và thống nhất được Google khuyến nghị, đang thay thế dần công cụ cũ gsutil để cung cấp trải nghiệm đồng nhất hơn.
Cú pháp của những lệnh này được thiết kế để trực quan cho bất kỳ ai đã sử dụng terminal Linux hoặc macOS. Các lệnh cơ bản như cp (sao chép), ls (liệt kê) và rm (xóa) hoạt động rất giống nhau, điều này làm giảm đáng kể độ dốc của quá trình học. Lựa chọn thiết kế này không phải là ngẫu nhiên; nó nhằm mục đích làm cho việc tương tác với lưu trữ đám mây tự nhiên như việc quản lý tệp trên máy tính của bạn.
Dưới đây là các thao tác cơ bản mà bạn cần làm chủ.
Tạo bucket đầu tiên của bạn
Bước đầu tiên là tạo một thùng chứa cho các tệp của bạn. Đừng quên rằng tên phải duy nhất toàn cầu!
bash
gcloud storage buckets create gs://mon-bucket-cua-toi
Tải lên tệp đầu tiên của bạn
Sau khi bucket được tạo, bạn có thể sao chép một tệp từ máy tính của mình vào đó.
bash
gcloud storage cp <FILE> gs://mon-bucket-cua-toi/
Ví dụ, để tải lên một tệp có tên logo.png từ thư mục hiện tại: gcloud storage cp logo.png gs://mon-bucket-cua-toi/.
Liệt kê nội dung của bucket
Để xem các objects có trong bucket của bạn, hãy sử dụng lệnh ls.
bash
gcloud storage ls gs://mon-bucket-cua-toi/
Tải xuống một tệp
Để lấy một tệp từ bucket về máy tính của bạn, hãy sử dụng cùng một lệnh cp, nhưng hãy đảo ngược nguồn và đích.
bash
gcloud storage cp gs://mon-bucket-cua-toi/logo.png .
Xóa một object và một bucket
Cuối cùng, để dọn dẹp, bạn có thể xóa một object cụ thể hoặc toàn bộ bucket. Hãy cẩn thận, vì những thao tác này thường là không thể đảo ngược, trừ khi có các cơ chế bảo vệ như xóa có thể đảo ngược (soft delete) hoặc quản lý phiên bản được kích hoạt.
Để xóa một object:
bash
gcloud storage rm gs://mon-bucket-cua-toi/logo.png
Để xóa một bucket và tất cả nội dung của nó (tùy chọn đệ quy -r):
bash
gcloud storage rm -r gs://mon-bucket-cua-toi/
Với năm lệnh này, bạn đã nắm giữ chìa khóa để thực hiện 90% các thao tác thường gặp trên Google Cloud Storage.
Tối ưu hóa chi phí
Một trong những lợi ích lớn nhất của đám mây là mô hình thanh toán theo mức sử dụng (pay-as-you-go). Tuy nhiên, điều này cũng có thể là một cái bẫy nếu bạn không hiểu cách cấu trúc chi phí. Đối với GCS, chi phí không chỉ phụ thuộc vào lượng dữ liệu bạn lưu trữ ("lưu trữ tĩnh"), mà còn vào tần suất truy cập ("thao tác" và "đầu ra mạng"). Google cung cấp các công cụ để quản lý thông minh sự đánh đổi này.
Các lớp lưu trữ, mỗi dữ liệu có một mục đích
Không phải tất cả dữ liệu đều có giá trị và tần suất truy cập giống nhau. Một tệp hình ảnh cho trang web của bạn có thể được truy cập hàng nghìn lần mỗi ngày ("dữ liệu nóng"), trong khi một bản lưu trữ pháp lý có thể không bao giờ được truy cập trong nhiều năm ("dữ liệu lạnh"). GCS cho phép bạn căn chỉnh chi phí lưu trữ với hồ sơ truy cập của dữ liệu thông qua các lớp lưu trữ.
- Standard: Lớp Standard lý tưởng cho các dữ liệu "nóng", tức là những dữ liệu thường xuyên được truy cập và thay đổi. Điều này bao gồm các trang web động, phát trực tuyến nội dung video, ứng dụng di động và khối lượng công việc phân tích tích cực. Mặc dù lớp này có chi phí lưu trữ cao nhất, nhưng nó cung cấp chi phí truy cập thấp nhất, làm cho nó hoàn hảo cho các dữ liệu cần sẵn có ngay lập tức và liên tục.
- Nearline: Đối với dữ liệu "ấm", lớp Nearline là thích hợp nhất. Đây là những dữ liệu ít được truy cập như bản sao lưu hàng tháng, tệp log hoặc nội dung đa phương tiện hiếm khi được truy cập. Nó cung cấp chi phí lưu trữ thấp hơn với chi phí truy cập trung bình. Một thời gian lưu trữ tối thiểu 30 ngày là yêu cầu cho lớp này.
- Coldline: Lớp Coldline được thiết kế cho các dữ liệu "lạnh", chẳng hạn như các bản lưu trữ được truy cập định kỳ (ví dụ: hàng quý) hoặc các dữ liệu dành cho khôi phục sau thảm họa. Nó có chi phí lưu trữ rất thấp nhưng chi phí truy cập cao, làm cho nó tiết kiệm cho những thông tin hiếm khi cần thiết. Thời gian tối thiểu lưu trữ cho lớp này là 90 ngày.
- Archive: Cuối cùng, lớp Archive dành riêng cho các dữ liệu "băng giá", rất hiếm khi được truy cập. Điều này thường liên quan đến các bản lưu trữ pháp lý hoặc quy định cần được lưu trữ lâu dài vì lý do tuân thủ. Lớp này cung cấp chi phí lưu trữ thấp nhất trên thị trường, nhưng chi phí truy cập cao nhất, làm cho nó phù hợp cho việc lưu trữ lâu dài. Thời gian tối thiểu lưu trữ là 365 ngày.
Quản lý vòng đời của objects - Tự động hóa để tiết kiệm
Việc thay đổi thủ công lớp lưu trữ của hàng triệu tệp sẽ là một nhiệm vụ khó khăn. Đây là lúc tính năng mạnh mẽ nhất của GCS xuất hiện: quản lý vòng đời của objects (Object Lifecycle Management).
Tính năng này cho phép bạn định nghĩa các quy tắc tự động áp dụng cho tất cả các objects trong một bucket. Bạn có thể tạo các quy tắc để:
- Thay đổi lớp lưu trữ của một object sau một thời gian nhất định.
- Xóa một object sau một khoảng thời gian xác định.
Ví dụ, chúng ta muốn tất cả các tệp log (kết thúc bằng .log) được tự động chuyển sang lớp lưu trữ Coldline sau 90 ngày để giảm chi phí. Ngoài ra, vì lý do tuân thủ, chúng ta muốn những tệp log này được xóa vĩnh viễn sau 7 năm (tương đương 2555 ngày).
Để thực hiện điều này, chúng ta tạo một tệp cấu hình ở định dạng JSON, có thể được đặt tên là lifecycle.json:
json
{
"lifecycle": {
"rule": [
{
"action": { "type": "Delete" },
"condition": { "age": 2555, "matchesSuffix": [".log"] }
}
]
}
}
Khi tệp này được tạo, chỉ cần một lệnh gcloud để áp dụng nó cho bucket của bạn:
bash
gcloud storage buckets update gs://<PATH> --lifecycle-file=lifecycle.json
Chia sẻ tệp một cách an toàn và tạm thời
Cuối cùng, chúng ta đến với mẹo giúp phân biệt người mới và người dùng thành thạo. Hãy tưởng tượng kịch bản sau: bạn lưu trữ hóa đơn PDF cho người dùng của ứng dụng trong một bucket GCS. Bucket này phải hoàn toàn riêng tư; không ai trên Internet có thể liệt kê nội dung của nó. Làm thế nào bạn có thể cho phép một người dùng cụ thể tải xuống hóa đơn của họ, chỉ riêng của họ, trong một khoảng thời gian giới hạn?
Cách tiếp cận sai lầm sẽ là làm cho tệp công khai tạm thời hoặc quản lý các quyền phức tạp. Giải pháp tinh tế và an toàn gọi là các URL ký (Signed URLs).
Một URL ký là một URL đặc biệt và duy nhất chứa một chữ ký mã hóa. Chữ ký này cấp quyền truy cập rất cụ thể (ví dụ: đọc một object cụ thể) trong một khoảng thời gian giới hạn (ví dụ: 5 phút) cho bất kỳ ai có URL này. Khi thời gian hết hạn, URL trở nên vô hiệu.
Lời kết
Nếu bạn đã theo dõi hướng dẫn này đến cuối cùng, bạn đã có một hành trình quan trọng. Bạn không chỉ học được các khái niệm cơ bản về Google Cloud Storage như buckets và objects, mà bạn cũng đã thực hành với các lệnh thiết yếu (tạo, cp, ls, rm).
Bạn không còn là một người mới hoàn toàn. Bạn đã nắm bắt được các kiến thức cơ bản và một mẹo mạnh mẽ để bắt đầu xây dựng các giải pháp đáng tin cậy và hiệu quả với Google Cloud Storage.