GCPの良さって何？ ~Google Cloud Platformの主要サービスと他サービスとの比較~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/4f78bc15-3413-1e74-b5e4-7b8fb8a614ec.png)


##はじめに
先日[GCPのプロフェッショナル資格に合格し記事も書きました](https://qiita.com/Ryo2021/items/85fd09377d28ab004b87 "【2021年末最新版】GCP Professional Cloud Architect 合格体験記")のでこれからGCPを触る方、概要だけ知りたい初心者の方向けにGCPの主要サービスまとめと他のクラウドサービスとの比較を作成しました。
GCPには非常に多くのサービスがありますがこちらを見ていただければ基本的なサービス、および売りにしているサービスを理解できなぜGCPを選ぶのか、選ばれないのかを把握できるようにしています。
なおクラウドサービスそのものの解説については[「クラウドサービスとは ~若手クラウドエンジニアが語るクラウド基礎の基礎~」](https://qiita.com/Ryo2021/items/4e5073cfdfa3ab4cf526 "クラウドサービスとは ~若手クラウドエンジニアが語るクラウド基礎の基礎~")にまとめておりますのでこちらも併せてご覧ください！

##Google Cloud Platform(GCP)とは
GCPとはGoogleが提供するクラウドサービス群の総称でありAmazonのAmazon Web Service、MicrosoftのAzureと並んで世界の三大クラウドサービスの1つです。
GCP最大の顧客はGoogleでありGmail、Google Earth、Youtubeなどの代表的なサービスはすべてGCP上で稼働し、さらにサービスを運用する中で得た知見をクラウドサービスの改善に役立てています。

###1. GCPの歴史
<code>GCP年表</code>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/2f577156-ac8c-1fb6-8499-d1b2759596e8.png)
>資料出所：[GCP誕生から10年、その進化の歴史を振り返る](https://ascii.jp/elem/000/001/757/1757103/ "GCP誕生から10年、その進化の歴史を振り返る")

####GCPターニングポイント
GCPはAWSよりも後発でしたがいくつかのターニングポイントを経て日本でもシェアを伸ばしつつあり、中でも機械学習、ビッグデータ解析のサービスは最大の長所となっています。

1. **Google App Engine サービス開始**<br>のちのGCPのメインサービスとなるGAEがサービス開始。当時はAWSがやっと認知され始めた時期でGAEも知名度は低かった。加えてPaaSサービスだったため制約が多く導入のハードルが高かったといわれている。
1. **GCP サービス開始**<br>既存のクラウドサービスを統合する形でGCPがサービスを開始。
1. **Tensorflow登場**<br>Google独自の機械学習ライブラリが発表され人工知能分野の注目が一層高まった。TensorflowはGoogleが学習させた機械学習モデルを無料で公開するサービスで囲碁AIのAlphaGoや自動翻訳モデルの構築に導入された。
1. **東京リージョンリリース**<br>クラウドサービスはリージョンと呼ばれるデータセンター群によって可用性、冗長構成が保たれており2016年に東京リージョンが開始したことで日本の大規模システムでも高速通信、冗長化が可能となった。これにより多くの日系企業でクラウドサービスが普及していくこととなる。



###2. 基礎的なサービス
|名称|概要  |利用ケース・特徴|
|:-:|---|---|
|**Google Compute Engine**|コンピューティングサービス<br>IaaS                |・OS、メモリ、CPUなどの性能を指定して仮想マシン（VM）を起動し利用できる<br>・汎用性が極めて高く他のDBやストレージサービスもその気になればGCEのみで実装できる<br>・GCEの方がAWSのEC2よりも費用が安い|
|**Google App Engine**    |コンピューティングサービス<br>環境自動構築<br>PaaS|・コンピューティングやDBなど多くのサービスがセットになった環境テンプレートを提供するサービス<br>・開発者はメインとなるアプリプログラムを実装するだけであとはクラウド側にお任せでデプロイできる<br>・GAEはGCPのサービスの中でも最も長い歴史がありGCPが強みとしているサービス|
|**Cloud Functions**      |サーバレス<br>プログラム自動実行<br>FaaS          |・関数を作成しイベントベースやスケジュールベースで実行できるサービス<br>・例えば「バッチが失敗したら実行」「毎週木曜8時に実行」などのケース<br>・OSやミドルウェアなどはすべてクラウド側で管理されるため開発者はコードや実行設定をするのみ|
|**Cloud Storage**        |ストレージサービス                        |・非構造化データ（画像やCSVなど）の保存に使われる<br>・従量課金だがデータ容量に制限はなく非常に高い可用性、耐久性を誇る<br>・データ分析用のストレージとして使われることが多い（Azure BLOBストレージ）|
|**Cloud SQL**            |リレーショナルデータベース                |・MySQLなどのRDBを提供するフルマネージドサービス<br>・多くのサービスが派生しており工夫して選択することで様々なシーンで採用される<br>・GCPではOracleを採用できないためAWSと比較して使いにくいといわれている|


##GCPの強みであるサービス
###1. Big Query
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/ee514a1e-8ffb-7d0c-4057-d9495709da24.png)
クラウドサービスは各社に特徴がありますが、GCPの最大の強みはデータ解析サービスです。Big Dataの並列高速処理サービスであるBig Queryは世界トップクラスの高速処理を低価格で提供しており多くのデータ分析環境で利用されています。その性能はけた違いで「120億行の正規表現検索が5秒で完了する」レベルの検索性能といわれています。このレベルのシステムを自社で構築できる企業はほぼ存在せずGCPを導入する大きなメリットとなっています。

<code>例えばAWSでは複数のサービスを組み合わせる必要がある</code>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/2d8c1ee6-3456-c1d4-4b55-d034c28f11ab.png)

