ストレージ戦略を選択して実装する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Google Cloud アーキテクチャ フレームワークのこのドキュメントでは、ストレージに基づいてシステムをデプロイするためのベスト プラクティスについて説明しています。ストレージ戦略を選択する方法と、ストレージ、アクセス パターン、ワークロードを管理する方法を学びます。

データ交換を促進し、データのバックアップと保存を安全に行うには、ワークロード、1 秒あたりの入出力オペレーション(IOPS)、レイテンシ、取得頻度、場所、容量、形式(ブロック、ファイル、オブジェクト)に基づいてストレージ プランを選択する必要があります。

Cloud Storage は、次のような信頼性の高い安全なオブジェクト ストレージ サービスを提供します。

Google Cloud では、IOPS はプロビジョニングされた保存容量に応じてスケールします。 Persistent Disk などのストレージ タイプはゾーン ストレージまたはリージョン ストレージであるため、手動でのレプリケーションとバックアップが必要になります。反対に、オブジェクト ストレージは可用性が高く、1 つのリージョンやマルチ リージョン全体で、自動でデータを複製します。

ストレージの種類

このセクションでは、システムをサポートするストレージ タイプを選択するためのベスト プラクティスを紹介します。

高性能ストレージ ニーズのオプションを評価する

高性能ストレージを必要とするコンピューティング アプリケーション向けの永続ディスクもしくはローカル SSD(ソリッド ステート ドライブ)を評価します。Cloud Storage は、バージョニング可能なイミュータブル オブジェクト ストレージ サービスです。Cloud CDN で Cloud Storage を使用すると、特にアクセス頻度が高い静的オブジェクトにコストを最適化できます。

Filestore は、高性能の共有スペースを必要とするマルチライト アプリケーションをサポートします。Filestore は、ネットワーク ファイル システム(NFS)マウントを介した POSIX に似たファイル操作を必要とするレガシー アプリケーションと最新のアプリケーションもサポートします。

Cloud Storage は、データレイクの作成やアーカイブ要件への対処などのユースケースをサポートします。特に保持ポリシーを構成する際は、アクセスコストと検索コストによる Cloud Storage クラスの選択に基づいてトレードオフを決定します。詳細については、クラウド ワークロードに最適なストレージ戦略の設計をご覧ください。

すべてのストレージ オプションは、保存時と転送時にデフォルトで Google が管理する鍵を使用して暗号化されます。永続ディスクや Cloud Storage などのストレージ タイプは、独自の鍵を指定するか、Cloud Key Management Service(Cloud KMS)で管理できます。本番環境データに移行する前に、こうした鍵を処理する戦略を確立してください。

Google Cloud サービスでストレージ デザインをサポートする

ストレージ設計をサポートする Google Cloud サービスを確認するには、次の表を使用します。

Google Cloud サービス Description
Cloud Storage 世界中のどこからでも、いつでもデータを保存、取得できます。データの量に制限はありません。Cloud Storage は、ウェブサイト コンテンツの配信や、アーカイブおよび障害復旧目的でのデータの保存、直接ダウンロードによるユーザーへの大規模なデータ オブジェクトの配布など、複数のシナリオで利用できます。

詳しくは以下をご覧ください。
Persistent Disk Google Cloud 向けの高性能なブロック ストレージ Persistent Disk は、Compute Engine または Google Kubernetes Engine(GKE)で実行されているインスタンスに接続可能な SSD ストレージとハードディスクドライブ(HDD)ストレージを提供します。
  • リージョン ディスクを使用すると、同じリージョン内の 2 つのゾーン間で耐久性の高いデータ ストレージとデータ レプリケーションを実現できます。より高い IOPS と低レイテンシが必要な場合、Google Cloud は Filestore を提供します。
  • ローカル SSD は、仮想マシンのインスタンスをホストするサーバーに物理的に接続されます。一時的なディスク容量としてローカル SSD を使用できます。
Filestore データ用のファイル システム インターフェースと共有ファイル システムを必要とするアプリケーション向けのマネージド ファイル ストレージ サービスです。Filestore を使用することにより、Compute Engine や GKE のインスタンスでマネージド ネットワーク接続ストレージ(NAS)をシームレスに活用できるようになります。
Cloud Storage for Firebase 写真や動画のようなユーザー作成コンテンツを保存し配信する必要のあるアプリ デベロッパー向けに構築されています。すべてのファイルは Cloud Storage バケットに保存されているので、Firebase と Google Cloud の両方からアクセスが可能です。

ストレージ戦略を選択する

アプリケーション要件を満たすストレージ戦略を選択するには、次の表を使用します。

