Google Cloud Platform(GCP)入門

### Google Cloudとは

Google Cloud Platform、G Suite等、Googleの一連のクラウドサービスの総称です。

![無題.png](https://qiita-image-store.s3.amazonaws.com/0/23101/2d71bcfb-aa5d-a575-edcd-860852155186.png)

* [Google、一連のクラウドサービスを「Google Cloud」という総称に](http://www.itmedia.co.jp/news/articles/1609/30/news071.html)
* [Google Cloud](https://www.google.com/cloud/)


### Google Cloud Platformとは
![gcp-series01_01.png](https://qiita-image-store.s3.amazonaws.com/0/23101/40360cff-3665-59f6-ea7a-37b513a0f6aa.png)

* [Google Cloud Platform](https://cloud.google.com/?hl=ja)

Google Cloudの1つで、Googleが提供するパブリッククラウドサービスです。
YouTubeやGmail等、Google自身が提供するサービスを支えるインフラをベースに実装されているという特徴があります。AWSやMicrosoft Azureと同様にグローバルにサービスを展開しており、数多くのシステムでの利用実績があります。また、基本的な構成要素が初めから各種サービスとして用意されているため、それらを使用してすばやく開発を行うことができます。

### Google Cloud Platformのサービス
Google Cloud Platformの主なサービス
![無題.png](https://qiita-image-store.s3.amazonaws.com/0/23101/0b6e2640-7793-8bdf-9b99-d7197cc71bfc.png)

全てのサービス
![s無題.png](https://qiita-image-store.s3.amazonaws.com/0/23101/ff4f72e8-c319-0b88-105f-7b298798cd24.png)
![無題s.png](https://qiita-image-store.s3.amazonaws.com/0/23101/e77303af-9ec6-94a7-a8bc-a7f1cb2a3cdd.png)



* [GCPのプロダクトとサービス](https://cloud.google.com/products/?hl=ja)



### Google Cloud Platformを支えるインフラ

##### Google Cloud Platformの全体像

![無題.png](https://qiita-image-store.s3.amazonaws.com/0/23101/e47125b7-59d0-589f-35fd-b766922bce4b.png)

##### ユーザアカウントとプロジェクト
GCPを利用するユーザーは、Gmail等で利用されるGoogleアカウントを用いて認証を行います。
GCPのサービスを利用する際は、はじめにプロジェクトの作成をして、請求先アカウントとの紐付けを行います。一般的に、個人で利用する場合はプロジェクトを作成したユーザー自身が請求先アカウントとなります。Compute EngineやApp Engine等のGCPで利用するリソース、 API Manager経由で利用するGoogle APIは全てプロジェクトと紐付けられ、プロジェクト単位で課金やユーザー管理を行うこととなります。プロジェクトに開発メンバーを追加する場合は、プロジェクトオーナーがCloud IAMから追加することで、その開発メンバーはプロジェクトの利用が可能となります。また、1人のユーザーが複数のプロジェクトを作成することも可能で、それぞれのプロジェクトは完全に独立した環境になります。

* [請求アクセス制御の概要](https://cloud.google.com/billing/docs/how-to/billing-access?hl=ja)
* [Cloud IAM](https://cloud.google.com/iam/?hl=ja)

##### リージョンとゾーン
リージョンは世界各地のGCPのデータセンタが存在する地域を表すもので、さらに1つのリージョンの中に複数のゾーンが存在します。それぞれのゾーンは「障害ドメイン」と呼ばれる区画を構成するもので、複数のゾーンにまたがってリソースを配置することで、単一障害点を排除した冗長構成を実現することができます。また、リージョンによっては利用できるサービスが変わってきます。

* [クラウドのロケーション](https://cloud.google.com/about/locations/?hl=ja)
* [地域とリージョン](https://cloud.google.com/docs/geography-and-regions?hl=ja)


##### 仮想ネットワーク
GCPでは、プロジェクト単位で独立した仮想ネットワークを構成することが可能です。また、1つのプロジェクト内に複数の仮想ネットワークを定義することも可能です。
仮想ネットワークを定義する場合、Legacy Networkもしくは、Subnet Networkのどちらかを選択します。

###### Legacy Network
全てのリージョンにまたがった単一のサブネットが構成されます。

![無題.png](https://qiita-image-store.s3.amazonaws.com/0/23101/31909102-5365-fa92-7798-c8d5b7d91bd2.png)

Legacy Networkは、gcloudコマンドからでないと作成できません（Cloud ConsoleのGUI画面からでは作成できません）

###### Subnet Network
リージョンごとに個別のサブネットが用意されます。

![a無題.png](https://qiita-image-store.s3.amazonaws.com/0/23101/dff0a85d-e674-bc6a-0785-0d9c94aff46d.png)





### 参考
* [プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで](https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEGoogle-Cloud-Platform%E5%85%A5%E9%96%80-%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E5%85%A8%E4%BD%93%E5%83%8F%E3%81%8B%E3%82%89%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%83%8D%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E6%A7%8B%E7%AF%89%E3%81%BE%E3%81%A7-%E9%98%BF%E4%BD%90/dp/4798137146)
* [Google Cloud Platform](https://cloud.google.com/?hl=ja)
* [エンジニア必読！今さら聞けない、Google Cloud Platform (GCP) って何？](https://www.topgate.co.jp/gcp01-what-is-google-cloud-platform)