GCP Compute EngineでHubot BOT（Mattermost）を動かしてみました（１）

# SSH鍵作成

* GCPとは直接関係ないのですがBOTを起動するOSはLinuxを想定していたため、あらかじめ（本当は試行錯誤した結果ですが...）作成しました
* ブラウザ上のコンソールから接続する方法もあるようですが、使い慣れたTeraTermで接続するようにしました
* わたしはWindows端末を使用しておりGit for Windowsをインストール済みだったため、Git内のssh-keygenを使用して鍵を作成しました
* 以下、
Powershellより（passphraseは適宜入力します）

```powershell
PS C:\Users\{username}> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\{username}/.ssh/id_rsa):
Created directory 'C:\Users\{username}/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\{username}/.ssh/id_rsa.
Your public key has been saved in C:\Users\{username}/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:...
The key's randomart image is:
+---[RSA 2048]----+
：
+----[SHA256]-----+
```
* C:\Users\\{username}\\.sshフォルダに以下が作成されます
    * id_rsa（秘密鍵）
    * id_rsa.pub（公開鍵＝認証鍵）

# VPC作成

* VPC「default」を使用する場合、本項の作業は不要です
* わたしは他の方とプロジェクトを共有しているため、VPCを個別に作成してみました
* リージョンをまたいだVPCを作成できるのがGCPの素晴らしいところですが、ひとつのリージョン内に収まるように作成してみました

* GCPホームから、「VPCネットワーク」をクリックします
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/a6fc269d-975a-8941-af38-79e031346a34.png)

* VPC「default」が見えますが（複数のリージョン：サブネットが含まれています！）、「VPCネットワークを作成」をクリックします
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/20feaa4d-4cfd-2be4-b2f7-21d34a2e977c.png)

* サブネット作成モードを「カスタム」に、リージョンをインスタンスVMを作成予定の「us-central1」にしました
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/213e2d23-efec-63e9-7306-f1cdbb3c508f.png)

* 作成されました
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/f0089a63-ae6a-64d0-5ef5-699f42d0501b.png)

# VPCにファイアウォールルール追加

* VPC「default」にはsshやRDPを通すルールがデフォルトで追加されているのですが、自分で作成したVPNには無いようです
「ファイアウォールルールを追加」をクリックします
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/7dd6802a-f659-0b00-7d69-be9c45304492.png)

* ひとまずsshのデフォルトポートtcp:22を許可するルールを作成します
トラフィックの方向は「上り」（＝受信トラフィック）を選択します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/49869172-a3ef-da0a-916c-9e58db31eef4.png)

* 作成されました
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/1cca7bd9-092f-860c-6c59-e598b452d313.png)

# VMインスタンス作成

* GCPホームから
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/146db8d1-5ff1-9310-67fa-23003c461e02.png)

* 初めてでしたので、以下の画面が表示されました
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/b6c0296f-7d8e-d6fb-9e9c-ba53dd13231f.png)

* 以下の設定（リージョン、マシンタイプ）の場合、Always Freeの範囲で収まるようです
OSは慣れているCentOSにしました
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/544dea16-5783-e94a-f329-f941f45c218b.png)

* オプションの「セキュリティ」をクリックします
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/4afd9a38-80b5-3133-bcb9-2b0e236c49be.png)

* 先ほど作成した認証鍵（id_rsa.pub）を開き、すべて（"ssh-rsa"を含む）をコピペします
コピペ欄の左側に認証鍵を作成したユーザー名が表示されます
CentOSにログインする時に使用します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/96e5db9d-2b32-58ed-ade8-0dda77c40bfb.png)

* 「ネットワーク」をクリックします
先ほど作成したVPCを選択します
また、Global IP addressを固定するために外部IPを作成しました
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/ad2c4d82-87fd-020f-d3c0-fd0744d89967.png)

* 1分もたたずに作成されました
![image.png](https://qiita-image-store.s3.amazonaws.com/0/310579/930f2f6e-e067-9592-2a58-b97120fc4320.png)

## （２）に続く
[GCP Compute EngineでHubot BOT（Mattermost）を動かしてみました（２）](https://qiita.com/hyano1973/items/495666dd67afb65c99b3)