<code>Big Queryの高速処理を実現する2つの技術</code>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/14fa3a9f-d29b-c3ea-8b2e-552a88f871a7.png)
>資料出所：[グーグルのBigQuery、高速処理の仕組みは「カラム型データストア」と「ツリー構造」。解説文書が公開](https://www.publickey1.jp/blog/12/bigquery_1.html "グーグルのBigQuery、高速処理の仕組みは「カラム型データストア」と「ツリー構造」。解説文書が公開")

**Big Queryまとめ**

+ 独自の構造を持っておりSQLベースでの高速処理が可能なGCPの目玉サービス
+ 性能が上がると金がかかるというビッグデータ解析の常識を覆す圧倒的な安さ
+ フルマネージドサービスなのでインフラ側の保守は全く気にしなくて良い
+ 他のクラウドサービスやオンプレ環境からの接続もできるので「データ分析部分のみGCP」という使い方も多い



###2. Bigtable
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/a1b85b9b-ef11-5201-c8cc-122551c5e451.png)
Bigtableは超大容量向けのNoSQLデータベースサービスです。ビッグデータを扱う点ではBig Queryと同じですが、大容量・NoSQL・データベースである（並列分散処理技術ではない）という点で異なるサービスとなっています。こちらもYoutubeやGoogle Mapなど主要サービスのほとんどに使用されており巨大な非構造化データを高速で検索できるという強みがります。

<code>SQLとNoSQLの比較</code>

|SQL  |NoSQL  |
|---|---|
|・構造化データ（行と列の定義が明確）<br>・RDBが主流でDBMSによってテーブルを管理<br>・厳密な処理が可能なので勘定系DBやユーザーの個人情報などに使われる<br>・処理は遅い|・非構造化データ（行と列の定義がない）<br>・CSVやJSONなど様々な形式でデータを保存<br>・大容量で複雑なデータを扱うことが多くSNSの投稿やデータ解析に用いられる<br>・高速でスケーラブルな処理が可能|

**Bigtableまとめ**

+ ペタバイトクラスの超大容量向けNoSQLデータベースサービス
+ 高い可用性とセキュリティ、処理速度を誇る
+ スケーラブルなため容量が増えても処理速度がほとんど落ちない
+ NoSQLなので厳密な処理や複雑なSQLクエリ処理は不可能


###3. Spanner
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/5f3ecc7d-c7d2-6681-fe3e-6cd47e56eaf6.png)
SpannerはマルチRDBと呼ばれる新しい種類のDBサービスです。その最大の特徴はSQL（RDB）とNoSQLの長所を両方備えておりRDBであるにもかかわらず水平スケーリングが可能となっている点です。すなわちSQLによる定義更新、厳密な更新処理、トランザクション管理が可能なうえに数百ノードレベルでの水平分散処理が可能という次世代のサービスとなっています。

<code>垂直スケーリングと水平スケーリング</code>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/f8b12b83-7001-2c9e-3395-8103379a115e.png)

