開発者のためストレージ選択の指針!Googleが指南するGCPでの最適なストレージの選び方

開発者のためストレージ選択の指針!Googleが指南するGCPでの最適なストレージの選び方

GCP

投稿日:2020/06/17 | 最終更新日:2020/07/13

Googleが開催するイベントのGoogle Cloud Dayでは、Google Cloudの最新ソリューションを学ぶことができます。今年はCOVID-19の影響もあり、リモートでの開催となりました。この記事では数あるセッションの中から、ストレージに関するセッションを取り上げ、GCPにおけるストレージの特徴、及びその選び方についてご紹介します。

この記事で紹介するセッション

この記事ではGoogle Cloud Dayで公開された下記のセッションを参考に、GCPでのストレージ選択の指針についてご紹介します。

  • 開発者のためのストレージ選択の指針 最適なストレージの選びかた

ストレージの基礎

まずは前提となるストレージの基本的な知識についてご紹介します。

接続形態によるストレージの分類

サーバーからの接続方式により、ストレージは下記の3種類に分類されます。
接続形態によるストレージの分類

ブロックストレージ

iSCSIやFibre Channel、NVMeで接続する形態です。サーバーからはOS上の1つのデバイスとして見えます。

ファイルストレージ

NFSやSMBで接続する形態です。サーバーからはネットワーク上にある別のサーバーとして見えます。

オブジェクトストレージ

HTTP/HTTPSで接続する形態です。サーバーからはURLとして見えます。

ストレージ関連の用語

ストレージの分野では下記のような用語が利用されます。

パフォーマンス関連の用語

まずはパフォーマンスに関連する用語です。

IOPS
1秒あたりのIO性能のことです。

BlockSize
1回のIOで読み書きするデータ容量のことで、アプリケーションの性質により大きさが異なります。

Throughput
1秒あたりに転送可能なデータ量のことです。IOPS × BlockSizeで算出することができます。

Latency
クライアントからストレージまでの往復時間です。小さい値であるほど短時間でストレージとやり取りできるため、性能が良くなります。

QPS
Query Per Secondのことで、1秒あたりのクエリ数を表します。主にクエリを発行するサービスの性能指標として使われます。

データ保護関連の用語

次に、データ保護に関連する用語です。

RAID
複数のディスクにデータを分散して書き込む手法です。分散の方法に応じて様々な種類があります。データ保護としての役割だけでなく、方法によってはパフォーマンスを向上させることも可能です。

スナップショット
ストレージのある時点のデータをそのまま保管する考え方です。バックアップに使われたり、同期やレプリケーションの元データとして利用されます。

データレプリケーション
遠隔地へデータをコピーすることです。災害対策の方法として利用されます。RTO(目標復旧時間)やRPO(目標復旧時点)の設定に重要な要因となります。

GCPにおけるストレージ

GCPにおけるストレージ
GCPには様々な種類のストレージが存在します。この記事では、前述したブロックストレージ、ファイルストレージ、オブジェクトストレージの各サービスにフォーカスしてご紹介します。

GCPで提供するストレージサービス

GCPで提供されているストレージ
GCPでは、ブロックストレージのサービスとして「Persistent Disk」、ファイルストレージのサービスとして「Filestore」、オブジェクトストレージのサービスとして「Cloud Storage」をそれぞれ提供しています。ここからはその特徴と設計時の考慮点について解説します。

Persistent Disk

Persistent_Disk_logo
Persistent Diskは、ブロックストレージのサービスです。GCPの日本語コンソールでは永続ディスクと表示されます。

Persistent Diskの主な特徴

Persistent Diskの特徴の1つとして、使いやすいブロックストレージであることがあげられます。ディスクを追加するだけで利用可能で、容量は透過的にサイズを拡張可能です。

パフォーマンスに関してはディスクサイズやvCPU数に比例して自動でスケールします。単一のディスクでパフォーマンスを最大化することができるため、ストライピングやプリウォームといったパフォーマンスを向上させるための設計を考慮する必要がありません。既存のディスクのパフォーマンスを向上させたい場合、容量やvCPUを追加することで増強することができます。

また、冗長性に関してはすでに組み込み済みで、ゾーンレベルもしくはリージョンレベルであらかじめ冗長化されています。スナップショットを取得することでバックアップを取ることが可能。

暗号化については自動的にされます。GCPコンソール上では暗号鍵管理ソリューションが以下の3択があります。

  • Google が管理する鍵で自動的に暗号化するか
  • 利用者側が鍵を新たに作成するか
  • 持ち込みの暗号鍵を利用するか

の3択です。

それぞれの管理方法が

  • Google が管理する鍵の場合は、設定は必要ありません。
  • お客様が管理する鍵の場合は、Google Cloud Key Management Service により管理します。
  • お客様が指定する鍵の場合は、Google Cloud の外部で管理します。

選べる3種類のオプション

Persistent Diskには、下図の3種類のオプションが存在します。
Persistent_Disk_3種類

