「Google Cloud Storageってよく聞くけど、いまいちよく分からない」
「Google Cloud Storageを活用することでどういうメリットがあるの?」
昨今Google DriveやBoxなどクラウド上にデータを保管できるサービスが、ビジネスシーンにおいても様々な用途で有効活用されています。
Google Cloud StorageはGoogle Driveなどと比べるとよりプログラマブルなサービスで、一時的に資料などのデータを保管しておくというよりはシステムに組み込んで大容量のデータを堅牢に保管し、プログラムなどで自在に保管したデータを取得して活用するといった利用方法に向いているサービスです。本記事ではGoogle Cloud Storageについてサービス概要と活用のメリットをご紹介します。
Google Cloud Storageとは
Google Cloud Storageは、Google Cloudが提供するオブジェクトストレージサービスで、Google Cloud上でプロジェクトを作成することで、すぐに利用し始めることが可能です。
リソースの階層構造は、下記のように、Google Cloudの最上位に組織が存在し、その配下に各プロジェクト、その下にCloud Storageのバケットというフォルダのような概念があり、バケットの中にdog.jpgのような個々のファイルオブジェクトが存在する、という構造になっています。
Google Cloud Storageのストレージサービスの特徴としては、容量無制限、低価格、堅牢性という点が特徴です。
また、Google Cloud Storageのオブジェクト操作には以下の方法が利用可能です。
・Google Cloudのコンソール画面
・Google Cloud CLI(コマンドラインでの操作)
・クライアントライブラリ(C#、Go、Java、Node.js、PHP、Python、Rubyなどのプログラム言語からの操作)
・REST API(JSON、XMLのAPI)
Google Cloudを利用してクラウド上で開発を行う場合、ストレージサービスの候補として真っ先に名前を挙げられるので、名前だけは聞いたことがあるという方も多いのではないでしょうか。
AWSだとAmazon S3がGoogle Cloud Storageと類似のオブジェクトストレージサービスにあたります。
Google Cloud Storageの堅牢性とセキュリティ
ストレージサービスの堅牢性とは、保管したデータが損失や破損からどれだけ保護されているかという指標になります。
Google Cloud Storageの堅牢性は99.999999999%(イレブンナイン!)の年間耐久性を実現するように設計されており、実に10億個ものオブジェクトが100年間で1つも失われないということを意味しています。
ハードとしての耐久性の他に、人為的なエラーによる損失を防ぐために、オブジェクトのバージョニングといった機能も提供されています。この機能は、オンにすることで、オブジェクトを削除してもライフサイクル管理ポリシーに準じて削除されたオブジェクトを一定期間保持するという仕組みです。
その他にもIAMによる、バケットやオブジェクト単位でのアクセス制御や、データの暗号化、特定のバケットのバケットロック機能などにより、データの流出や、誤って削除してしまうといったリスクを排除できる、また組織のメンバーに柔軟にデータへのアクセス権を付与できるという点も強みです。
Google Cloud Storageのバケットのロケーションについて
バケットを作成する時、物理的にオブジェクトデータが存在する地理的位置、ロケーションを永続的に設定します。
ロケーションタイプは、東京リージョンなど特定のリージョンか、東京と大阪などのデュアルリージョン、米国などの2つ以上の場所を含む広いエリアのマルチリージョンの3タイプから選択します。
いずれのタイプでも、少なくとも2つのゾーンに渡り冗長化されて保存されます。
特徴として、リージョンは広域の障害や災害発生時に最も影響を受けやすいが、ストレージ料金は最安です。
デュアルリージョンは障害に強く、ローレイテンシでパフォーマンスも高いが、ストレージ料金が最高です。
マルチリージョンは障害に強いが、ハイレイテンシで読み取りのパフォーマンスが少し落ちます、ストレージ料金はリージョンとデュアルリージョンの中間です。
またバケットのロケーションは、Compute Engineなどのコンピューティングリソースと同じロケーションに配置すると、パフォーマンスが向上するため、この点も留意して決めるのが良いでしょう。
Google Cloud Storageのバケットのストレージクラスについて
バケット及びオブジェクトにはストレージクラスを設定できます。
バケットにデフォルトのストレージクラスを設定した場合は、そのバケットに新たに保管するオブジェクトにはバケットのストレージクラスが適用されます。
全てのストレージクラスで、容量無制限で無制限のアクセスが可能です。またロケーションに関わらずどこからでもアクセス可能です。ストレージクラスで異なる点は、主に料金、可用性、最小保存期間になります。
・Standardストレージ(最小保存期間:なし)
最も可用性が高く、頻繁にアクセスされるデータや短時間だけ保存されるデータに最適です。
・Nearlineストレージ(最小保存期間:30日)
月に1回程度のアクセスが見込まれるデータの場合は、StandardよりもNearlineの方がストレージコストが抑えられるため、
例えば月に1回分析で使用するようなデータに最適です。
・Coldlineストレージ(最小保存期間:90日)
アクセス頻度の低いデータの保存に適した低コストなストレージクラスです。四半期に1回程度のアクセスが見込まれるデータの場合に最適です。
・Archiveストレージ(最小保存期間:365日)
その名の通り、データアーカイブやオンラインバックアップ用のデータに向いていて、1年に1回程度のアクセスが見込まれるデータに最適です。Archiveストレージの特徴として、データアクセスにかかる費用が高いものの、低レイテンシのアクセスが可能なため、障害復旧などの速度が重要な場面でも十分にワークします。
Google Cloud Storageの活用例
・静的Webサイトのホスティング
Google Cloud Storageに配置したHTMLファイルにパブリック公開の設定を行うことで、https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]というURLが払い出されて、Webサイトのホスティングを行うことが可能です。
また、Cloud Load Balancingというサービスと組み合わせることで、カスタムドメイン名とTLS証明書を付与してサイトの公開もできます。
・BigQueryとの連携、使い分け
Cloud Storageに配置したCSVやJSONなどのデータはBigQueryのテーブルにロードすることが可能です。
またBigQueryの外部テーブル機能により、Cloud Storageのデータ自体をテーブルとみなしてクエリを実行することもできます。
BigQueryをデータレイクとして活用する場合、最も多いのが、構造化データはBigQueryに保管して、非構造化データはCloud Storageに保管するという使い分けです。
(構造化データ:数値やテキスト、非構造化データ:画像、音楽、動画など)
構造化データは最初からBigQueryに保管しておくことで、分析の必要が生じた場合などに、Cloud Storageから移行しなくて済みます。
まとめ
本記事ではGoogle Cloud Storageについて概要と活用するメリットについて解説しました。
ただのストレージサービスというよりも、Google Drive等と比べて非常にカスタマイズ要素が多く、冒頭でプログラマブルなサービスという表現を使ったのはそのためです。柔軟なアクセス制御と用途に応じたストレージクラスの設定により要件に最適な構成を作ることができる点はとてもストレージサービスとして魅力的です。
株式会社KUIXではただ導入・開発するだけでなく、導入後の利活用を実現することに着眼した、GCP・Azure・AWS、データレイク・DWH・データマート、BIツールの選定・導入からレポート作成、運用、啓蒙・展開までトータルのコンサルテーションなどを行っています。お困りの方は、ぜひお気軽にご連絡ください!お問い合わせはこちらから