Google Cloud(旧称GCP)にはCloud Storageと呼ばれるストレージサービスがあります。
このサービスでは、膨大な量のデータを安全に保存することができ、必要な時にすぐにアクセスすることができます。
この記事では、Google Cloudが提供するCloud Storage(GCS)の基本を解説します。
Google Cloudを理解する上で必須な知識となりますので、一緒に学んでいきましょう。
Cloud Storageとは
Cloud Storageは、Google Cloudが提供するクラウド型のストレージサービスで、データを安全に、効率的に保存することができる仕組みを提供しています。
Cloud Storageはインターネット経由でアクセスできるため、データの保存や共有、バックアップを柔軟に行うことができます。
保存するファイルは「オブジェクト」と言う単位で保存することができ、動画や画像などのデータからテキストファイルなど、さまざまな形式のデータを保存することが可能です。
Cloud Storageを利用するメリット
クラウド型のストレージサービスが登場するまでは、ストレージの容量制限、ハードウェアの管理やメンテナンスにかかる時間とコスト、災害時などに対するバックアップ手順などさまざまな課題がありました。
Cloud Storageのようなクラウド型のストレージサービスでは、これらの課題を解消するために必要な条件を揃えてくれています。
容量は無制限、クラウドにお任せすることでメンテナンスが不要、災害に備えた複数リージョンに分散して保存される仕組みなど、従来のオンプレミスと呼ばれる時代に課題とされていた部分をCloud Storageでは解決しています。
Cloud Storageの特徴
ここからは、Cloud Storageを利用する上で押さえておきたい特徴を解説していきます。
耐久性と可用性
Cloud Storageの代表的な特徴として、99.999999999%(イレブンナイン)の年間耐久性を持っていることが挙げられます。イレブンナインの耐久性の場合、1兆個のファイルのうちわずか1つしか失われる可能性がないことを意味していて、非常に高い耐久性があることを示しています。
Cloud Storageでは、オブジェクトを2つ以上のアベイラビリティゾーンに配置するよう設計されていることも耐久性を実現する要素の一つです。
かかる費用は従量課金制
Cloud Storageは従量課金制を採用しており、「使用した分のみ」料金が発生します。
頻繁に利用するデータには「Standard」クラス、月に1度程度しかアクセスしないデータには「Nearline」クラス、さらに長期間保存が必要なデータには「Coldline」や「Archive」クラスを選ぶことで、コストを最適化できます。
また、Cloud Storageには、us-east1
、us-west1
、us-central1
リージョンを利用した場合とに、月間5GBまで無料利用枠が適用されます。
ストレージのクラスについてはこのあと別途解説します。
柔軟なアクセス方法を提供
Cloud Storageは、様々な方法でデータにアクセスできます。
ブラウザでの操作を利用すれば視覚的に操作できるため、初心者でも比較的簡単にデータの管理が可能です。
Google Cloud CLIやクライアントライブラリ、REST APIを利用すれば、自動化やプログラムによるデータの管理も可能になります。
例として、Pythonのクライアントライブラリを使用すれば、数行のコードでデータのアップロード、ダウンロードを行えます。
安全なデータの取り扱い
Cloud Storageでは、デフォルトで保存されるすべてのデータが暗号化される仕組みになっているため、安全にデータを取り扱うことができます。
また、IAM(Identity and Access Management)を活用することで、特定のユーザー、サービスのみがデータにアクセスするように設定することも可能です。
誤ってデータを削除してしまった場合などに備え、復元可能な期間がデフォルトで7日間設けられるため、削除してしまったデータを復元することもできます。
バケットとは
Cloud Storageでは、「バケット」というデータを保存するための基本的な単位があります。
その名の通り、データを入れておくバケツのようなもので、すべてのデータ(オブジェクト)はこのバケットの中に保存されます。
バケットの作成数に上限はなく、必要に応じて必要な分のバケットを作成することができます。
バケットの命名規則
バケット名は世界中で一意(他と被らない)よう作成する必要があります。
バケット名に使用できるのは、英小文字、数字、ハイフン(-
)、アンダースコア(_
)、ドット(.
)のみ使用可能です。
また、バケット名の長さについても制限があり、3文字以上、63文字以下にしなければいけません。
以下にバケット名の例を記載します。
# バケット名の例
project-a-data-storage
backup-2024-logs
my-app-data-20241124
利用不可なバケット名の例は以下です。
# 大文字は使用不可
Project-A-Data-Storage
# googleという文字列は使用不可
project-google-storage
# スペースは含めない
project a data storage
バケットのロケーション
Cloud Storageでは、バケット作成時にどの地域にデータを保存するかを選択することができます。
バケットのロケーションとは、データが物理的にどのデータセンターに保存されるのかを意味します。
ロケーションのタイプには、「リージョン」、「デュアルリージョン」、「マルチリージョン」の3つがあり、選択するロケーションタイプによって料金が異なるため、どのような構成を選択するかは検討することが必要です。
リージョン
単一の特定の地域にデータを保存することを意味します。
東京、台湾、香港などアジア地域はもちろん、北アメリカやアフリカなど世界中から選択することができます。
デュアルリージョン
東京と大阪リージョンなど、2つのリージョンにデータを分散して保存する仕組みです。
データが同時に2つの異なるリージョンに保存されるため、可用性と耐久性がリージョンを選択した時よりも向上します。
マルチリージョン
マルチリージョンでは、ロケーションをアジア、ヨーロッパ、アメリカから選択することができます。
指定したロケーションに含まれる複数のリージョンにデータが保存される仕組みです。
ロケーションの中から、具体的にどのリージョンにデータが保存されるのかはGoogleが自動的に判断するため、ユーザーからは指定できません。
ストレージクラス
データのアクセス頻度や保存期間に応じて、コストを最適化するためのオプションがストレージクラスです。
頻繁にアクセスが必要なもの、そうでないものによってストレージクラスを使い分けることで、費用を抑えることができます。
ストレージクラスには以下の4種類があります。
Standard
頻繁にアクセスされるデータ、高速なデータ処理が必要な場合に向いているのがStandardストレージです。
具体的には、Webアプリケーションで使用する画像の保存や、ログデータの収集や分析などアクセス頻度が高い用途に適しています。
クラウド内の他のリソース(Compute EngineやGKE)と同じリージョンで利用することで、リソースとバケット間の転送料金は無料となり、コスト削減にも繋げられます。
2024年11月現在、東京リージョンでは月間1GBあたり0.023$のストレージ料金が発生します。
Nearline
Nearlineストレージは、月次のバックアップや災害復旧用のデータなど、頻繁にはアクセスしないデータに適したストレージクラスです。
月に1回程度のアクセスを想定しており、ストレージ料金がStandardよりも低く、月間1GBあたり0.016$に設定されています(東京リージョン)。ただし、データを読み取る際には追加の費用が発生するため、アクセス頻度が低いデータに最適です。
Coldline
Coldlineストレージは、保存コストを抑えつつ、高い耐久性を維持したいという場合に最適です。
四半期に1回程度のアクセスを想定していて、ストレージ料金がNearlineストレージよりもさらに低く抑えられています。(月1GB/0.006$)
その一方で、データアクセス時のコストが高く、保存期間も最低90日間が必要になるため、アクセス頻度が非常に低い過去のアーカイブデータなどに向いています。
Archive
Archiveストレージは、Cloud Storageの中で最も低コストで高耐久性のストレージクラスです。主に、1年間に1回未満のアクセスが想定されるアーカイブデータなどの保存に適しています。
他社のクラウドストレージサービスで同等のクラスを選択した場合、データへのアクセスに数時間、数日間かかる場合がありますが、Cloud Storageで即時アクセスが可能です。
ただし、データへのアクセス、操作料金が各クラスで最も高く設定されており、保存期間も最低365日必要です。
このようなことから、頻繁にアクセスするデータには向かず、長期保存に特化した設計になっています。
まとめ
この記事では、Google CloudのストレージサービスであるCloud Storageについて解説しました。
Cloud Storageは、ストレージクラスやロケーションの選択肢を活用することで、コストを最適化しつつ、必要な性能や可用性を確保できます。
Cloud Storageには他にもいろいろな特徴があるため、この記事で基本を理解し、公式ドキュメントなどを活用しながらさらなる理解を深めていただければと思います。
参考記事
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.06.25
初心者向け!CloudFunctionで簡単アプリをデプロイしよう
CloudFunctionは、一言で言えば「サーバーレスコンピューティングサービス」です。AWSのLambdaに相当するサービスで、インフラの管理を気にせずにコードを実行することができます。
- GCP
2024.02.29
データエンジニアになるためProfessional Data Engineer取得はあり?
今回は、そんなProfessional Data Engineerについて解説します。試験概要はもちろん、初学者の方が取得するメリットや勉強方法についても紹介しているので、ぜひ参考にしてください。
- エンジニア
- 資格
- GCP
2024.08.26
Azureサブスクリプションの理解とAWS・Google Cloudの管理単位の違い
この記事は、Azure、AWS、Google Cloudといった主要なクラウドプラットフォームを利用する方々、特にこれからクラウドを導入しようとしている企業のIT担当者やエンジニアを対象にしています。
- AWS
- GCP
- Azure