Google Cloud Storage offers three types of storage: Standard Storage, Nearline Storage, and Durable Reduced Availability (DRA) Storage with different availability, latency, and throughput characteristics. All storage classes offer the same high level of durability. Use the table below to match your data storage needs with a storage class.
Comparison of storage classes
| Storage Class | Characteristics | Use Cases | Bucket Locations1 |
|---|---|---|---|
| Standard Storage | High availability, low latency (time to first byte is typically tens of milliseconds). | Storing data that requires low latency access or data that is frequently accessed ("hot" objects), such as serving website content, interactive workloads, or gaming and mobile applications. | Continental locations |
| Durable Reduced Availability (DRA) | Lower availability than Standard Storage and lower cost per GB stored. | Applications that are particularly cost-sensitive, or for which some unavailability is acceptable such as batch jobs and some types of data backup. | Continental locations and regional locations |
| Nearline Storage | Slightly lower availability and slightly higher latency (time to first byte is typically 2 - 5 seconds) than Standard Storage but with a lower cost. | Data you do not expect to access frequently (i.e., no more than once per month). Typically this is backup data for disaster recovery, or so called "cold" storage that is archived and may or may not be needed at some future time. | Continental locations |
All storage classes support:
-
The same tools and APIs to access data, including the XML API and JSON API, the command-line
gsutiltool, the Google Developers Console, and the client libraries. -
The same OAuth and granular access controls to secure your data.
-
The same data security through redundant storage at multiple locations that is encrypted at rest.
-
Ability to use other Google Cloud Storage features like object versioning, object notification, access logging, and composite objects and parallel uploads.
-
Unlimited storage that can be accessed worldwide.
-
Paying only for what you use.
Storage class pricing
The pricing for storage classes is as follows:
| Standard Storage (GB/Month) |
Durable Reduced Availability (DRA) Storage (GB/Month) |
Nearline Storage (GB/Month) |
|---|---|---|
| $0.026 | $0.02 | $0.01 |
For more information about storage pricing, including Nearline Storage retrieval pricing, see the pricing page.
Changing storage class
If you want to move data from one storage class to another, you can do it by copying your data from a source bucket with one class to a destination bucket with a different storage class. Changing storage class incurs one or more of the following costs:
- $0.00 * per GB if transfer is between different regions in the same continent.
- $0.00 * per GB if transfer is between a region and the larger containing continent.
- $0.00 * per GB if transfer is between continents.
- $0.01 per GB if transfer is out of Nearline class. An early deletion cost might also apply.
If your source and destination buckets are in the same location and you are not transferring out of the Nearline class, then the transfer does not incur any cost. For more information and examples, see pricing.
Copy in the cloud
First, create a new bucket with the new storage class. For example, to create a Standard bucket, see Creating a Standard Bucket. Then copy the data using one of the following approaches.
gsutil
Use the gsutil cp
command to copy from the source bucket to the destination bucket.
For example, to copy foo from the source bucket to the
destination bucket, you can use:
gsutil cp gs://<source-bucket>/foo gs://<destination-bucket>
See the gsutil cp
command for more information about copy options such as copying
directories, buckets, and bucket subdirectories to recursively with the
-r flag.
JSON API
Using cURL and the
JSON API copy method you can copy data from
a source bucket to a destination bucket. For example, to copy the object
foo use:
curl -X POST -H "Authorization: Bearer <auth token>" \
https://www.googleapis.com/storage/v1/b/<source-bucket>/o/foo/copyTo/b/<destination-bucket>/o/foo
You can get an authorization access token from the OAuth 2.0 Playground. Configure the playground to use your own OAuth credentials.
Copy local
To copy data to another bucket you can also download the data from the original bucket to your computer and then upload it to the bucket with the new storage class. Standard data egress/ingress fees apply as well a retrieval fee if copying Nearline data.
You can copy locally, for example, by using the
gsutil cp command's
"daisy chain" copy mode. For example, to copy foo from the source
bucket to the destination bucket, you can use:
$ gsutil cp -D -R gs://<source-bucket>/foo gs://<destination-bucket>
The daisy chain copy mode downloads the data from the source bucket and uploads
it to the destination bucket. No copy of the data is saved locally to the
machine where you run gsutil. When you perform a daisy chain copy, you may
incur network and operation costs for moving the data because the data are
downloaded and re-uploaded.
To preserve ACLs during a daisy chain copy, use the -p option of the
gsutil cp command. You may want to set a default bucket ACL on the destination
bucket before uploading the data.