<code>みんなの銀行という新銀行が国内で初めて勘定系にパブリッククラウドを採用し、Spannerを導入したことで話題となった</code>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/d3de7bb9-fac3-7eba-bb0f-928fb7eb5778.png)
>資料出所：[ふくおかFGのみんなの銀行が事業発表--勘定系は国内初のパブリッククラウド採用](https://japan.zdnet.com/article/35165061/ "ふくおかFGのみんなの銀行が事業発表--勘定系は国内初のパブリッククラウド採用")

**Spannerまとめ**

+ SQLとNoSQLのいいとこどりDBで、厳密な処理を水平スケーリングで無駄なく行える
+ 銀行勘定系システムのようにミスやダウンタイムが許されないケースで最も力を発揮する
+ 特殊な制約があり既存のDBの移行は困難（ゼロから作る新サービスには向いている）
+ 他のDBと比較して費用が高い（最低でも8万/月）

###4. TensorFlow, Cloud ML Engine
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/2f4c03af-2138-856a-9ef2-11e18a485976.png)　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/1c8517f2-7f8c-5701-c647-a73a57cc6125.png)
TensorFlowはGoogleが開発した機械学習・深層学習用Pythonライブラリのことです。またこれを用いて作成した機械学習モデルの学習と構築を実現するのがCloud ML Engineです。開発者はTensorFlowを用いることで高度で複雑なモデルを簡単に構築することができ、さらにそれをハイパフォーマンスなGCP上で安全に運用することができるという画期的なサービスとなっています。

<code>一般的な機械学習の仕組みとGCPの役割</code>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/37a842bc-e1fc-d13f-520f-f824991e653f.png)

**TensorFlow, Cloud ML Engineまとめ**

+ TensorFlowは機械学習モデル構築のための強力なライブラリだが動かすには大容量データと高性能なマシンが必須
+ Cloud ML Engineはデータを保存しライブラリを動かすための環境をフルマネージド（GCPに環境管理をすべてお任せ）で提供する
+ 分析者は性能を気にせず分析に専念し、使った分だけ料金を払えばよい
+ 他にも多くの機械学習用サービスがあり他のクラウドサービスにはない独自性を誇っている

##他サービスとの比較

|クラウド|強み  |弱み  |
|:-:|---|---|
|**GCP**             |・Googleのサービスで培った経験が蓄積されている<br>・ビッグデータ処理サービスが非常に強力<br>・管理画面がGUI化されサービスもパッケージ化されているので使いやすい|・いくつかのサービスでプログラミング言語のサポートが弱い<br>・Oracleなどのライセンス商品が少ない（既存サービス移行が難しい）<br>・サービス独自の制約が多い、パッケージ化されていて逆に使いにくい
|**AWS**             |・シェアNo.1で導入実績が豊富（一番大事！！）<br>・日本語でも文献が多く言語的な不便さがない<br>・細かい設定変更やシンプルな動作が売りで一番エンジニア目線である|・費用面で他のクラウドが有利（他社は後発のため値段を下げてくる）<br>・BigQueryのような目玉となるサービスがあまりない<br>・サービスがパッケージ化されていないので割と専門知識が必要|
|**Azure**           |・OfficeソフトやADなどMSのソフトウェアとの親和性が高い<br>・オンプレミスサーバとの連携・移行がしやすい<br>・金融業界や電力業界など特定の業界に強い|・VMの選択肢が少ない、起動も遅い<br>・コミュニティが活発ではないのでエラーの調査などで苦戦する<br>・障害が多い！（経験談）|
|**マルチクラウド**  |・各社のサービスのいいとこどりが可能<br>・自社独自のカスタマイズができる<br>・サービスを越えて冗長化すれば耐障害性が上がる|・複数のクラウドに精通した高度な社内人材が必要<br>・アーキテクチャが複雑化する傾向にある<br>・障害調査が困難になる|

##最後に
今回はGCPの主要サービスを紹介いたしました。2021年にGCPはAWSと共に日本政府のガバメントクラウドとして認定を受けたので今後ますます注目されるサービスとなっていくでしょう。
これを機にGCP、その他クラウドサービスついて興味を持っていただけると嬉しいです。
コメントや質問などございましたら遠慮なくメッセージをください。
それでは！

##参考文献
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/f8eb2abe-e2af-5bb5-e4b1-e66e0fe0442d.png)
[GCPの教科書, 吉積 礼敏・他(著), 2019,リックテレコム](https://www.amazon.co.jp/GCP%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%82%A8%E3%83%BC%E3%82%B9%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE-%E5%90%89%E7%A9%8D-%E7%A4%BC%E6%95%8F%E3%83%BB%E4%BB%96/dp/4865941959 "GCPの教科書, 吉積 礼敏・他(著), 2019,リックテレコム")

---

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/7a544340-b369-cc64-fcd3-5d73b60f3d8e.png)
[Google Cloud Platform エンタープライズ設計ガイド,遠山 陽介・他(著), 2018,日経BP](https://www.amazon.co.jp/Google-Cloud-Platform-%E3%82%A8%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%82%A4%E3%82%BA%E8%A8%AD%E8%A8%88%E3%82%AC%E3%82%A4%E3%83%89-%E9%81%A0%E5%B1%B1/dp/4822257908 "Google Cloud Platform エンタープライズ設計ガイド,遠山 陽介・他(著), 2018,日経BP")