[deploy]RailsアプリをGCPにデプロイ！①~カスタムポートでssh接続~

#前提
Railsは5.1.7です。
GCP(Google Cloud Platform)に登録していること。

# 流れ
`1.VMインスタンスを作る`
`2.ファイアウォールルールを作る`
`3.port番号を変更した状態でsshに接続する`

## 1.VMインスタンスを作る
まずVMインスタンスを作ります。
左上のメニューバーをクリックし、
![ 2019-11-14 11.57.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/7bd850f0-c52b-4a97-aa8e-d5690b5a211f.png)
画像下の「Computer Engine」>VMインスタンスを開きます。
![ 2019-11-14 13.30.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/3b5a8dec-1243-6a48-ccfb-94b3948e91ea.png)

「作成」を選択します。
![ 2019-11-14 15.58.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/d3b3b3f2-2956-d3b3-94e4-e1ae53049571.png)

赤枠部分を変更し、
今回ディスクは「CentOS 8」を選択しました。


![ 2019-11-14 16.02.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/a685fbc0-fdcc-01eb-d4df-f65a6e007cca.png)

赤枠２つにチェックして作成します。
![ 2019-11-14 16.05.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/c1ba6a18-4f15-3876-aec1-b08d2168a4e0.png)
無事出来上がりました。

## 2.ファイアウォールルールを作る

次に、ファイアウォールルールを作ります。
左上のメニューバーをクリックし、
![ 2019-11-14 12.09.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/640fd4bb-294b-2fbe-930e-708fa62b80d8.png)

「VPCネットワーク」>ファイアウォールルールをクリック
（結構下の方にあります。）

![ 2019-11-14 12.11.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/b3832b28-e5ec-5dfd-dd17-4435b68683e8.png)

「ファイアウォールルールを作成」をクリック

![ 2019-11-14 12.19.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/6d54e784-e57e-6df4-177f-d2bec332c6ff.png)

名前とソースIPの範囲の部分を書きました。
![ 2019-11-14 16.23.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/1ce0c7a6-1b42-88b7-0b7a-070c2aa7c323.png)

また、tcpに自分の決めた番号を入力して、作成。
![ 2019-11-14 16.28.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/677e5a00-2093-e706-735a-4dbf53fb05b1.png)

作成できました！

## 3.port番号を変更した状態でsshに接続する
最後、少し苦労した部分です。
まず、メニューバーから`Computer Engine`>`VMインスタンス`に戻ります。
自分が先ほど作ったインスタンスの右端「接続」から
![ 2019-11-14 13.38.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/75a2b936-f412-a282-c7ba-23e206ed1141.png)
「ブラウザウィンドウで開く」をクリックすると、別ウィンドウでターミナルが開きます。
そこで、

```
sudo vi /etc/ssh/sshd_config  
```
と入力し、出力された画面から「Port 22」を探します(真ん中あたり)
見つけたら、以下のように入力します。
vimなので入力は「i」を押して入力です。

```
Port 22　←(#は外す！！！！)
Port (自分がファイアウォールルールで決めた番号)
```
入力が終わったら「Esc」を押し、「:wq」を入力して、上書き保存します。

このままではまだssh接続できないので、いろいろと設定をしていきます。

今回CentOS8を使っているので、続けてターミナルで

```
sudo yum install -y policycoreutils-python-utils 
```
と入力し、`semanage`が使えるようにします。
インストールが終わったら

```
sudo semanage port --list | grep ssh 
```
と入力すると`port 22`しか出力されないと思います。
ここに、先ほど自分で決めたPort番号を追加するために

```
sudo semanage port --add --type ssh_port_t --proto tcp (番号)
```

と入力します。
もう一度

```
sudo semanage port --list | grep ssh 
```
とすると、Port 22に加えて自分が入力した番号も追加されていると思います。

それでは、GCPの方に戻りたいので、コンソール上で

```
sudo reboot
```
を入力し、再起動します。

GCPの画面`Computer Engine`>`VMインスタンス`に戻り、次は

![ 2019-11-14 16.50.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/fe7a216b-caa1-0875-14cc-b83cf0441400.png)
ブラウザウィンドウでカスタムポートを開くを選択。
自分の決めたPort番号を入力し、うまく処理が通るとターミナルが開きます！！

最後にPort22を無効にしておきます。
GCPのメニュー画面から`「VPCネットワーク」`>`ファイアウォールルール`をクリック
ファイアウォールルールから、
![ 2019-11-14 16.58.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/31330096-e0da-59dd-caed-1e50002c3016.png)
default-allow-sshを探し、編集画面に移動します。
下の方まで移動して
![ 2019-11-14 17.12.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/b8f94118-cbb2-29b0-84c1-898aab3cb540.png)
`ルールを無効にする`をクリック
![ 2019-11-14 16.58.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/46775c84-d0e2-568e-a501-31ea49996e8b.png)
無効を選択します。
これで、VMインスタンスから「ブラウザウィンドウを開く」を選択しても、接続ができなくなることを確認したらOKです！
![ 2019-11-14 16.59.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532695/55fe17df-b52d-adf9-a62b-2bbedf270d96.png)

これで、カスタムポートでssh接続するところまで完了しました！！:muscle_tone2:

続き→[[deploy]RailsアプリをGCPにデプロイ！②~Nginx導入~](https://qiita.com/Yukina_28/items/888e8aac44d7bee7142f)