1 Google Cloud Platform (GCP)を使ってみよう GCPの基礎知識

google_cloud

この記事では、クラウドサービス大手3社のうちの1つである、Google Cloud Platform (GCP)について解説する連載の1記事目になります。

近年、クラウドサービスの利用は年々活発になっており、個人開発から企業まであらゆる人が利用するスタンダード技術になりつつあります。

この記事では、日曜プログラマである私が、個人開発者向けにGCPの基礎知識を薄く広く解説していきます。

Google Cloud とは

Googleは、世界最大の検索エンジン、オンライン広告、クラウドコンピューティング、ソフトウェア、ハードウェア関連の事業を持つインターネット起業です。

主要なサービスとしては、Google検索やGmail、Google Map、Youtubeなどの大規模サービスが多数あり、20年以上運営してきた実績があります。

これらのサービスでは毎日大量のトラフィックが生じていますが、Googleでは、それをさばくために最適なインフラを構築してきました。

Goolge Cloudは、Googleが長年自社サービスを運用する上で高めてきたインフラを他の企業やエンジニアが利用できるようにしたクラウドサービスと言えます。

クラウドサービスでは、システムを構築する際に必要となるサーバーなどのハードウェアや、セキュリティやサービスなどのソフトウェアなどをインターネット経由で利用できるサービスのことです。

よって、Google Photo やSpread Sheet などもGoogleの提供するクラウドサービスの1つということになります。

クラウドと言うと、イメージしにくいですが、非常に身近なものだということがわかるかと思います。

GCPの特徴

Google Cloud では、コンピューティングやストレージ、データベース、データ分析、機械学習など様々なサービスを利用できます。

この章では、GCPの特徴をざっくりと解説していきます。

豊富なサービス

1つ目の特徴はサービスの豊富さです。

ここは正直、AWSやAzureも

私が触ったことのあるツールは、ごくごく一部にすぎず、全てを紹介することは到底不可能です。

上記のサービスに加えて100種類以上のツールが揃っており、やりたいことの大半はGCPで出来ると考えて差し支えないでしょう。

今後の記事で各サービスの概要や使い方については解説する予定ですので、気長にお待ちください!

無料のまま使える

GCP最大の魅力は、この無料枠の存在だと思っています。

AWSやAzureと比較するとシェアで劣るGCPですが、AWSとAzureは会員登録時の無料クレジットがあるものの、一定期間後は、サービスの利用に支払いが必要です。

一方で、GCPでは月々の無料枠というものが存在しており、限られたサービスではあるものの、月々一定量(例えばマシン稼働時間や一定量のクエリ)は課金されずに利用が可能です。

そのため、サービス稼働前のテスト運用や、個人的な勉強に使う分には課金せずに利用できると言うわけです。

無料枠: すべての Google Cloud ユーザーが、月々の使用量上限内で Compute Engine、Cloud Storage、BigQuery などの厳選された Google Cloud プロダクトを無料で利用できます。無料枠の制限の範囲内であれば、リソースは、無料トライアルのクレジットまたはトライアル終了後に Cloud 請求先アカウントのお支払い方法に対して課金されることはありません。

https://cloud.google.com/free/docs/gcp-free-tier/?hl=ja

例えば、私の使っているサービスでは以下のような無料枠が存在します。

Cloud Functions

こちらは、クラウド上に関数を定義しておいて、自分の好きなタイミング(時刻指定やユーザーがページを踏んだら…など色々できます)で実行させることのできるサービスですが、1か月で200万回の呼び出しが無料で設定されています。

App Engine

AppEngineは、1日あたり28時間の無料枠が存在しており、稼働のみであれば1か月、1年中フルに使っていても課金はされません。

他のサービスと連携したり、内部処理が走る場合はこの限りではありませんが、個人がお試しで使う場合に非常に助かるシステムとなっています。

運用レベルを選べる

次のメリットは運用の柔軟性です。

こちらはGCPの各サービスがフルマネージドサービスであることが大きな理由です。

