【よくわかる Google Cloud】Cloud Storageとは

Associate Cloud Engineer

「世の中には難しいことが多い!」と感じることが多い私が、様々な用語を、初学者向けにわかりやすく全力で解説します。

Google Cloud Storage(GCS)とは

Cloud Storageとは、低料金で大容量のデータを保存することが出来るストレージサービスです。データは複数のリージョンやゾーンにまたがって保存されるため、安全かつ堅牢にデータを保存することが出来ます。また、データは少なくとも2つのゾーンに保存されます。

【Tips】ストレージサービスとは、ファイルなどのデータを保存するサービスのことです。Google Cloudでは保存されたデータのことをオブジェクトと呼びます。

ストレージサービスはクラウドの中でも理解がしやすいサービスかと思います。本記事では、Associate Cloud Engineer資格取得に向けて、Google Cloud Storage(GCS)の理解しておくべきポイントをまとめました。

データの保存場所を選択する

ロケーションタイプでは、バケットをどのリージョンに作成するかを選択することが出来ます。以下の3つから選択することが出来、コストや可用性が変わってきます。

  • マルチリージョン:複数の大陸内の2つ以上のリージョンにデータが複製されて保存されます。リージョン単位で障害が発生しても、データの可用性と冗長性を担保することが出来ます。エンドユーザーは一番近いリージョンからアクセスすることが出来るため、アクセス速度を高速化することが出来ます。
  • デュアルリージョン:複製されたデータを保存するために、2つのリージョンを選択することが出来ます。例えば、東京と大阪の2つのリージョンを選択できます。データを保存するリージョンを指定したい場合におすすめです。
  • リージョナル:1つのリージョン内の複数のソーンにデータが複製されて保存されます。GCSを使用するリソースと同じリージョンにすることで、アクセス速度を向上させることが出来ます。

以下がGoogle Cloudコンソールからの選択画面です。

リージョンとゾーンについては、以下の記事で解説をしています。

ストレージクラスと最小保存期間

最小保存期間とは、オブジェクトがパケットに保存されると、オブジェクトが削除や移動をしたとしても、各ストレージクラスで決められている最小の保存期間分のコストが発生することです。ストレージクラスによって最小保存期間が変わってきます。

StandardNearlineColdlineArchive
最小保存期間なし30日90日365日
アクセス頻度目安頻繁1か月に1回数か月に1回1年に1回
データ保存料金高いやや高いやや安い安い
データ処理料金安いやや安いやや高い高い
ストレージクラス比較表

データの保存料金とは、パケットに保存されるデータに対して発生する料金です。保存するデータ量の分だけ料金が発生します。

データ処理料金とは、GCSのオブジェクトを操作する頻度に対して発生する料金です。データのダウンロードなどをする際に課金が行われます。

大容量のファイルをGCSにアップロードする場合

大容量のファイルをGCSにアップロードする場合のおすすめの方法をご紹介します。

並列複合アップロード

Cloud Storageバケットにサイズの大きいファイルをアップロードするための効率的な方法として、並列複合アップロードがあります。1 つのファイルをチャンクに分割され、これらのチャンクが並列して一時オブジェクトにアップロードされるため、高速でアップロードすることが出来ます。

【Tips】チャンクとは、データの塊のことを指します。ここでは1つのファイルが複数のデータの塊に分割されると理解してください。

【参考】並列複合アップロード

並列複合アップロード  |  Cloud Storage  |  Google Cloud

再開可能なアップロード

大容量のファイルをアップロードしている途中にネットワーク障害で接続が切れてしまい、最初からアップロードしなおさなければならない、、ということを防ぐためには再開可能なアップロードを使用します。

再開可能なアップロードを使用することでアップロードが途中で中断した場合でも途中からアップロードを再開することが出来ます。

使用方法については以下の公式ドキュメントを参考にしてください。

再開可能なアップロードの実行  |  Cloud Storage  |  Google Cloud

ライフサイクル管理

ライフサイクル管理を使用することで、適切なコスト管理やデータの整理を行うことが出来ます。例えば、データのアクセス頻度に応じてストレージクラスを変更したり、オブジェクトの保存期間を設定することが出来ます。

データへのアクセス管理

Cloud Storageには、バケットやオブジェクトへのアクセスを管理するためには、IAMアクセス制御リスト(ACL)署名付きURL使用します。この2つの方法について説明します。

均一なバケットレベルのアクセス

Cloud Storageのバケットに対して、均一なアクセス管理をする場合はIAMを使用します。この機能を使用すると、バケット内のすべてのCloud StorageリソースへのACLが無効になり、アクセスはIAMによってのみ管理されます。

リソースへのアクセスを制御する方法としてはこちらの方法が推奨されています。

バケットの権限の設定で「アクセス制御」から「均一」を選択することで、バケットレベルでのアクセスを有効化することが出来ます。この設定を有効化すると、IAMでバケットへのアクセスが許可されたユーザーのみがアクセスできるようになります。ACLを適用したい場合は、「きめ細かい管理」を選択します。

アクセス制御リスト(ACL)

オブジェクトごとにきめ細かくアクセス権を指定したい場合は、アクセス制御リスト(ACL)を使用します。ACLを設定することで、以下のようにユーザーレベルでアクセス権を割り当てることが出来ます。

署名付きURL

署名付きURLを使用することで、URLを知っている人ならだれでもCloud Storageバケットやオブジェクトにアクセスすることが出来ます。Google Cloudアカウントを持っていないユーザーでもアクセスすることが出来ます。ユーザーはバケットやオブジェクトへアクセスし、アップロードやダウンロードをすることが出来ます。

URLへアクセスすることが出来る期間は決まっており、期間がくるとアクセスが出来なくなります。Googleアカウントを持っていないユーザーなどに対して、オブジェクトへのアクセスを許可したい場合は署名付きURLを使用する方法が推奨されています。

gsutilコマンド

gsutil mb

gsutil mbコマンドは、GCSに新しいバケットを作成するコマンドです。

基本構文は以下の通りです。

  • OPTIONS:オプションを指定します。
  • BUCKET_NAME:作成するバケットの名前を指定します。

使用例は以下の通りです。

gsutil cp

gsutil cpはファイルやフォルダをコピーするコマンドです。自分のPCなどのローカル環境からGCSバケットへのコピー、GCSバケットからローカル環境へのコピーなどをすることが出来ます。

  • OPTIONS:オプションを指定します。
  • SRC_URL:コピー元のパスを指定します。
  • DST_URL:コピー先のパスを指定します。

基本構文は以下の通りです。

使用例は以下の通りです。

オプション

  • -m:複数の処理を並行して処理を実行することが出来ます。例として、Aファイルをアップロードしている間に、Bファイルも並行してアップロードすることが出来るようになります。
  • -c:ストレージクラスを指定することが出来ます。ストレージクラスには、standard,nearline,coldline,archiveなどを指定することが出来ます。
  • -l:ロケーションを指定することが出来ます。

その他メモ

  • Storageバケットはリージョンに作成します。ゾーンは指定することが出来ません。
  • Cloud Storageへ保存されるデータはデフォルトで暗号化されています。特別にユーザーが暗号化の設定をする必要はありません。
タイトルとURLをコピーしました