IBM CloudでVPCの仮想サーバーを構築してみた

# はじめに
今回は社内の新人研修として、所属部門と関わりの深い技術知識の一端を学び、その知識を他の人が読んでも分かりやすいような技術記事にまとめることを目的に本記事を執筆しました。
# 目的と前提
**目的：**
IBM Cloud上で仮想サーバーを構築しSSH接続するまでの過程を、順を追って説明します。 IBM Cloud初心者の方でも、仮想サーバーの基本的な使い方を理解した上でサーバーへアクセスできるようになることを目指します。

**前提：**
- IBM Cloudのアカウントが既に作成してあること 
- VPC、サブネット、セキュリティーグループが既に作成してあること
- クラウドについて基本的な理解があること 
- Linuxの基本操作について学習済みであること

# 全体イメージ
今回の構成図は以下の通りです。

![スクリーンショット 2024-09-27 112002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/ef1dc53b-2700-1b39-d588-9bf2bd8689e3.png)

# IBM Cloudにログイン
登録済のメールアドレスとパスワードでログインします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/48bbef00-1a4b-95fa-3e02-7d72985c37bb.png)

ログインが完了すると下の画面へと遷移します。

![スクリーンショット 2024-09-27 113742.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/44f86ce5-3850-e42c-fb31-6f8c37dd7b9a.png)


# 仮想サーバー作成
ここからは仮想サーバーを作成していきます。
画面左側のナビゲーションメニューをクリックし、VPCインフラストラクチャーを選択

![スクリーンショット 2024-09-27 113357.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/9499a43e-d3aa-f736-f3a9-65b75625feea.png)


仮想サーバー・インスタンスを選択

![スクリーンショット 2024-09-27 114108.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/bf065151-9213-468f-f57f-270162451ebe.png)


作成をクリック

![スクリーンショット 2024-09-27 114305.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/6dd0444b-b3e6-b54d-439d-ed254cbc44db.png)

## 仮想サーバーの設定
### ロケーションの設定
まず、仮想サーバーを保管するロケーションの設定を行います。
今回は以下のように設定しました。

- 地域：アジア太平洋
- リージョン：東京
- ゾーン：東京２

![スクリーンショット 2024-09-27 114502.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/be77fdeb-cbf8-58dc-27cc-1f966572a728.png)

### 詳細の設定
次に、作成する仮想サーバーの名前やリソースグループを設定していきます。

![スクリーンショット 2024-09-27 114727.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/50ae18fe-febc-1e73-7c5f-69e2ddac528e.png)

- 名前：仮想サーバーの名前（各自で設定）
- リソース・グループ：管理するグループ、リソース・グループがない場合は作成
- タグ：作成する仮想サーバーのタグ（オプション）

### イメージおよびプロファイルの設定
作成する仮想マシンのOSとプロファイルを設定していきます。
今回は以下のような設定にしました。
（アーキテクチャごとにプロファイル方法は異なるので注意してください）


- イメージ：Red Hat Enterprise Linux 
    - name: ibm-redhat-8-8-minimal-arm64-7 
    - イメージ・タイプ：ストック・イメージ 
    - アーキテクチャ: x86 
- プロファイル：平衡型

ここではイメージ（Red Hat Enterprise Linuxへ）の変更手順を記載します。

![スクリーンショット 2024-09-27 115110.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/2f78345c-5c50-1a3f-d284-08fc6fb47c59.png)

イメージの変更をクリック

![スクリーンショット 2024-09-27 115306.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/680fffd0-a376-27ef-a577-e063d2a69c57.png)

ibm-redhat-8-8-minimal-amd64-7を選択

![スクリーンショット 2024-09-27 115453.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/f0aeb8ea-ad59-8d89-6458-4ab307505811.png)

イメージの変更が完了しました

![スクリーンショット 2024-09-27 115711.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/877b635e-8d1c-9702-5da9-69aee3b5aec9.png)

**プロファイルに関する補足説明**

