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


前提

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

流れ

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

1.VMインスタンスを作る

まずVMインスタンスを作ります。
左上のメニューバーをクリックし、

画像下の「Computer Engine」>VMインスタンスを開きます。

「作成」を選択します。

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

赤枠2つにチェックして作成します。

無事出来上がりました。

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

次に、ファイアウォールルールを作ります。
左上のメニューバーをクリックし、

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

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

名前とソースIPの範囲の部分を書きました。

また、tcpに自分の決めた番号を入力して、作成。

作成できました!

3.port番号を変更した状態でsshに接続する

最後、少し苦労した部分です。
まず、メニューバーからComputer Engine>VMインスタンスに戻ります。
自分が先ほど作ったインスタンスの右端「接続」から

「ブラウザウィンドウで開く」をクリックすると、別ウィンドウでターミナルが開きます。
そこで、

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インスタンスに戻り、次は


ブラウザウィンドウでカスタムポートを開くを選択。
自分の決めたPort番号を入力し、うまく処理が通るとターミナルが開きます!!

最後にPort22を無効にしておきます。
GCPのメニュー画面から「VPCネットワーク」>ファイアウォールルールをクリック
ファイアウォールルールから、

default-allow-sshを探し、編集画面に移動します。
下の方まで移動して

ルールを無効にするをクリック

無効を選択します。
これで、VMインスタンスから「ブラウザウィンドウを開く」を選択しても、接続ができなくなることを確認したらOKです!

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

続き→[deploy]RailsアプリをGCPにデプロイ!②~Nginx導入~