それぞれパフォーマンスや特徴が異なるため、ワークロードに合わせて選択することが重要となります。

標準永続ディスクは比較的低コストで利用可能なオプションです。大容量のデータを保管する場合や、標準的なアプリケーションで選択するのが良いでしょう。

SSD永続ディスクはパフォーマンスを重視したワークロードに最適なオプションです。高性能なデータベースサーバー等に適しています。

ローカルSSDはインメモリデータベースやHPCのスクラッチ領域など、非常に高パフォーマンスなディスクが必要な場合がターゲットとなります。注意点として、他の2種類のオプションとは異なりエファメラルストレージという一時的なストレージのため、インスタンスが終了した場合にはローカルSSD上のデータは全て消去されます。

オプションごとのパフォーマンス

Persistent_Disk_IOPS
上図は各オプションごとのIOPSの指標です。容量あたり、及びインスタンスあたりのIOPSの最大性能が表されています。実際の値は、ディスクサイズやインスタンスのvCPU数、ブロックサイズなどにより変動することが予想されます。

Persistent_Disk_スループット
また、スループットの指標も公開されています。こちらもIOPSと同様にディスクサイズやvCPU数などの要因で変動します。

データ保護機能

Persistent Diskでは、スナップショットの機能によりストレージの状態をバックアップすることが可能です。アプリケーションが実行中であってもスナップショット自体は取得可能ですが、整合性のあるスナップショットを作成するためにはアプリケーションやミドルウェアのレベルでIOの停止やディスクのアンマウント等を行う必要があります。

また、スナップショットは増分で取得されるため、コスト効率がよく、それほど時間をかけずに実行することができます。

さらに、データセンターレベルでの障害を想定した場合、リージョン永続ディスクを活用することで簡単にデータレプリケーションを実現することができます。ゾーン永続ディスクとは異なり、同じリージョン内の別のゾーンにデータが自動でレプリケーションされ、ゾーン停止時にはリージョン内のセカンダリVMに強制的に接続することが可能です。これにより、数分以内のRTOを達成する可用性の高い環境を容易に構築することができます。

設計のポイント

パフォーマンスを最適化するためには、ディスクサイズに比例してIOPSやスループットが大きくなることを考慮し、ディスクサイズやvCPUを調整する必要があります。特にディスクへの書き込みに関しては下りネットワークの上限値がパフォーマンスに影響する大きな要因となります。

例えば1vCPUのインスタンスでは、標準永続ディスクに対する最大書き込み帯域幅の上限値が240 MB/s を利用することができます。スループットの表を確認すると標準永続ディスクは1 GBあたり0.12 MB/sのスループットを利用することができるため、インスタンスの書き込み帯域幅を最大限に活用するためには、ディスク容量として少なくとも2000 GBをオーダーする必要があることになります。

Filestore

Filestore_logo
Filestoreは、ファイルストレージのサービスです。

Filestoreの特徴

Filestoreでは、低レイテンシのファイル操作を実現可能なマネージドのファイルサービスです。前述したPersistent Diskとは異なり、パフォーマンスのばらつきを抑え、一貫したパフォーマンスを提供しています。GCE(Google Compute Engine)はもちろん、GKE(Google Kubernetes Engine)とも統合されているため、複数のコンテナから同じ共有データを参照することができます。

2種類のオプション

Filestoreオプション
Filestoreには標準とプレミアムの2種類の階層が用意されています。標準は最小ディスクサイズとして1 TBからオーダーすることができ、10 TB以上オーダーすることでパフォーマンスが向上します。また、プレミアムは最小ディスクサイズは2.5 TBですが、非常に高速なIOPSとスループットが提供されています。標準とプレミアムには機能的な差はなく、価格とパフォーマンスのみが異なっています。

Filestoreのユースケース

Filestoreは複数のユーザーから共有ストレージとして利用することができます。実際に利用する際には、下記のようなユースケースが考えられます。

  • レンダリング処理をする際に、視覚効果アーティストがファイル共有し、複数のGCEインスタンスから共同作業を行う
  • アプリケーションの移行時に共有ファイルの配置場所として利用する
  • グラフィックデザイン、ビデオ、画像編集時のメディアデータの入出力先として利用する
  • 組織全体のユーザーにファイル共有する場合にFilestoreでコンテンツをホストし、そのデータへの共有アクセスを有効にする

データ保護の方法

Filestoreはゾーンに限定されているサービスであり、デフォルトでのゾーン間のデータレプリケーションには対応していません。そのため、サードパーティー製のバックアップソリューション等を利用して、定期的にデータのバックアップを取得する必要があります。GCPが認定しているパートナーソリューションの利用が推奨されています。

設計のポイント

Filestoreのパフォーマンスを最大限に利用するためには、ある程度の大きさのマシンタイプを選択する必要があり、具体的にはn1-standard-8(8 vCPU, 30 GB メモリ)以上が推奨されています。

