コンテンツに移動
Google Cloud

Cloud Storage におけるコスト最適化のベスト プラクティス

2019年10月3日
https://storage.googleapis.com/gweb-cloudblog-publish/images/GCP_cloudstorage.max-2600x2600.jpg
Google Cloud Japan Team

※この投稿は米国時間 2019 年 9 月 5 日に Google Cloud blog に投稿されたものの抄訳です。


上半期の売上げを精査しようとしている数十億ドル規模の複合企業に勤める会社員であれ、猫がピアノを弾く動画をアップロードしようとしている愛猫家であれ、そのデータを格納する場所が必要です。


この種の一般的なストレージの媒体として、Google Cloud Platform(GCP)の統合型オブジェクト ストアである Cloud Storage を利用しているお客様は、私たちが聞くかぎりでもたくさんいらっしゃいます。お客様に寄り添ってアドバイスを送る私たちテクニカル アカウント マネージャー(TAM)としては、さまざまな GCP サービスの API との緊密な連携というところから説明を始めるのが普通ですが、コストを下げて GCP から最大限の投資効果を引き出すにはどうすればよいかをアドバイスすることも、私たちの大事な仕事の 1 つです。


クラウドにオブジェクトを格納すること自体は簡単ですが、お客様のニーズに合わせて最も適切な保存方法を選ぶには、事前にちょっとした計画を立てる必要があります。無制限にスケーリングできるストレージ サービスが有する利点の 1 つは、無限に広がる屋根裏部屋を自宅に持っているのと同様に、本当なら処分しなければならないアイテム(オブジェクト)を入れておく箱(バケット)をいくつでも置いておけることです。とはいえ、そういったアイテムは、仕事のために必要なものであれ、いつか役立つかもしれないと思って持っているものであれ(たとえば、お気に入りの木製のヌンチャク)、時間の経過とともにコストを蓄積していきます。したがって、コストを下げるつもりなら、まずはビジネスにおけるオブジェクト / バケットの有用性の見きわめ方を確立する必要があります。さあ、ほうきとちりとりを手に入れて、早速掃除を始めましょう!


クラウド移行時にストレージをクリーンアップする

コストの最適化を検討する際には、考慮しなければならないことがいくつかあります。ポイントは、パフォーマンスに影響を及ぼさないことと、最適化の理由がコンプライアンス、法令、ビジネス価値のいずれであれ、将来のために保管しておかなければならないものを捨てないことです。データは今やビジネスに不可欠な項目のトップであり、短期的な保存だけでなく長期的なデータ分析のためにも、適切なストレージ クラスを使用する必要があります。ストレージ クラスは多数あり、コスト、耐久性、復元力はそれぞれ異なります。


クラウド アーキテクチャに関して言えば、あらゆるものに適用できる万能のアプローチなど存在しません。しかし、お客様と一緒に仕事をしていると、繰り返し現れる問題のパターンがあることに気づかされることも事実です。そのようなパターンから学んだ教訓は、画像を格納する場合でも、高度な機械学習モデルを構築する場合でも、あらゆる環境で応用できます。


Cloud Storage を使用するときにまず考えることは、「何にお金がかかるのか?」でしょう。こちらの料金ページはとても役に立ちますが、この投稿ではその先まで掘り下げます。私たちがお客様のために Cloud Storage の使い方を考えるときは、次のニーズに注目します。


  1. パフォーマンス

  2. 保存期間

  3. アクセス パターン

コストに影響を与える要素はほかにもたくさんありますが、本稿ではこの 3 つに関連する推奨事項に焦点を当てます。1 つずつ詳しく見ていきましょう。


保存期間において考慮すべきポイントと効果的なテクニック

データ タイプについて検討する際にまず考慮すべきことは、その保存期間です。「このオブジェクトには何の価値があるのか?」や「どれくらいの期間、価値が続くのか?」を自問自答することは、適切なライフサイクル ポリシーを決めるうえでとても役に立ちます。ライフサイクル ポリシーを決めれば、特定のオブジェクトやバケットにタグを付け、そのオブジェクトやバケット タイプのストレージ クラスを削除または変換するための自動ルールを作成できます。屋根裏部屋の整理整頓をシステマティックに行う執事がいる様子を思い浮かべてみてください。しかも、この執事はお金がかからず、逆にお金を節約してくれるのです。


私たちのお客様はライフサイクル ポリシーをさまざまな方法で活用し、成功を収めています。重要なのは法律上の証拠開示です。業種やデータ タイプによっては、法律で保存が義務づけられ、保存期間が定められています。Cloud Storage のライフサイクル ポリシーを使用して、コンプライアンスのために必要とされる期間を経過したら削除されるようオブジェクトにタグを付けておけば、いつどのデータを削除すべきかを覚えておかなくても、無駄にデータが残って余分なコストがかかることを防げます。また、Cloud Storage には誤ってデータを削除するリスクを最小限に抑えるバケット ロック機能もあります。金融取引業規制機構(FINRA)や証券取引委員会(SEC)、商品先物取引委員会(CFTC)などの規制を受ける場合、この機能は特に役に立ちます。バケット ロックは医療業界におけるデータ保存規制への対応にも有用です。


