【IBM Cloud】Virtual server for VPCを作成する流れ

## はじめに
今回はIBM Cloudのサービスの中で、Virtual Private Cloud (VPC) の環境を立ち上げ、仮想サーバー・インスタンスを作成する流れを整理します。

今回の内容にはIBM Cloudの[有料アカウント](https://cloud.ibm.com/docs/account?topic=account-accounts)が前提となっています。

## VPC環境の作成の流れ

#### VPCの作成
IBM Cloudコンソール画面で`ナビゲーション・メニュー`→`VPCインストラクチャー`→`VPC`をクリックします。
![スクリーンショット 2022-11-28 17.43.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/6d18e60a-9855-d197-42d9-1630b2dfb249.png)

右上の`作成`をクリックします。
![スクリーンショット 2022-11-28 17.44.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/2960efb0-5cfd-e40b-69de-1101986a5f6c.png)

ロケーションや詳細などの全ての設定が終わったら`仮想プライベート・クラウドの作成`をクリックします。
![スクリーンショット 2022-11-28 17.54.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/ea6b6835-c62f-ffeb-c920-5e50ce43035e.png)

#### サブネットの作成
VPCの作成が完了しましたら、次はメニューの`サブネット`からをクリックしVPC用サブネットの作成を行います。右上の`作成`をクリックします。
![スクリーンショット 2022-11-28 18.27.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/ea72d180-b793-5086-5229-de630588d095.png)

ロケーションや詳細項目に必要項目を選択し、求めるIP範囲を設定します。今回は東京リージョン、東京２ゾーン、IP範囲は28、IPアドレス数は16個に設定しています。
仮想プライベート・クラウドには、対象VPC（上記に作成したVPCなど）を設定します。
![スクリーンショット 2022-05-18 18.22.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/4e06fee4-7128-6263-88fb-c170fff0f70e.png)
![スクリーンショット 2022-05-18 18.22.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/bf3195e1-f860-22f3-bea4-6b6813cc01a3.png)

#### セキュリティーグループ作成
サブネットの作成後、メニューから「セキュリティー・グループ」ボタンをクリックし、VPC用のセキュリティー・グループの作成を行います。サブネットの作成時と同様、ロケーションや詳細を設定し、VPCは対象VPC（冒頭で作成したVPCなど）を設定します。

また、特定のIPのみアクセスできるように、インバウンド/アウトバウンド・ルールを設定します。
インバウンド・ルールとしてはプロトコルTCP'22'と'80'をそれぞれ設定し、プロトコルICMPに同様にIPアドレスを設定します。

参考：[ポート番号一覧](https://ja.wikipedia.org/wiki/TCP%E3%82%84UDP%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%81%AE%E4%B8%80%E8%A6%A7)　
(*ポート番号は1024までは共通規格として決められていて、それ以降の番号は自由に使用できる番号です。)

ここでIPアドレスはインバウンド許可IPアドレスを入力しますが、今回は私の自宅でのグローバルIPアドレスを入力しました。（もし、特定の特定のServerからアクセスしたい場合は、そのサーバーのIPアドレスを記入する形となります。）
自宅のIPアドレスはコロコロ変わるため、都度確認し設定する必要があります。ご注意ください。IPアドレスの確認は以下のリンクで確認できます。

参考：[IPアドレス確認](https://www.cman.jp/network/support/go_access.cgi)

![スクリーンショット 2022-11-28 18.32.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/a4505132-3a29-dda1-333f-272078f08cac.png)
![スクリーンショット 2022-05-18 19.26.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/05629185-0e58-a979-9036-fcd3a582cbe2.png)
![スクリーンショット 2022-05-18 19.27.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/d54bc11b-6711-d91f-0be9-f07510dd5db4.png)
![スクリーンショット 2022-05-18 19.27.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/9cfb2003-8bb8-d672-64ab-59845360c25e.png)
全ての設定が完了したら、右側の「セキュリティー・グループの作成」ボタンをクリックし作成します。
![スクリーンショット 2022-05-18 19.29.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/1f45ae31-bada-1cd2-d293-a311d28c4fb1.png)

また、今回は特定のIPアドレスからのみアクセスできるようにしたかったため、ルール設定を行いました。
セキュリティーグループインスタンスに入り、`ルール`をクリックします。
インバウンドルールにて`作成`をクリックし、必要に応じてプロトコルやポート番号、IPアドレスなどの設定を行います。
![スクリーンショット 2022-12-19 15.57.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/65633c78-406c-35e4-df22-a4681a134ce4.png)
![スクリーンショット 2022-12-19 15.57.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/b182ff70-3eb2-ee78-e977-3dbe736ec3c2.png)


#### SSH鍵の作成
VPCでは、VSIへの管理者アクセスに、パスワードではなく[SSH鍵](https://cloud.ibm.com/docs/vpc?topic=vpc-ssh-keys)を使用します。SSH鍵の作成はターミナル（MACユーザー）で行います。以下のコマンドを用いてターミナルにてSSH鍵の作成及びアカウントへの追加を行います。
```shell:SSHキーの作成
$ ssh-keygen -t rsa -b 4096
```
```shell:SSHキーをアカウントに追加
$ SSHKEY_ID=$(ibmcloud is key-create sshkey-lamp-tutorial @$HOME/.ssh/id_rsa.pub --json | jq -r '.id')
```
設定が終わったらインスタンスのリフレッシュを行い、作成されたことを確認します。
![スクリーンショット 2022-12-19 16.07.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/fc3c1adc-bb78-1138-392e-818bbd4c7699.png)


#### サーバー作成
SSH鍵の作成が完了しましたら、サーバーの作成を行います。今までと同様、左のメニューから「仮想サーバー・インスタンス」をクリックし、VPC用の仮想サーバー・インスタンスの画面で`作成`ボタンをクリックします。
![スクリーンショット 2022-11-28 18.35.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/9d182212-af77-ec68-a27d-5200049e4739.png)
必要なサーバー・タイプやホスティング・タイプ、ロケーションなどの設定を行います。今回はIntel x86サーバーとシングル・テナントでの専用ホスティング、東京２ゾーンで設定しました。
OSは Red Hat Enterprise Linuxにし、最も最新バージョンを選択しました。
プロファイルのスペック設定欄には最小構成（2vCPU|4GiB|4Gbps）にしていますが、「全てのプロファイルを表示」をクリックすると、多彩なオプションから選ぶこともできます。
![スクリーンショット 2022-12-19 15.40.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/402f08cf-04e6-3485-b3ea-487df602b472.png)
![スクリーンショット 2022-12-19 15.22.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/1a4a8909-50bb-0e03-3d0d-391e91ec7841.png)

また、SSH鍵の設定欄が表示されているので、上記で作成されたSSH鍵を選びます。
もしまだSSH鍵を作成できていない場合には、ここでも作成可能です。
![スクリーンショット 2022-12-19 15.42.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/db90695e-6a7d-6b47-e389-0716d5d1b210.png)
![スクリーンショット 2022-12-19 15.43.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/9b1acabe-4192-f87d-c84f-2ca4fb669574.png)


スペックの選択やSSH鍵の設定が終わったら下にスクロールし、上で作成したVPCを選択します。
もしまだ作成ができていない場合は、この画面上でもVPC作成が可能です。
![スクリーンショット 2022-12-19 15.35.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/72c58c77-fa2d-dd1f-a83f-bd64e2e7b045.png)
![スクリーンショット 2022-12-19 15.44.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/3b748c9c-e790-55be-a918-7306f0cc6687.png)


ここまで設定すると、右側のサマリーに金額とともに「仮想サーバーの作成」ボタンが表示されるので、作成を行います。

#### Floating IP予約
VPCのFloating IP（浮動IP）に入り、`予約`ボタンをクリックします。
必要情報を入力し、上で作成したリソースグループやバインドするリソースなどを選択します。
設定が完了したら下の`予約`をボタンをクリックします。（今回はすでにFloating IPを作成していたため、私の画面では予約ができないです。）
![スクリーンショット 2022-12-19 15.29.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/5302b075-fa98-5c65-63b4-c3278b31ce66.png)
![スクリーンショット 2022-12-19 15.45.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/7f88fd60-f4ac-e270-f55e-971046a18f4b.png)


これでVPCの作成・設定は完了です。

## 注意点
Qiita記事作成にあたり、環境の時間軸の前後やインスタンス名の違いなどがありますので、ご了承ください。

## 参考
・[IBM Cloud 公式HP - VPC](https://www.ibm.com/cloud/learn/vpc)
・[VPCリソースの作成](https://cloud.ibm.com/docs/vpc?topic=vpc-creating-a-vpc-using-the-ibm-cloud-console)
・[SSH鍵の作成](https://cloud.ibm.com/docs/vpc?topic=vpc-ssh-keys)