🎃

【入門】Cloud Storage とは

2024/10/08に公開

はじめに

こんにちは、クラウドエース 第二開発部 2024 年卒新卒の坂本です。

Google Cloud には多種多様なストレージサービスがありますが、その中でも特に代表的なものが Cloud Storage です。
しかし、Cloud Storage を初めて学ぶ方にとって、公式ドキュメントだけでは少し難しく感じることもあるかもしれません。
そこで本記事では、Cloud Storage の特徴、料金体系、使用方法について、初学者の方にもわかりやすいように解説していきます。
各セクションには該当の公式ドキュメントも添付してあるので、詳細について知りたい方は、そちらをご参照ください。

対象読者

  • クラウドや Google Cloud をこれから活用する方
  • Cloud Storage についてこれからキャッチアップする方
  • オブジェクトストレージについて知りたい方

取り扱わない内容

  • Cloud Storage の各機能の詳細な使用方法
  • Cloud Storage の具体的な料金

Cloud Storage とは

まず初めに、簡単に Cloud Storage の概要を説明しておきます。

Cloud Storage は、Google Cloud が提供するスケーラブルで耐久性・可用性が高く、セキュアなオブジェクトストレージサービスです。
テキストファイル、画像、動画、PDF など、あらゆる種類の非構造化データを保存できます。

特徴

次に、 概要で触れた Cloud Storage の特徴について解説します。

非構造化データを保存できるストレージサービス

一般的に、データは構造化データと非構造化データに分類されます。
構造化データとは、表形式に整理されたデータのことです。それに対し非構造化データとは、テキストファイル、画像、動画、PDF など、定義された構造を持たない多様なデータのことです。
Cloud Storage は、特に非構造化データの保存に適しています。
image

オブジェクトストレージ方式

Cloud Storage は、オブジェクトストレージというストレージ方式を採用しています。
オブジェクトとは、Cloud Storage に保存されるデータの単位です。
各オブジェクトは、データ本体と、メタデータ(ファイル名、サイズ、作成日時など)で構成されます。
また、全てのデータがオブジェクトとしてフラットに保存されるため、ファイルシステムのような階層構造はありません。

スケーラビリティが高い

Cloud Storage は優れたスケーラビリティを備えており、ユーザーが特別な設定をしなくても自動的にスケールします。
保存できるデータ量に制限はなく、保存したデータを必要に応じて何度でも取得できます。

可用性が高い

Cloud Storage は SLA によって、最大月間 99.95% 以上の可用性が保証されています(マルチリージョン/デュアルリージョン構成の場合)。
これは、非常に高い確率で必要な時にデータにアクセスできることを意味し、ビジネスの継続性をサポートします。
ただし、100% の可用性を保証するものではありませんので、予期せぬ事態に備えた対策も必要です。

耐久性が高い

Cloud Storage は、年間 99.999999999%(イレブンナイン)の耐久性を誇る設計です。
これは、1,000 万個のオブジェクトを保存すると、1 年間に 1 個未満のオブジェクトしか失われないことを意味します。
言い換えれば、データの損失や破損の可能性が極めて低いということです。

Cloud Storage は、データを複数のサーバーに冗長化して保存し、さらに消失訂正符号を用いることで、高い耐久性を実現しています。
仮に一部のサーバーに障害が発生した場合でも、他のサーバーからデータが復元されるため、データの損失を防ぐことができます。

デフォルトでデータの暗号化

Cloud Storage では、データがストレージに書き込まれる前に必ずサーバー側で暗号化されます。
また、暗号化に追加料金がかからないため、低コストかつ簡単にセキュアなファイル共有を実現することができます。

ストレージクラスによるコスト最適化

Cloud Storage では、ストレージクラスを設定することができます。
ストレージクラスは 4 種類存在し、アクセス頻度が低いデータには保存料金が低コストなクラスを、頻繁にアクセスするデータには読み取り料金が低コストなクラスを選択することで、コスト効率を最適化できます。

ただし、Standard 以外のストレージクラスには最小保存期間があります。
オブジェクトを決められた最小保存期間( X 日間)以内に削除すると、早期削除の追加料金が発生します。

各ストレージクラスの特徴、アクセス頻度の目安、最小保存期間は以下の通りです。

ストレージクラス 読み取り料金 保存料金 アクセス頻度の基準 最小保存期間
Archive 年に 1 回未満 365 日
Coldline 四半期に 1 回 90 日
Nearline 月に 1 回 30 日
Standard 上記以外 なし

オブジェクトのライフサイクル管理

Cloud Storage では、オブジェクトのライフサイクルを管理をすることができます。
オブジェクトの経過時間やバージョンに基づいてルールを設定することで、自動的にストレージクラスを変更したり、オブジェクトを削除したりすることができます。
これにより、不要なデータを保持するコストを削減し、必要なデータに適切なストレージクラスを適用できます。

