· ストレージとデータベース · 8 min read
Cloud Storage バケットの作成と管理:基礎から応用まで
Google Cloud Storage のバケット作成から高度な管理テクニックまでを解説する初心者から上級者まで役立つ総合ガイド

Google Cloud Storage (GCS) は、Google Cloud が提供する高耐久性、高可用性のオブジェクトストレージサービスです。この記事では、GCS バケットの基本概念から作成方法、そして高度な管理テクニックまでを段階的に解説します。
1. Cloud Storage の基本
1.1 Cloud Storage とは
Cloud Storage は、データを安全に保存し、必要に応じて迅速にアクセスできるようにするサービスです。主に以下の用途で使用されます:
- バックアップとアーカイブ
- コンテンツ配信
- データ分析
- アプリケーションデータの保存
1.2 バケットとは
バケットは、Cloud Storage 内でデータを格納する基本的なコンテナです。以下の特徴があります:
- グローバルで一意の名前を持つ
- 特定の地域またはマルチリージョンに作成される
- アクセス制御や暗号化などの設定を持つ
1.3 オブジェクトとは
オブジェクトは、バケット内に保存される個々のデータ単位です。以下の特徴があります:
- ファイルに似ているが、より柔軟な構造を持つ
- サイズの制限がほとんどない(最大 5 TB)
- メタデータを持つことができる
2. バケットの作成:ステップバイステップガイド
2.1 Google Cloud Console を使用した作成
- Google Cloud Console にアクセスし、ログインします。
- 左側のナビゲーションメニューから「Cloud Storage」>「バケット」を選択します。
- 「バケットを作成」ボタンをクリックします。
- バケット名を入力します(例:「my-first-bucket-2024」)。
- データの保存場所を選択します(例:「us-central1(アイオワ)」)。
- デフォルトのストレージクラスを選択します(初心者には「Standard」がおすすめ)。
- アクセス制御を選択します(初心者には「均一」がおすすめ)。
- 「作成」をクリックしてバケットを作成します。
2.2 gsutil コマンドラインツールを使用した作成
- Google Cloud SDK をインストールし、初期設定を行います。
- ターミナルまたはコマンドプロンプトを開きます。
- 以下のコマンドを実行してバケットを作成します:
gsutil mb gs://my-first-bucket-2024
注意:バケット名は全ての GCS ユーザーで一意である必要があります。
3. バケットの基本的な使用方法
3.1 オブジェクトのアップロード
Google Cloud Console を使用:
- 作成したバケットを開きます。
- 「アップロード」ボタンをクリックし、ファイルを選択します。
gsutil を使用:
gsutil cp local-file.txt gs://my-first-bucket-2024/
3.2 オブジェクトのダウンロード
Google Cloud Console を使用:
- バケット内のオブジェクトを選択します。
- 「ダウンロード」ボタンをクリックします。
gsutil を使用:
gsutil cp gs://my-first-bucket-2024/remote-file.txt ./
3.3 オブジェクトの削除
Google Cloud Console を使用:
- バケット内のオブジェクトを選択します。
- 「削除」ボタンをクリックします。
gsutil を使用:
gsutil rm gs://my-first-bucket-2024/file-to-delete.txt
4. バケットの設定と管理
4.1 アクセス制御
Cloud Storage では、2 種類の主要なアクセス制御メカニズムがあります:
IAM (Identity and Access Management):
- より細かなアクセス制御が可能
- 役割ベースのアクセス制御を提供
- 例:特定のユーザーに「Storage オブジェクト閲覧者」の役割を付与
ACL (Access Control Lists):
- オブジェクトレベルでのアクセス制御
- より単純だが、柔軟性に欠ける
- 例:特定のオブジェクトに対して「公開読み取り」を設定
IAM の設定例(Console):
- バケットの詳細ページに移動
- 「権限」タブを選択
- 「アクセスを追加」をクリック
- 新しいプリンシパルとロールを追加
ACL の設定例(gsutil):
gsutil acl ch -u AllUsers:R gs://my-first-bucket-2024/public-file.txt
この例では、public-file.txt
に対して全ユーザーに読み取り権限を付与しています。
4.2 バージョニング
バージョニングを有効にすると、オブジェクトの複数のバージョンを保持できます。これは誤った変更や削除からの保護に役立ちます。
バージョニングの有効化(Console):
- バケットの詳細ページに移動
- 「構成」タブを選択
- 「バージョニング」セクションで「有効」を選択
バージョニングの有効化(gsutil):
gsutil versioning set on gs://my-first-bucket-2024
4.3 ライフサイクル管理
ライフサイクル管理を使用すると、オブジェクトの自動削除や低コストのストレージクラスへの移動を設定できます。
ライフサイクルルールの例:
- 30 日経過したオブジェクトを Nearline ストレージクラスに移動
- 365 日経過したオブジェクトを削除
ライフサイクルルールの設定(Console):
- バケットの詳細ページに移動
- 「ライフサイクル」タブを選択
- 「ルールを追加」をクリック
- 条件と動作を設定
5. 高度な使用例
5.1 静的ウェブサイトホスティング
Cloud Storage バケットを使用して、静的ウェブサイトをホストすることができます。
設定手順:
- バケットを作成し、すべてのユーザーに読み取り権限を付与
- インデックスページ(例:index.html)とエラーページをアップロード
- バケットのウェブサイト設定を有効化
gsutil web set -m index.html -e 404.html gs://my-website-bucket
5.2 Cloud CDN との統合
Cloud CDN (Content Delivery Network) と統合することで、コンテンツ配信を最適化できます。
設定手順:
- Cloud Load Balancing を設定
- バックエンドバケットを作成し、Cloud Storage バケットと関連付け
- Cloud CDN を有効化
5.3 オブジェクトの変更通知
Pub/Sub 通知を設定して、バケット内のオブジェクトの変更を監視できます。
設定手順:
- Pub/Sub トピックを作成
- バケットの通知設定を構成
gsutil notification create -t [TOPIC_NAME] -f json gs://my-first-bucket-2024
6. ベストプラクティスとトラブルシューティング
ベストプラクティス
適切なストレージクラスの選択:
- アクセス頻度の高いデータには Standard
- アーカイブデータには Coldline や Archive
セキュリティの強化:
- 最小権限の原則に従ってアクセス権を設定
- 重要なデータには顧客管理の暗号化キー(CMEK)を使用
コスト最適化:
- ライフサイクルポリシーを活用して古いデータを自動的に低コストのストレージクラスに移動
- 不要なデータを定期的に削除
一般的な問題とその解決方法
アクセス拒否エラー:
- IAM 権限を確認
- バケットとオブジェクトの ACL を確認
パフォーマンスの問題:
- 大量のオブジェクトを扱う場合は、オブジェクト名にランダム性を持たせる
- 地理的に近いリージョンを選択
データ転送の失敗:
- ネットワーク接続を確認
- gsutil の -m オプションを使用して並列転送を試みる
まとめ
この記事では、Google Cloud Storage の基本概念から高度な使用例まで幅広くカバーしました。バケットの作成、基本的な操作、アクセス制御、バージョニング、ライフサイクル管理などの重要な機能を学びました。さらに、静的ウェブサイトホスティングや CDN との統合など、高度な使用例も紹介しました。
Cloud Storage は柔軟で強力なツールであり、適切に使用することで、データの安全な保存と効率的な管理が可能になります。この記事で学んだ知識を基に、自身のプロジェクトで Cloud Storage を活用してみてください。
次のステップとして、以下をお勧めします:
- 実際にバケットを作成し、さまざまな設定を試してみる
- Cloud Storage と他の Google Cloud サービス(例:BigQuery、Cloud Functions)との連携を探る
- より複雑なユースケースについて、Google Cloud のドキュメントや関連するチュートリアルを参照する