ユースケース 推奨事項
最も低コストで大規模なデータを保存する場合、アクセスのパフォーマンスは問題になりません。 Cloud Storage
コンピューティング アプリケーションで即時のストレージが必要な場合。

詳細については、永続ディスクとローカル SSD のパフォーマンスの最適化をご覧ください。
Persistent Disk またはローカル SSD
共有スペースへの読み取りと書き込みのアクセス権が必要な高パフォーマンス ワークロードを実行している。 Filestore
ハイ パフォーマンス コンピューティング(HPC)または高スループット コンピューティング(HTC)のユースケースがある。 クラスタを利用して大規模なテクニカル コンピューティングをクラウドで実行する

ストレージ アクセスのニーズに基づいてアクティブ ストレージまたはアーカイブ ストレージを選択する

ストレージ クラスは、すべてのオブジェクトで使用されるメタデータです。可用性が高く、高頻度で提供されるデータの場合は、Standard Storage クラスを使用します。アクセス頻度が低く、やや可用性が低いデータには、Nearline Storage クラス、Coldline Storage クラス、Archive Storage クラスを使用します。ストレージ クラスの選択にかかる費用の詳細については、Cloud Storage の料金をご覧ください。

Cloud Storage についてストレージの場所とデータ保護に関するニーズを評価する

リージョンにある Cloud Storage バケットの場合、そのバケットに含まれるデータはリージョン内のゾーン間で自動的に複製されます。ゾーン間でのデータ レプリケーションは、リージョン内でゾーン障害が発生した場合にデータを保護します。

Cloud Storage では地理的に冗長なロケーションも提供されています。つまり、データは地理的に離れた複数のデータセンター間で複製されます。詳細については、バケットのロケーションをご覧ください。

Cloud CDN を使用して静的オブジェクトの配信を向上させる

オブジェクトを回収し、アクセスのレイテンシを最小にするためのコストを最適化するには、Cloud CDN を使用します。Cloud CDN は、Cloud Load Balancing の外部 HTTP(S) ロードバランサを使用して、ルーティング、ヘルスチェック、エニーキャスト IP アドレスのサポートを提供します。詳細については、クラウド バケットを使用して Cloud CDN を設定するをご覧ください。

ストレージ アクセスパターンとワークロード タイプ

このセクションでは、システムをサポートするストレージ アクセス パターンとワークロード タイプを選択するためのベスト プラクティスを紹介します。

Persistent Disk を使用して高性能ストレージへのアクセスをサポートする

データ アクセスパターンは、システム パフォーマンスをどのようにデザインしたかによって変わります。 Cloud Storage はスケーラブルなストレージを提供しますが、高いスループットで大量のデータにアクセスする必要のある重い計算ワークロードを実行する場合は、理想的な選択ではありません。高性能ストレージ アクセスには、Persistent Disk を使用します。

リトライ ロジックの実装時に指数バックオフを使用する

5XX、408、429 エラーを処理するためにリトライ ロジックの実装時に指数バックオフを使用します。各 Cloud Storage バケットは、初期 I/O キャパシティが設定されています。詳細については、リクエスト レートとアクセス配信のガイドラインをご覧ください。リトライ要求の段階的な立ち上げを計画する。

ストレージ管理

このセクションでは、システムをサポートするストレージ管理のベスト プラクティスを示します。

すべてのバケットに固有の名前を設定する

すべてのバケット名を Cloud Storage 名前空間で一意にします。 バケット名に機密情報を含めないでください。 推測しにくいバケット名とオブジェクト名を選択してください。詳しくは、バケットの命名ガイドラインオブジェクトの命名ガイドラインをご覧ください。

Cloud Storage バケットを非公開の状態に保持する

ビジネス上の理由がない限り、Cloud Storage バケットが匿名または一般アクセス可能でないことを確認してください。詳細については、アクセス制御の概要をご覧ください。

ランダムなオブジェクト名を割り当てて、負荷を均等に分散する

ランダムなオブジェクト名を割り当てて、パフォーマンスを促進し、ホットスポットを回避します。可能であれば、オブジェクトの接頭辞をランダムにします。 詳細については、命名規則を使って負荷をキーの範囲に均等に分散するをご覧ください。

公開アクセス防止を使用する

組織、フォルダ、プロジェクト、バケットレベルのアクセスを防止するには、パブリックアクセス防止を使用します。詳しくは、公開アクセスの防止の使用をご覧ください。

次のステップ

Google Cloud データベース サービスと、次のようなベスト プラクティスについて確認する。

アーキテクチャ フレームワークの他のカテゴリ(信頼性、オペレーショナル エクセレンス、セキュリティ、プライバシー、コンプライアンスなど)を確認する。