Oracle Cloud の Load Balancer で Private Compute に置いた 静的HTML を ロードバランスしながら表示してみる。

こちらの記事は Oracle Cloud Infrastructure Advent Calendar 2019 Day 16 の記事となります。

 > Oracle Cloud Infrastructure Advent Calendar 2019
 > https://adventar.org/calendars/4516

表題の通り、OCI の Load Balancer で Private Compute に置いた 静的HTML を ロードバランスしてみるやで。
彡(ﾟ)(ﾟ)

# 1. 構成図

下記のような構成を組みます。
![AdventC_000.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/173ca35e-c28d-6861-8f22-78a08fac431c.jpeg)

ポイントは以下の通りです。

> ・Public Subnet に Load Balancer と 踏み台Compute を配置
> ・Private Subnet に Compute を 2つ配置
> ・Public Subnet に Internet Gateway を アタッチ
> ・Private Subnet に NAT Gateway と Service Gateway(※) をアタッチ
> 　※本記事の構成だけであればSGWは不要ですが、後日に繋ぎます。

# 2. ネットワーク・リソースの構成

構成図通りに VCN, Route Table, Security List, Gateway, Subnet を作成します。下記の記事を参照すると非常に捗ります。彡(ﾟ)(ﾟ)

 > Oracle Cloudが永遠に無料らしいので開発環境を作ってみたかった (ネットワーク編)
 > https://qiita.com/mokkan/items/ffb5bae17edce8e563be

下記スクショはPublic/Privateそれぞれのセキュリティ・リストとルート表彡(ﾟ)(ﾟ)

![AdventC_007.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/e738a5b5-5ef9-95ef-a001-3c551b1fc779.jpeg)
![AdventC_008.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/a7430dfc-3b9f-f216-5bd1-0582715792b2.jpeg)
![AdventC_009.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/afec1030-787a-760b-fe0a-0fb0fbe3e3ab.jpeg)
![AdventC_010.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/e08b18b6-afff-d311-3257-b4c999cbbe92.jpeg)


# 3. Computeインスタンス作成＆sshログイン

Computeインスタンスを粛々と作成します。下記記事が参考になります。

> 【OCI】oracle cloud -仮想マシン(Compute)作成編-【初心者向け】
> https://qiita.com/manaki079/items/0ded6b4e25c2f57b3657

踏み台を経由した Private Compute の sshログイン には下記記事のやり方を参考にしています。

> Pageantを使用した踏み台サーバー経由のssh
> https://qiita.com/untitle_23/items/7af5e6b1d29f95c13f36

# 4. Private Compute に Apache(httpd)インストール 及び OS firewall の 80番ポート開放

下記記事を参考にさせて頂きました。(｀･ω･)ゞ

 > CentOS7.2 httpdの設定
 > https://qiita.com/salt_field/items/3e255c3356006a1e020f

```
sudo su -
yum install httpd
systemctl start httpd
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --reload
```

# 5. 静的HTML の配置

Private Compute の /var/www/html に index.html を配置します。BODY部分は変えておくとロードバランス時の区別が付きます彡(ﾟ)(ﾟ)

```html
vi /var/www/html/index.html

<!DOCTYPE html>
<HTML>
<HEAD>
    <title>LB test</title>
</HEAD>
<BODY>
    Hello, host2.
</BODY>
</HTML>
```

# 6. Load Balancer, Backend Set, LB Listener の作成

Load Balancer, Backend Set, LB Listener を作成します。スクショぺたぺた彡(ﾟ)(ﾟ)
![AdventC_001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/2dab5dda-8d3e-0e32-4bb3-36588d2f2dd5.jpeg)
![AdventC_002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/3c769792-9ae0-b711-17ec-47f7c33c2f01.jpeg)
![AdventC_003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/843f6b02-4017-1ea0-20dc-7173794b03bd.jpeg)
![AdventC_004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/f9f37e96-d355-6294-5fd4-f1118e1ee0c5.jpeg)


# 7. Load Balancer へのアクセス(静的HTML表示)

Load Balancer の Public IP を ブラウザの URL に指定してアクセスします。
http://\<LBのPublic IP>/index.html へのアクセスで、ロードバランスできてる！彡(^)(^)
![AdventC_006.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/a25948ee-6b60-9dd9-e5c3-80acc342f4a6.jpeg)
![AdventC_005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110066/d2b56a2e-3ee6-d7e1-28de-59a4ff6a4f91.jpeg)

# 8. まとめ

当初は Always Free で この記事書こうとしてたのですが、Always Free だと Private Computeにsshはできるものの、NAT Gateway が作れなくてyumが出来なくてですね……彡(-)(-)
とまれ、Load Balancer の基本的な動きは確認できました。LBのSSL(https)設定とか、Autonomous Database接続する簡易アプリとか、続きを書くかも？彡(ﾟ)(ﾟ)