例えば、金融機関では、顧客の取引データを一定期間保存することが法律で義務付けられています。
この場合、ライフサイクル管理機能を使用し、以下のようなルールを設定することで、法令遵守を自動化し、保存料金も削減することができます。

  • 一定期間経過後に、データを Archive クラスに変更する
  • さらに一定期間経過後にデータを自動的に削除する

料金体系

次に、Cloud Storage の料金体系について解説します。
Cloud Storage の料金体系は従量課金制になっており、大きく分けて 3 つの料金が発生します。

  • データ保存料金
  • データ処理料金
  • ネットワーク使用料金

データ保存料金

まず、データ保存料金についてです。
これは、言葉通りの意味で、保存しているデータ量に応じて発生する料金です。
以下の 2 つの条件によって、1GB あたりのデータ保存料金が決まります。

  • 保存されるロケーション

  • ストレージクラス

データ処理料金

次に、 データ処理料金についてです。
データ処理料金とは、Cloud Storage に保存されているデータに対して処理を行ったときに発生する料金です。
料金が発生する処理は、主に以下の 4 つです。

  • Cloud Storage への全ての操作で発生するオペレーション料金
  • 特定のストレージクラスに保存されているデータの読み取りで発生する読み取り料金
  • リージョン間のレプリケーション料金
  • Autoclass の料金

ネットワーク使用料金

最後に、ネットワーク使用料金についてです。
これも言葉通りの意味で、ストレージから読み取られたデータ量、または Google Cloud 内で移動したデータ量に応じて発生する料金です。

詳細な料金については公式ドキュメントをご参照ください。

ハンズオン

ここからは、簡単なハンズオンを通して Cloud Storage や、その使用方法について理解を深めていただければと思います。
今回は、 Cloud Storage で Web ページをホストしてみます。
このハンズオンのゴールは、Cloud Storage に保存したファイルの URL にアクセスすると Web ページが表示されるようにすることです。

前提条件

今回は、以下の条件を前提にハンズオンを進めていきます。

  • Google Cloud プロジェクト は作成済み
  • ユーザーアカウントに IAM ロール: ストレージ管理者(roles/storage.admin) が付与されている

1. バケットを作成する

バケットとは、データを入れる箱のことです。
Cloud Storage でデータを保存する際には必ずバケットを作成する必要があります。

  1. バケット一覧ページにアクセスし、上部の「作成」ボタンを押します。
    image

  2. バケット名を入力し、「続行」ボタンを押します。
    バケット名は全世界で一意な名前である必要があります。
    image

  3. データの保存場所の選択をします。
    今回は、ロケーションタイプ: Region でリージョン: asia-northeast1 を選択します。
    その後、「続行」ボタンを押します。
    image

  4. データのストレージクラスの選択をします。
    今回は、頻繁にアクセスされる Web ページ用のファイルを保存するため、「Standard」 を選択します。
    その後、「続行」ボタンを押します。
    image
    なお、ここで Autoclass を選択することで、前述した自動で最適なクラスに移行する Autoclass を使用することができます。

  5. オブジェクトへのアクセスを制御する方法を選択します。
    今回は、全世界に公開する Web ページを保存するため、「このバケットに対する公開アクセス禁止を適用する」のチェックを外します。
    その後、「続行」ボタンを押します。
    ※機密性の高いファイルなどを保存する際には、このチェックを外さないように気をつけましょう。
    image

  6. オブジェクトデータを保護する方法を選択します。
    今回は、データ保護のオプションは全てオフにします。
    その後、データ暗号化の部分はそのままで「作成」ボタンを押します。
    image

  7. このような画面になっていればバケットの作成は完了です。
    image

2. ファイルをアップロードする

  1. 次のような HTML ファイルをローカルで作成します。
    ファイル作成の手段は問いませんが、Windows ならメモ帳 macOS なら テキストエディットなどを使うとよいでしょう。

    index.html
     <html>
     <head>
        <meta charset="UTF-8">
        <title>Zenn Article Hands on</title>
     </head>
     <body>
        Hello World!
     </body>
     </html>
    
  2. 先ほど作成したバケットの詳細ページで、「アップロード」ボタンを押し、「ファイルをアップロード」を押します。
    image

  3. ファイル選択画面が表示されるので、手順 1 で作成した index.html ファイルを選択してアップロードします。
    image

  4. アップロードが開始され、 index.html がこのように表示されていればアップロード完了です。
    image

3. HTML ファイルにアクセスする

いよいよ、アップロードしたファイルにアクセスしてみます。
Cloud Storage にアップロードしたファイルには、https://storage.cloud.google.com/{バケット名}/index.html でアクセスすることができます。
URL をブラウザで入力して、 Hello World! と表示されていれば、 先ほどアップロードした index.html ファイルにアクセスできているということです。
これで、当初のゴールであった「Cloud Storage に保存したファイルの URL にアクセスすると Web ページが表示されるようにすること」を達成することができました。
image

おわりに

本記事では、 Google Cloud の代表的なストレージサービスである、Cloud Storage の特徴、料金体系や使用方法について解説しました。
本記事が、Cloud Storage のキャッチアップの一助になれば幸いです。
最後までご覧いただきありがとうございました。

Discussion