Google Cloud Platformに戻る

Cloud Storage

Cloud Storageとは

Cloud Storage は、Google Cloud Platform (GCP) が提供するオブジェクトストレージサービスです。テキストファイル、画像、動画、バックアップなど、あらゆる種類のデータを保存できるスケーラブルで耐久性の高いストレージを提供します。Cloud Storageは、単一リージョンから世界中のマルチリージョンまで、様々なストレージクラスとロケーションオプションを備えており、コスト、パフォーマンス、可用性のバランスを取りながらデータを管理できます。

Cloud Storageの主な特徴

Cloud Storageのアーキテクチャ

Cloud Storageは以下の主要コンポーネントで構成されています:

コンポーネント 説明
バケット オブジェクトを格納する基本的なコンテナ。グローバルに一意の名前を持ち、特定のロケーションに作成される
オブジェクト Cloud Storageに保存される個々のファイル。任意のファイル形式が可能で、最大5TBまでのサイズをサポート
ストレージクラス データのアクセス頻度や保持要件に基づいて選択できる異なるストレージオプション
ロケーション バケットが物理的に配置される地理的な場所(リージョン、デュアルリージョン、マルチリージョン)
IAMポリシー バケットやオブジェクトへのアクセスを制御するポリシー
ACL オブジェクトレベルでのきめ細かいアクセス制御を提供する従来のアクセス制御メカニズム

Cloud Storage と他のストレージサービスの違い

Cloud Storageと他のGCPストレージサービスには以下のような違いがあります:

ストレージクラス

Cloud Storageは、データのアクセス頻度や保持要件に応じて選択できる複数のストレージクラスを提供しています:

ストレージクラス 特徴 最適な用途
Standard Storage 高頻度アクセス向け。最も高いコストだが、アクセス料金が最も低い 頻繁にアクセスされるデータ、短期間のストレージ、ホットデータ
Nearline Storage 月に1回程度のアクセス向け。Standardより低コストだが、アクセス料金が高い バックアップ、長期マルチメディアコンテンツ、データアーカイブ
Coldline Storage 四半期に1回程度のアクセス向け。さらに低コストだが、アクセス料金がさらに高い 災害復旧、長期バックアップ
Archive Storage 年に1回未満のアクセス向け。最も低コストだが、アクセス料金が最も高い 長期アーカイブ、法的保持、コンプライアンス要件のあるデータ

Cloud Storageの使用方法

Cloud Storageは、Google Cloud Console、gcloud CLIツール、クライアントライブラリ、またはRESTful APIを使用して利用できます。

バケットの作成

gcloud CLIを使用したバケットの作成

gsutil mb -l asia-northeast1 gs://my-bucket-name

特定のストレージクラスでバケットを作成

gsutil mb -l asia-northeast1 -c nearline gs://my-nearline-bucket

オブジェクトのアップロード

単一ファイルのアップロード

gsutil cp local-file.txt gs://my-bucket-name/

ディレクトリ全体のアップロード

gsutil -m cp -r local-directory gs://my-bucket-name/

オブジェクトのダウンロード

単一ファイルのダウンロード

gsutil cp gs://my-bucket-name/file.txt local-file.txt

ディレクトリ全体のダウンロード

gsutil -m cp -r gs://my-bucket-name/directory local-directory

オブジェクトの一覧表示

gsutil ls gs://my-bucket-name/

オブジェクトの削除

gsutil rm gs://my-bucket-name/file.txt

Cloud Storageの高度な機能

ライフサイクル管理

ライフサイクル管理を使用して、オブジェクトの経過時間や条件に基づいて自動的にストレージクラスを変更または削除できます:

# ライフサイクル構成ファイルの例(lifecycle.json)
{
  "lifecycle": {
    "rule": [
      {
        "action": {
          "type": "SetStorageClass",
          "storageClass": "NEARLINE"
        },
        "condition": {
          "age": 30,
          "matchesStorageClass": ["STANDARD"]
        }
      },
      {
        "action": {
          "type": "SetStorageClass",
          "storageClass": "COLDLINE"
        },
        "condition": {
          "age": 90,
          "matchesStorageClass": ["NEARLINE"]
        }
      },
      {
        "action": {
          "type": "Delete"
        },
        "condition": {
          "age": 365
        }
      }
    ]
  }
}