また、LinuxのNFSマウントオプションはデフォルトの設定を利用するとよいでしょう。

Cloud Storage

Cloud_Storage_logo
最後に、オブジェクトストレージであるCloud Storageについてご紹介します。

Cloud Storageの特徴

Cloud Storageには複数のストレージクラスがあり、その全てをAPIで一元的に操作することが可能です。地理的に冗長化されており、最大で99.95%のSLAを提供しています。

また、データは保管時だけでなく転送時にも暗号化されており、WORM準拠のオプションや、KMS及びIAMとの統合が可能です。セキュリティの観点からも非常に安全なストレージサービスであると考えられます。

4種類のストレージクラス

4種類のストレージクラス
Cloud Storageには用途に合わせて4種類のストレージクラスが用意されており、データの保存期間やアクセス頻度に合わせて選択することができます。簡単にそれぞれのストレージクラスの利用シーンについて説明します。

Standardは頻繁にアクセスするデータを保管するのに適しています。例えばCDNのようにコンテンツをグローバルに提供したり、ビデオのトランスコーディングのようにある程度のスループットが求められるようなデータの保管に利用することができます。

Nearlineは目安として月に1度程度のアクセスがある場合に適しています。例えばバックアップデータ等があげられます。

Coldlineでは1年に1回程度しかアクセスしない、ほとんど触らないデータを保存するようなケースに適しています。画像のアーカイブや災害対策用のデータ等が該当します。

Archiveでは長期保存が必要なデータを保管するのに適しています。監査やコンプライアンス上の対応によりデータを長期的に保管しておく必要がある場合や、テープで保管していたデータの置き換えなどに利用することが想定されます。

また、具体的な各ストレージクラスの選択の指針については下記表を参考に考慮してください。
ストレージクラスの選定方法
例えば保有期間が長い場合でも、年に12回以上のアクセスがある場合はStandardを選択するのが良いでしょう。

ロケーションタイプ

ロケーションタイプ
Cloud Storageではデータの地理的な配置方法を選択することができます。Regionalでは、指定したリージョンにデータが保管され、単一リージョン内のゾーン間でデータレプリケーションが行われます。Dual-regionalではペアとなるリージョンにデータレプリケーションが行われ、地理的冗長性をもたせることが可能です。また、Multi-regionalでは選択した地域のリージョン内に分散してデータが保管されるため、非常に広域に渡って可用性を高めることができます。

データの配置方法

データの配置方法
Cloud Storageでは、ロケーションタイプに応じて上図のようにデータが配置されます。Multi-regioanlでは1つのオブジェクトが全てのリージョンにまたがって配置されるわけではないので注意が必要です。

設計のポイント

Cloud Storageでは、負荷が増加すると自動スケーリングが行われます。初期状態では、リクエストレートとして下記の上限値が設定されています。

  • 毎秒1000オブジェクトの書き込み
  • 毎秒5000オブジェクトの読み取り

リクエストの数が上限に近づくと数分で検知され、別のサーバーに負荷を分散しますが、急激にリクエストが増加することでレイテンシやエラーレートが一時的に上昇することがあります。そのため、リクエストレートは少しずつ増加させていくことが推奨されます。また、シーケンシャルな番号やタイムスタンプを名前として利用すると、同じサーバーに負荷が集中する場合があります。ハッシュ値を追加するなど、ランダムな値をファイル名の先頭やフォルダに付けることで回避することが可能です。

Cloud Storageのユースケース

Cloud_Storage_Usecase
Cloud Storageを利用した様々なユースケースについてご紹介します。

まずはコンテンツ配信です。Cloud Storageでは複数の地域に分散してコンテンツを提供する基盤として利用することが可能です。

分析と機械学習の分野においては、オブジェクトストレージでありながら高スループット、低レイテンシーを実現しており、分析ワークロードを容易に実行することが可能です。

非常に多いユースケースとしては、バックアップやアーカイブがあげられます。コスト効率の良いストレージであり、地理的な冗長性を担保した災害対策用途として活用することができます。

まとめ

この記事では、GCPで提供されているストレージサービスであるPersistent Disk、Filestore、Cloud Storageについてそれぞれの特徴とその活用シーンについてご紹介しました。

GCPでは様々な要件に対応できるように数多くのオプションが提供されています。各機能や設計のポイントを十分に理解し、コスト、パフォーマンス、可用性などの観点から、自身の環境に最適なストレージを選択することが非常に重要となります。



弊社トップゲートでは、 GCP 、または G Suite 導入をご検討をされているお客様へ「Google Meet で無料個別相談会」を実施いたします。導入前に懸念点を解決したい方、そもそも導入した方がいいのかをお聞きしたい方はお気軽にお申し込みください!

お申込みはこちら

記事を探す

GCP のメリットを最大限に活用しよう!

GCP・G Suite のご相談・
お見積り依頼はお気軽に
TEL.03-5840-8815
お問合せフォーム TEL.03-5840-8815