OCI Load Balancer と Oracle Linux 9 でロードバランシングを体験 その２ ネットワーク(VCN)とVM作成・設定

# 【お知らせ】この記事はこちらの記事と連動しております。

## **OCI Full Stack Disaster Recovery (FSDR) が Load Balancer 対応になったので試してみた**
https://qiita.com/Assemble_EX-80/items/92262c337290d57b670c

[こちらの記事](https://qiita.com/Assemble_EX-80/items/92262c337290d57b670c)を試すための [事前準備](https://qiita.com/Assemble_EX-80/items/92262c337290d57b670c#%E4%BA%8B%E5%89%8D%E6%BA%96%E5%82%99) の方法をステップバイステップで記述したものであり、こちらで利用している**Load Balancerと、Oracle Linux 9の構成を最速で構成する手順** です。

この**一連の記事に沿ってリソースを作成するだけ**でも、OCIで **Load Balancer** と **Oracle Linux 9** の**Webサーバを構築**して、**ロードバランシングを体験**することができます。

この記事は、**その２ ネットワーク(VCN)とVM作成・設定** です。

この手順を完了すれば、OCI上に簡単なネットワークをつくり、コンピュートのVMインスタンスを作成し、そのインスタンスに外部（インターネット）からSSHでアクセスできるようになります。

# 目次
**[その１ はじめに](https://qiita.com/Assemble_EX-80/items/09d552f69e8b60e6f804)**
**[その２ ネットワーク(VCN)とVM 作成](https://qiita.com/Assemble_EX-80/items/5d941b67a73703b20f9c)**
**[その３ VM上の Oracle Linux 9 に apache、PHPインストール、設定 ](https://qiita.com/Assemble_EX-80/items/d89ddb7b78c84373c49a)**
**[その４ Load Blancer 作成・設定](https://qiita.com/Assemble_EX-80/items/20de1daabfb1f0857fc5)**
**[その５ オブジェクト・ストレージ、ブロック・ボリューム 作成・設定](https://qiita.com/Assemble_EX-80/items/b846a3ac8aa8de71301a)**
<!--
**[その３ VM上の Oracle Linux 9 に apache、PHPインストール、設定 ](https://qiita.com/Assemble_EX-80/items/d89ddb7b78c84373c49a)**
**[その４ Load Blancer 作成・設定 ](https://qiita.com/Assemble_EX-80/items/20de1daabfb1f0857fc5)**
**[その５ オブジェクト・ストレージ、ブロック・ボリューム 作成・設定 ](https://qiita.com/Assemble_EX-80/private/b846a3ac8aa8de71301a)**
-->

の構成でお届けしています。

## **参考ドキュメントへのリンク**
各リソースを作成するにあたって、より詳細なドキュメント、チュートリアルへのリンクを記しておきますのでわからないことがあればこちらを参考にしてください。
#### VCN、サブネット、セキュリティー・リスト等のネットワークリソースの作成
Oracle チュートリアル
[その2 - クラウドに仮想ネットワーク(VCN)を作る](https://oracle-japan.github.io/ocitutorials/beginners/creating-vcn/)
https://oracle-japan.github.io/ocitutorials/beginners/creating-vcn/

#### コンピュートVMの作成方法
Oracle チュートリアル
[その3 - インスタンスを作成する](https://oracle-japan.github.io/ocitutorials/beginners/creating-compute-instance/)
https://oracle-japan.github.io/ocitutorials/beginners/creating-compute-instance/

#### インスタンスへの接続
Oracle マニュアル
[インスタンスへの接続](https://docs.oracle.com/ja-jp/iaas/Content/GSG/Tasks/testingconnection.htm)
https://docs.oracle.com/ja-jp/iaas/Content/GSG/Tasks/testingconnection.htm

## **設定情報**
[**Tokyo Region**](https://cloud.oracle.com/?region=ap-tokyo-1) に以下のような **ネットワーク(VCN)** や、**VM**、**Load Balancer**の配置を行います。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/bcba49c5-a51b-d06b-5248-cf7397ac3aca.png)

<!--
Korea
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/a886bed0-7ada-ad67-af64-f29a92c76b43.png)
-->

```
VCN
名前: vcn01
 IPv4 CIDRブロック: 10.0.0.0/16
public_subnet
 IPv4 CIDRブロック: 10.0.0.0/24
private_subnet
 IPv4 CIDRブロック: 10.0.1.0/24
セキュリティーリスト
 イングレスルール 追加
  ソースCIDR: 0.0.0.0/0
  宛先ポート範囲: Port 80,433
インターネット・ゲートウェイ
 internet_gw01
デフォルトルート
 internet_gw01
```
```
VM
 instance-01
  Private IP: 10.0.0.101  
 instance-02
  Private IP: 10.0.0.102
```

# リソース作成



仮想クラウドネットワーク = [**Virual Cloud Network (VCN)**](#vcn-作成) 
コンピュート VM ＝ [**Compute VM**](#vm-作成)

<!--
[**Load Balancer**](#Load-Balancer)

[**Object Storage**](#Object-Storage)
[**Volume Group**](#Volume-Group)
-->

の順序でリソースを作っていきましょう。



## VCN 作成
### VNC 作成開始

**左上メニューアイコン**(ハンバーガーアイコン）をクリック
**ネットワーキング** を選択
**仮想クラウド・ネットワーク** をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/2b24ce5e-9d7d-2eba-dd6c-898b3de55da2.png)

### VCNウィザードの起動
**VCNウィザードの起動** ボタンをクリック
**インターネット接続性を持つVCNの作成** を選択
**VCNウィザードの起動** ボタンを押してVCN作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/0bb93d6c-6b07-0f67-c21a-8dc836149c2b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/c402e25a-d715-d46a-535c-d280cc536572.png)

### VCN 作成画面

**インターネット接続性を持つVCNの作成** 画面に遷移します。

基本情報
　VCN名: **VCN01**
VCNの構成
　IPv4 CIDER ブロック: **10.0.0.0/16**

パブリック・サブネットの構成:
　IPv4 CIDER ブロック: **10.0.0.0/24**
プライベート・サブネットの構成:
　IPv4 CIDER ブロック: **10.0.1.0/24**

を入力（もしくはデフォルトで入力されていることを確認）します。

（パブリック・サブネット、プライベート・サブネットの入力は、画面をスクロールダウンしないと見えない、入力できない場合があります）

上記の設定が問題なければ、**[次]** ボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/5a91a10b-3d1b-8f87-d29a-a509e35b03c7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/aa1e157b-d48d-a773-4e9f-c469c1c7ec40.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/150f32ea-b5ed-e825-c59d-4e41085afbec.png)

### VCN 作成確認画面
「リソースの可用性は正常にチェックされました」 のメッセージの後の
**[閉じる]** ボタンをクリック

VCNの名前や、VCN全体のCIDERブロックの値、パブリック・ネットワークのCIDERの値、プライベート・ネットワークのCIDERの値などの設定に問題ないことを確認し

**[作成]** ボタンを押してVCNを作成します。

問題なくVCNが作成されると「VCNが作成されました」や 「VCNの作成が完了しました」のメッセージをコンソール画面上で確認できます。

**[VCNの表示]** を押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/a3ccd04e-f307-004e-023c-7ad69eaabdf1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/359c78fd-9263-d1ea-456b-336f0a9ed31b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/77f12678-51e9-9f1f-f8d6-e404097e93d0.png)


### VCN セキュリティー・リストの設定

VCNの詳細表示画面では
- VCN全体のIPv4 CIDERブロックの値
- パブリック・ネットワークのIPv4 CIDERの値
- プライベート・ネットワークのIPv4 CIDERの値
- デフォルトルート表

などの存在を確認できます。

左側 Resoueces のところに

- ルート表(2)
- インターネット・ゲートウェイ(1)

などが作られているのがわかります。

- **セキュリティー・リスト(2)**

を**クリック** して、セキュリティー・リストの設定を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/4d3fe3f2-79f3-1be9-d174-7b28207b3534.png)

### VCN セキュリティーリストにイングレス・ルール追加

**Default Security List for VCN01** をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/215875c3-f050-1361-217b-9dca9e5f1f92.png)

**Default Security List for VCN01** のセキュリティ・リストの詳細が表示されたら
**[イングレス・ルールの追加]** ボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/3b4124ef-ca17-9988-7e6c-819498d753c8.png)

### イングレス・ルールの入力

ソースCIDR: **0.0.0.0/0**
宛先ポート範囲: **80,443**
説明: **http, https**

と入力します。

これにより、インターネット上のどこからでも、ポート80、443を使いパブリックネットワーク上のリソース（コンピュートVM等）にアクセスできるようになります。

**注意：セキュリティー設定を実施することは、設定に責任を持つ各個人や組織が事前に評価や検討を行い、実施の可否を決定する必要があります。当方は一切責を負いません。**

最後に **[イングレス・ルールの追加]** ボタンを押してルールを追加します。

設定が完了すると追加されたルールをコンソール上で確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/ba55231d-62ad-6a39-2d9a-ef5ccd23a5ba.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/d059141d-05aa-9b6d-a69e-7a110588d762.png)

 VCN の設定は以上。


## VM 作成
### VM 作成開始

**左上メニューアイコン**(ハンバーガーアイコン）をクリック
**コンピュート** を選択
**インスタンス** をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/b9c8d541-aa38-b8f9-4f30-ebb0e3ec6ace.png)


### VM 情報入力
#### インスタンス名
インスタンス名: **instance-01**
を入力。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/d763be93-abc4-e1e6-24e9-c55a86f6b1f6.png)


#### イメージとシェイプ
##### イメージ
　　**[イメージの変更]** をクリック
  イメージ名:　**☑ Oracle Linux 9**
　　**[イメージの選択]** をクリック


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/d7d17dd3-c9ac-a889-3ecb-4469237f3bc2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/2726e8f0-dede-a59b-aa18-a07187f15742.png)

##### シェイプ
 **[Change Shape]** をクリック
　　インスタンス・タイプ: **仮想マシン**
  　シェイプ・シリーズ: **Ampere**
　　Shape Name: **☑ VM.Standard.A1.Flex**
  を選択。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/40c199da-bd80-8a1c-ea0a-6a6bce5e9ab4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/babffd14-2880-f22c-8d20-8652dffa4ec5.png)

**Oralce Linux 9**
**VM.Standard.A1.Flex**

が選択されていることを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/5b0436d5-b3fc-4924-cd57-00332c4afebf.png)

#### プライマリVNIC情報

プライマリ・ネットワーク
　VCN: **VCN01**
　サブネット: **public_subnet(リージョナル)**
プライマリVNIC IPアドレス
　IPv4アドレス: **10.0.0.101**

 を選択または入力します。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/c87b4962-7f09-d466-b045-246690c78c18.png)

#### SSHキーの追加

あらかじめSSHキーを作ってある場合は、SSH公開キーをアップロード、もしくはコピー・ペーストでOCIコンソール上に貼り付けることにより、VM作成時にSSH公開鍵を登録することができます。

（SSHキーの準備がない場合は秘密鍵、公開鍵両方をこのOCIコンソール上で生成、PCやMACなどの端末側にダウンロード、保存することができますが、秘密鍵はインターネット上を経由させないのが良いはずなので、このステップの前に、あらかじめPCやMACなどのローカルのマシンでSSHの秘密鍵、公開鍵ペアを作成し、公開鍵をOCIのこのVM作成画面でアップロードもしくは貼り付けるのが基本ではあります）

#### SSHキーの作成
ということで、SSH キーがない場合は以下のドキュメントを参考に、SSHキーを作ります。

SSHキーの作成
https://docs.oracle.com/ja/learn/generate_ssh_keys/index.html#introduction


PCにやMacなど端末側にある秘密キーで、Unix、Linuxのターミナルのシェルや、WindowsであればPuttyやTeratermなどのSSHターミナルソフトやWSLのLinux環境、Powershell上からsshコマンドで接続します。

Windows に  [WSL2](https://learn.microsoft.com/ja-jp/windows/wsl/install) と [Oracle Linux](https://apps.microsoft.com/detail/9mxq65hlmc27?hl=en-us&gl=US) をインストールすると、ここでダウンロードしたキーをそのまま利用してクラウド上のVMにSSHできて便利ですしOracle Linuxがそのまま手元のPCで動くのでお勧めです。

- Windows 10 や 11 の場合は [WSL2](https://learn.microsoft.com/ja-jp/windows/wsl/install) とその上で動く[Oracle Linux](https://apps.microsoft.com/detail/9mxq65hlmc27?hl=en-us&gl=US) をインストール、ssh-keygen コマンドで SSHキーペアを作成するのがお勧めです。

- Macであれば[ターミナル](https://support.apple.com/ja-jp/guide/terminal/trmld4c92d55/mac)からssh-keygen コマンドでSSHキーペアを作成可能です。



#### インスタンス作成ボタンを押してVM作成

SSHの秘密鍵をダウンロードできたら
**[作成]** ボタンをクリックしVM作成を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/6e2b28f8-ddb9-5e2a-ae53-554e753b87b7.png)

インスタンスの作成が完了すると左上のインスタンスのアイコンがグリーンになり「実行中」と表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/9edf693c-3f39-11d3-2165-803a17aeb4a1.png)



## 2つ目のVM

下記の情報に従って2つ目のインスタンスを作成します。
1つ目のインスタンスと同じ [**VM 作成手順**](#vm-作成) です。
1つ目のインスタンスと重複する手順の説明は省略します。


~~~
インスタンス名: instance-02
シェイプ: VM.Standard.E4.Flex
Private IP: 10.0.0.102
~~~

## VMが正常に動作していることの確認
### VM起動確認

OCI のコンソールから VMが2台とも正常に起動していることを確認します。
左上のナビゲーションメニューから、**[コンピュート]** > **[インスタンス]** を選び、クリックするとインスタンス一覧を確認することができます。
状態が実行中でグリーンになっている事や、パブリックIPが割り当てられていることを確認しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/ef81532f-797b-aab4-6c49-24ec9c579ba0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/6088b7a5-f1a6-7cc7-9b06-d56848638e9f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/5ea66a7a-8bdd-d4c8-a467-b75e9e1fafc9.png)



## SSHでVM接続確認

#### SSHでVMインスタンスへの接続
OCI上に作成したVMインスタンスへSSH接続を行うにはこちらのドキュメントを参考にしてください。

**インスタンスへの接続**
https://docs.oracle.com/ja-jp/iaas/Content/GSG/Tasks/testingconnection.htm

##### Windows 10または11 での Oracle Linux 9 とMacOSからのSSH
- Windows 10 や 11 の場合は [WSL2](https://learn.microsoft.com/ja-jp/windows/wsl/install) 上で動く[Oracle Linux](https://apps.microsoft.com/detail/9mxq65hlmc27?hl=en-us&gl=US) をインストールして使うのがお勧めです。

- Macであれば[ターミナル](https://support.apple.com/ja-jp/guide/terminal/trmld4c92d55/mac)からSSH接続が可能です。

<!--
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/528ef341-33ff-2cca-bb5d-7759a095af4d.png)
-->
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/77512819-ec4b-53bc-a0c5-2e4177d86689.png)

WSL を使用して Windows に Linux をインストールする方法
https://learn.microsoft.com/ja-jp/windows/wsl/install

Oracle Linux 9 アプリダウンロード
https://apps.microsoft.com/detail/9mxq65hlmc27?hl=en-us&gl=US
https://apps.microsoft.com/detail/9mxq65hlmc27?hl=ja-jp&gl=JP

Macの「ターミナル」とは?
https://support.apple.com/ja-jp/guide/terminal/trmld4c92d55/mac


#### WSL で Oracle Linux 9 起動
WSL2と Oracle Linux 9 をWindows マシンにインストールしたら、Windows のスタートメニューから Oracle Linux 9　を起動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737461/6722c967-aacf-a888-577f-bced97ae1388.png)

PC 上の Oracle Linux 9 や Mac の ターミナル上から ssh コマンドで コンピュート VM instance-01 や instance-02 のパブリックIPアドレスに接続します。

例えば、

ssh の秘密鍵: **ssh-key-20yy-mm-dd.key**
接続先 パブリック IP: **xxx.xxx.xxx.xxx**
ログインアカウント: **opc**

の場合は以下のようになります。

~~~
$ ssh -i ssh-key-20yy-mm-dd.key xxx.xxx.xxx.xxx -l opc
Last login: Thu Mar zz zz:zz:zz 2024 from yyy.yyy.yyy.yyy
[opc@instance-01 ~]$
~~~

今回2つのコンピュートVMはどちらもパブリックサブネットに配置し、パブリックIPを持たせてあるので、インターネット側から容易にアクセス可能となっています。

もちろん、VMなどのリソースをプライベートネットワーク上に配置し、踏み台サーバーやVPN、専用線経由でシステムをクラウド上に構成することも可能です。


インスタンスの起動確認と接続確認は以上です。

<!---
次は **[その３ VM上の Oracle Linux 9 に apache、PHPインストール、設定 ](https://qiita.com/Assemble_EX-80/private/d89ddb7b78c84373c49a)** になります。
--->


# 次の記事
**[その３ VM上の Oracle Linux 9 に apache、PHPインストール、設定 ](https://qiita.com/Assemble_EX-80/items/d89ddb7b78c84373c49a)**　になります。

# 前の記事
**[その１ はじめに](https://qiita.com/Assemble_EX-80/items/09d552f69e8b60e6f804)** に戻る。

<!-- 
$ cp  /mnt/c/Users/your_user_name/Downloads/downloaded_ssh-key-2024-xx-xx.key ./.ssh/id_dsa 
-->

 
# 連動記事
**OCI Full Stack Disaster Recovery (FSDR) が Load Balancer 対応になったので試してみた**
https://qiita.com/Assemble_EX-80/items/92262c337290d57b670c