# ライフサイクル構成の適用
gsutil lifecycle set lifecycle.json gs://my-bucket-name

バージョニング

バージョニングを有効にすると、オブジェクトの複数バージョンを保持して誤削除や上書きから保護できます:

# バージョニングの有効化
gsutil versioning set on gs://my-bucket-name

# バージョン付きオブジェクトの一覧表示
gsutil ls -a gs://my-bucket-name/file.txt

# 特定バージョンのオブジェクトの取得
gsutil cp gs://my-bucket-name/file.txt#1234567890 local-file.txt

オブジェクトのロック

オブジェクトロックを使用して、指定した期間中にオブジェクトが削除または上書きされないようにできます:

# バケットでオブジェクトロックを有効化(新規バケットのみ)
gsutil mb -l asia-northeast1 --retention-period=1y gs://locked-bucket

# 保持期間の設定
gsutil retention set 30d gs://locked-bucket

# 法的保持の設定
gsutil retention lock gs://locked-bucket/important-file.txt

Cloud Storageのセキュリティ

Cloud Storageは、データを保護するための様々なセキュリティ機能を提供しています:

アクセス制御

IAMポリシーを使用して、バケットやオブジェクトへのアクセスを制御できます:

# バケットへの読み取りアクセス権を付与
gsutil iam ch user:user@example.com:objectViewer gs://my-bucket-name

# バケットへの書き込みアクセス権を付与
gsutil iam ch user:user@example.com:objectAdmin gs://my-bucket-name

# 公開アクセスの設定
gsutil iam ch allUsers:objectViewer gs://my-bucket-name

暗号化

Cloud Storageは、保存時と転送時のデータを自動的に暗号化します。さらに、カスタマー管理の暗号化キー(CMEK)を使用することもできます:

# CMEKを使用したオブジェクトのアップロード
gsutil -o "GSUtil:encryption_key=YOUR_ENCRYPTION_KEY" cp local-file.txt gs://my-bucket-name/

署名付きURL

署名付きURLを使用して、一時的なアクセス権を付与できます:

# 1時間有効な署名付きURLの生成
gsutil signurl -d 1h service-account-key.json gs://my-bucket-name/file.txt

Cloud Storageのパフォーマンス最適化

Cloud Storageのパフォーマンスを最適化するためのベストプラクティス:

並列処理の例

gsutil -m cp -r local-directory gs://my-bucket-name/

複合アップロードの例

gsutil -o GSUtil:parallel_composite_upload_threshold=150M cp large-file.dat gs://my-bucket-name/

Cloud Storageのコスト最適化

Cloud Storageのコストを最適化するためのベストプラクティス:

コスト構造

Cloud Storageのコストは主に以下の要素で構成されています:

Cloud Storageのユースケース

Cloud Storageは以下のようなユースケースに適しています:

Cloud Storageとの統合サービス

Cloud Storageは他のGoogle Cloudサービスと統合して、より強力なソリューションを構築できます:

サービス 統合の利点
Cloud CDN 静的コンテンツの高速配信とエッジキャッシング
BigQuery Cloud Storageに保存されたデータに対する分析クエリの実行
Dataflow Cloud Storageのデータに対するETL処理とデータパイプライン
Cloud Functions オブジェクトの変更に応じたイベント駆動型の処理
Compute Engine VMからのデータの読み書きとバックアップ
Cloud Run サーバーレスアプリケーションからのデータアクセス
Cloud Logging ログデータの長期保存とアーカイブ

まとめ

Cloud Storage は、Google Cloud Platform上での非構造化データの保存と管理を簡素化するオブジェクトストレージサービスです。高い耐久性と可用性、グローバルアクセス、強力なセキュリティ機能を備えており、様々なユースケースに対応できます。

Cloud Storageの主な利点は以下の通りです:

Cloud Storageを効果的に活用するには、適切なストレージクラスの選択、ライフサイクル管理の設定、セキュリティ対策の実装、パフォーマンスとコストの最適化が重要です。また、他のGCPサービスと組み合わせることで、より強力なデータ管理ソリューションを構築することができます。