フルマネージドサービスとは以下の様な意味です。

フルマネージドサービスとは? 顧客ごとに個別に運用されているアプリケーションまで含めた24時間365日のシステム監視や障害発生時の復旧作業などを提供するサービスのこと。 一度サービスの利用を開始すれば、顧客が当該システムに関して直接何かをする必要がない状態を実現するという意味。

GCPでは、そのマネージド具合をサービスで選択できるのも大きな特徴です。

一般的に、運用の自由度が上がれば運用の負担は増えていきます。

GCPでも同じで、運用の自由度(運用の負担)順に主なサービスを並べると下記の様になります。

  • Compute Engine(いわゆるクラウドマシン)
  • Google Kubernetes Engine(コンテナ)
  • Cloud Run
  • App Engine(PaaS)
  • Cloud Functions(FaaS)

上記のように実施したい内容によってサービスを使い分けることで、どこまで運用を任せるのか選択することが可能です。

グローバルインフラ

GCPでは各サービスを提供するためのデータセンターを世界各地に配置しています。

データセンターは地理的にエリアに分類されており、それをリージョンと言います。

そのリージョンをより細分化したものをゾーンと呼びます。

Googleでは複数のリージョン、エリアにデータを保存しサービスを提供しているため、どこか1つのリージョンで障害が生じたとしても他のリージョンやエリアでサービスを継続することが可能となっています。

これが自分のサービスをする上でどう影響してくるのかと言われると、サービスの可用性に関わってきます。

ローカル環境で、何かする場合、PCの故障により喪失するリスクを常に背負っていますが、GCPであれば実質気にする必要がないということになります。

https://cloud.google.com/blog/ja/products/networking/understanding-google-cloud-network-edge-points

GCPの主なサービス

これまでにも少しだけGCPのサービスについて言及してきましたが、改めてGCPのサービスを紹介します。

Google Cloud では、100種類以上のサービスが提供されていますが、個人で触るにあたってこれは知っておいた方がよい。というサービスを独断と偏見で選びました。

Cloud Storage

1つ目は、Cloud Storageです。

このサービスでは、ストレージとあるように、ファイルを保存することが出来るサービスです。

保存容量に制限はなく(支払い額はかさみますが)データをダウンロードすることも可能です。

Webサイトで使用する静的なファイル(画像など)をホスティングしたり、ログの保存などの用途に利用できます。

基本的にはデータベースに入れられない情報は、このCloud Storageに入れると考えてもらって大丈夫です。

Cloud SQL

Cloud SQLはGoogle Cloud 上で稼働するSQLサーバーです。

MySQL、PostgresSQL、SQL Server を運用することができ、(個人であれば)ローカル、企業であればオンプレミス環境で使っているデータベースをそのまま移行することが可能です。

もちろん、バックアップやレプリケーション、暗号化、容量増加など簡単に実施できるのがメリットです。

Cloud Functions

Cloud Functions はサーバー管理することなく、関数(処理)を自動で実行できるサービスです。

例えば、Twitter Bot やスクレイピングツールなどがイメージしやすいでしょうか。

そのほかにも、Webサービスと連携することで、サイト上に何かしらのイベントが起きた際に、登録しておいた関数を実行する機能です。

Vertex AI

Vertex AI はデータサイエンスと機械学習のためのプラットフォームです。

統一されたAPI、クライアント、ライブラリ、ユーザーインターフェースにGoogle Cloud が提供している機械学習関連サービスであるAuto MLとAI Platform を統合しています。

Vertex AI では Cloud Storage に画像や動画、テキスト、表形式などあらゆるデータをプールしておくことで、簡単に機械学習を行うことができます。

Google Cloud で遊んでみよう

以上、ざっとGCPについて解説しました。

非常にたくさんのサービスがあるGCPですが、少しは全体像が見えてきたでしょうか。

次の記事からは、GCPの各サービスをより詳しく見ていきたいと思います!