适用于 Google Colab TPU 的 Google Cloud Storage 定价

问题描述

我想将 Google Colab 免费 TPU 与自定义数据集一起使用,这就是我需要将其上传到 GCS 的原因。我在 GCS 中创建了存储桶并上传了数据集。

我还读到 GCS 中有两类操作数据:操作类 A 和操作类 B [reference]

我的问题是:从 Google Colab 中的 GCS 访问数据集是否属于这些操作类之一?您为 Colab TPU 使用 GCS 的平均价格是多少?

解决方法

是的,访问 GCS 存储桶中的对象(文件)可能会导致向您的结算帐户收费,但您可能需要考虑其他一些因素。让我解释一下(对于很长的答案提前抱歉):

Google Cloud Platform 服务在幕后使用 API 来执行多项操作,例如显示、创建、删除或编辑某些资源。

云存储也不例外。如 Cloud Storage docs 中所述,操作可以分为两种:由 JSON API 执行的操作和由 XML API 完成的操作。

在 Cloud Console 或 Client libraries(用于通过代码与 Python、Java、PHP 等语言进行交互的操作)上执行的所有操作,默认情况下将使用 JSON API 收费。让我们专注于这一点。

我希望您注意每个Operations列下的方法名称:

enter image description here

结构如下:

service.resource.action

由于所有这些方法都与 Cloud Storage 服务相关,因此在所有方法中都可以看到 storage 服务。

Operations B 列中,第一个方法是storage.*.get。其他列中没有其他 get 方法,这意味着将考虑从存储桶中检索信息(读取元数据)或存储桶内的对象(通过代码读取文件、下载文件等)作为此方法的一部分。

在讨论如何计算成本之前,让我补充一点:Google Cloud Storage 不仅会向您收取操作本身的费用,还会收取在网络中传输的文件大小的费用。以下是两种最常见的情况:

  1. 您正在与来自另一个 GCP 服务的文件进行交互。由于它使用内部GCP网络,因此费用并不大。如果您决定采用这种方式,我建议您在同一位置使用资源(App Engine、Compute Engine、Kubernetes Engine 等)以避免产生额外费用。请检查Network egress charges within GCP

  2. 您正在从 GCP 之外的环境进行交互。这是您与 Google Colab 等其他服务交互的场景(即使它是 Google 服务,它也位于 Cloud Platform 之外)。请参阅 General network usage pricing 以了解云存储。

现在,让我们谈谈 Storage classes,它也会影响对象的可用性和定价。根据创建存储桶的位置,您需要为 the docs 中提到的存储数据量付费。

即使 Nearline、Coldline 和 Archive 类在存储方面是最便宜的类,它们也会向您收取 retrieving data 的额外费用。这是因为这些类旨在用于存储不经常使用的数据。

我认为我们已经涵盖了所有内容,现在可以转到重要问题:所有这些将花费多少?这取决于您的文件大小、您与它们交互的时间以及存储分区的存储类别。

假设您在北美有 1 个标准存储桶,您的数据集为 20 GB,并且您每天从 Google Colab 读取 10 次,我们可以计算如下:

标准存储:每 GB 0.020 美元

$0.020 * 20 = $0.4USD

标准操作的 B 类操作(每 10,000 次操作):0.004 美元

Given that you are only charged $0.004 per 10,000 we can say that each operation 
costs $0.0000004 USD so 10 operations will be $0.000004 USD.

到全球目的地(不包括亚洲和澳大利亚)的出站流量:每 GB 0.12 美元

$0.12 * 20 because it is the size of our file = $2.4 USD 
10 times we are reading this doc per day: 2.4 * 10 = $24 USD

在此示例中,您每天需要支付:0.4 + 0.000004 + 24 = 24.400004 美元。另一个例子可以在 Pricing overview section

最后好消息是,Google 云存储提供每月重置的 Always Free usage limits。我从下面的链接附上表格:

enter image description here

这意味着:如果在整个月内,您在 Standard 类存储桶中存储的数据少于 5 GB,您执行的 B 类操作少于 50,000 次,A 类操作少于 5,000 次,并且您通过网络发送的数据少于 1GB,您不会支付任何费用。

一旦超过这些限制,就会开始收费,即如果您有 15GB 的数据集,您只需支付 10GB 的费用。