Cloud Storage の内部で、ストレージ クラスを自動変更するポリシーを設定することも可能です。これは、短期的には比較的頻繁にアクセスされるものの、長期的にはあまりアクセスされなくなるデータの場合に特に便利です。法的またはセキュリティ上の目的で、もしくは単純にビジネス価値という観点から残しておきたいデータを有する研究所などでは重宝するでしょう。実験終了後もしばらくは分析のために実験結果へのアクセスが続くかもしれませんが、長期的にはアクセス頻度は低下するからです。1 か月後にストレージ クラスを Nearline もしくは Coldline に切り替えるようポリシーを設定することは、長期的なデータ コストを削減するうえで優れた方法です。


アクセス パターンにおいて考慮すべきポイントと効果的なテクニック

低コストのストレージ クラスに切り替えることは効果的ですが、注意も必要です。長期保存向けのストレージは、アクセス頻度の低いオブジェクトの保存では確かに低コストですが、そうした「コールダー」ストレージに格納されたデータやメタデータに突然頻繁にアクセスしなければならなくなった場合は、余分なコストがかかります。また、特定のストレージ クラスからデータを移動させると、コストに影響が出ることもあります。たとえば、Nearline Storage クラスでの最小保存期間は 30 日であり、その間にデータに頻繁にアクセスしなければならなくなるケースを想定する場合は、Regional Storage クラスにデータのコピーを残しておくほうが、アクセス料が増えないため安上がりです。


コスト削減を長期的に目指すのであれば、データへのアクセスが長期的に必要かどうか、データを再利用するときにどの程度の頻度でアクセスすることになるかも考慮すべきです。たとえば、あなたは CFO として、クラウドへの出費を調べるために四半期決算書を見る立場にいるとしましょう。その情報が 3 か月に一度必要なだけなら、長期保存向けのストレージからデータを取得するコストについては気にする必要はないかもしれません。Regional Storage クラスに決算データを 1 年間保存しておくよりも、データ取得コストを払ったほうが安価だからです。長期保存用ストレージ クラスからのデータ取得コストは非常に高額になることがあるため、ストレージ クラスを決めるときには慎重に検討すべきです。コストの比較については料金ページを参考にしてください。


パフォーマンスにおいて考慮すべきポイントと効果的なテクニック

パフォーマンスについて考え、特定のユース ケースで最良のストレージ クラスは何かということを突き止めたいなら、「このデータはどこからアクセスされるのか?」という問いはとても重要です。アクセスがローカルかどうかは、コンテンツの読み書きのスピードに直接影響を与えるからです。たとえば、グローバルに利用される「ホット オブジェクト」(社員の勤怠管理アプリケーションのように頻繁にアクセスされるデータベース)は、同じオブジェクトを複数の場所に格納できるマルチリージョンのロケーションが適しています。エンドユーザーとコンテンツの距離が近づく可能性が高まり、全体的な可用性も向上するからです。ユーザーが地理的に広い範囲に分散しているゲーム アプリケーションの場合も、コンテンツとエンドユーザーの距離が近くなり、遅延が抑えられてより良いエクスペリエンスが得られます。また、最後に保存したファイルが複数のロケーションに分散されるため、1 か所で障害が起こっても、苦労して獲得したアイテムを失うことはなくなります。


ただし、マルチリージョンのロケーションはパフォーマンスと可用性を向上させる一方で料金もプレミアムになり、アプリケーションの設計によってはネットワーク下り料金が高くなることに注意しなければなりません。このことは、アプリケーションの設計段階で考慮すべき重要なポイントです。また、パフォーマンスの検討にあたっては、単一リージョンのロケーションも 1 つの選択肢になります。ロケーションはエンドユーザーに比較的近い場所が適しており、データを置くリージョンは選択可能で、そのリージョン内での冗長性も保証されます。チームが特定の地域で仕事をしており、比較的高い頻度でデータセットにアクセスしている場合は、このロケーション タイプを選ぶのが無難です。ほとんどのワークロードのニーズを適切に処理できることから、最もよく使われているストレージのロケーション タイプです。高速にアクセスでき、リージョン内での冗長性が保証され、料金もオブジェクト ストアとしては手ごろです。


以上のことからわかるように、バケットのように単純に見えるものでも、実際にはコストとパフォーマンスのバランスが異なるさまざまな選択肢が存在します。また、ニーズに合わせて自社のストレージを微調整する方法もたくさんあります。よく考え抜かれ、自動化されたそれらの方法により、スペースやコストを節約することができます。GCP では、最大限の効果を投資から引き出すための機能を多数提供していることに加え、近いうちにさらに多くの機能が追加される予定です。詳しくは GCP コストの最適化に関するこちらの Next '19 セッションをご覧ください。


- By Justin Lerma, Professional Services Technical Account Manager

投稿先