プロファイルとは、vCPU と RAM の組み合わせのことです。プロファイルをインスタンス化することで、すぐに仮想サーバー・インスタンスを開始できます。
今回選択した平衡型は、パフォーマンスとスケーラビリティーのバランスを必要とする、一般的なワークロードに最適なプロファイル・ファミリーです。その他のプロファイル・ファミリーについては、[こちら](https://cloud.ibm.com/docs/virtual-servers?topic=virtual-servers-about-virtual-server-profiles&locale=ja)をご覧ください。

### SSH鍵の作成
作成した仮想サーバーにアクセスするためにSSH鍵を作成します。

SSH鍵の設定では、以下の設定を行います。
- 名前：鍵の名前
- リソース・グループ：先ほど設定したリソース・グループを設定
- タグ：鍵のタグ設定（オプション）
- 鍵のタイプ：鍵の暗号方法について設定
- SSH鍵の入力方法の選択：自分で鍵ペアを作成 or 既存の公開鍵 を設定可能

SSH鍵の作成を押下

![スクリーンショット 2024-09-27 120201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/13a2e9af-488a-93c3-920f-b1121aa59e2e.png)

詳細の設定

![スクリーンショット 2024-09-27 120428.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/8bf15eb8-676a-0b3a-81d0-af6052899e9a.png)

鍵タイプとSSH鍵入手方法の選択

![スクリーンショット 2024-09-27 120652.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/188d60ce-ec4e-f429-033b-db28fb3f9728.png)

#### SSH鍵作成時の注意
作成ボタンを押すと自動的にSSH鍵がダウンロードされます。
この画面を離れると後から複製することはできないので、一度手元にあるか確認することをおすすめします。

### ストレージの設定
作成する仮想マシンのストレージを設定します。

![スクリーンショット 2024-09-27 120948.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/2bdf4ee7-d198-db45-b197-632e5584f259.png)

今回は、ブート・ボリューム、データ・ボリュームともにデフォルトのままで進めます。

### ネットワーキングの設定
仮想プライベートクラウドとインターフェースの設定を行います。
インターフェースは二種類から選択することができ、それぞれの特徴は以下の通りです。

**仮想ネットワーク・インターフェース：**
拡張VPCサービス統合、高可用性、複数のIPアドレス、転送可能インターフェースにより、VPCのネットワーク・インターフェースの機能と柔軟性の向上が可能。

**インスタンス・ネットワーク・インターフェース：**
ネットワーク上の仮想サーバー・インスタンスに接続するための複数のネットワーク・インターフェースを作成し、ネットワーク・インターフェースを介してサーバーにアクセス可能。

今回は、仮想ネットワーク・インターフェースを選択します。

![スクリーンショット 2024-09-27 121130.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/36150c34-cb65-269b-7e34-fee7ceca26d8.png)

仮想ネットワーク・インターフェースとのネットワーク接続：デフォルト

![スクリーンショット 2024-09-27 121343.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/e32500fa-14a9-712e-9c76-c7212714422e.png)

全ての設定を終えたら、仮想サーバーの作成をクリック

![スクリーンショット 2024-09-27 121541.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/664ea124-154a-a9f9-74c2-9eac20d4b3aa.png)

作成をクリック後サーバーの作成が始まり、数分でサーバーが起動します。

![スクリーンショット 2024-09-27 121704.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/54c42926-3002-3b10-8734-6fe172e8a693.png)

![スクリーンショット 2024-09-27 122252.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/eb1d1606-6e5e-e2fa-971f-0a0ea99f57ac.png)

ステータスが「稼働中」になるとログイン可能になります。

![スクリーンショット 2024-09-27 122456.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/88b1cdf6-fac2-0063-911d-02d929c8a06a.png)

# 浮動IPアドレスの作成
作成した仮想サーバーにアクセスするため、IPアドレスを設定します。
VPCインフラストラクチャー→ネットワーク→浮動IPを選択

![スクリーンショット 2024-09-27 134504.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/2bf194cf-b5e7-b939-805a-90934d0dd4e6.png)

予約をクリック

![スクリーンショット 2024-09-27 134734.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/4e3bccce-a6d4-104a-2b03-673fd99bb210.png)

ロケーションは仮想サーバーと同リージョン・ゾーンに設定し、詳細の設定に移ります。

![スクリーンショット 2024-09-27 134939.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/2efac243-7b6e-5b97-c851-d36b15754be4.png)

### 詳細の設定
ここでは以下の項目を設定していきます。
- 名前：浮動IPの名前を設定
- リソース・グループ：管理するグループの設定
- タグ：浮動IPのタグ設定（オプション）
- バインドするリソース：紐付けするインスタンスを設定、今回は作成した仮想サーバー

![スクリーンショット 2024-09-27 135526.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/5f34b674-5439-2324-4d04-add6af93942e.png)

予約をクリック

### 浮動IPアドレスを確認
予約ボタンクリック後、インターネットからアクセス可能なIPアドレス (128.168.xxx.xxx) が割り振られます。(サーバーを再起動すると、変更される場合があります)

![スクリーンショット 2024-09-27 135944.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/7d905fd3-3192-5811-b8fc-677675d244f5.png)

# 作成した仮想サーバーにアクセス
作成した仮想サーバーにSSH接続して、ログインを行います。

PowerShell を起動し、下記コマンドを実行 

```
ssh -i <秘密鍵のファイルパス> root@<浮動IPアドレス>
```

初めて接続する際には、
「Are you sure you want to continue connecting (yes/no/[fingerprint])?」
というメッセージが出るため、「yes」と入力しEnterキーを押します。

![スクリーンショット 2024-09-27 140614.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/9d5c3830-20ee-a019-9f33-83517022f003.png)


これで、作成した仮想サーバーに rootユーザーでログインが完了しました。

![スクリーンショット 2024-09-27 141538.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3890424/3ca6814d-0f21-d41d-abf2-97897d35b7e6.png)

# まとめ
今回は、IBM CloudでVPCのサーバーを立て、SSH接続を行いました。VPC、サブネット、セキュリティーグループが既に作成してある状態での仮想サーバー構築だったため、作業項目が少なく、初心者でも問題なく行えるレベル感だったと思います。次回以降、 VPC、サブネット、セキュリティーグループ等の作成も経験し、その過程をまた記事にできたらと考えています。