IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた（9.アクセステスト）

#はじめに

「[IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた](https://qiita.com/shimauma_Zzzzz/items/9a513abdf02d11fff55b)」の　最終回、第9回です。
ここでは、 ブラウザからのアクセステストを行うとともに、 kubernetes のスケールアウト機能を見てみたいと思います。

実施内容は以下の通りです。

- ブラウザからのアクセス
- Pod のスケール
- テーブル情報のリセット
- 終わりに

第8回までに準備はすべて終わっていますので、ブラウザからアクセスすればよいだけです。
アクセスの経路は下図のオレンジの矢印です。

![65.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/697cfbff-a5c2-bd7d-111a-8ea971a75d1c.png)


#ブラウザからのアクセス

ブラウザからアクセスする際の URL は以下のような形式になっています。

`http://ノードIP:ポート/コンテキストルート/クラス名`

それぞれ以下の通りです。

|項目|内容|確認方法概要|
|:--|:--|:--|
|ノードIP|kubernetes ノードのIP|kubectl get nodes -o wide|
|ポート|NodePort で指定した公開用ポート|kubectl get svc|
|コンテキストルート|アプリ作成の際に指定したプロジェクト名(と同じ)|eclipse のProject (のプロパティ)|
|クラス名|アプリ作成の際に指定したクラス名|eclipse のProject のツリー|

それぞれ以下のようになっています。

■ノードのIP

```console
# kubectl get nodes -o wide
NAME            STATUS   ROLES    AGE   VERSION        INTERNAL-IP     EXTERNAL-IP      OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
10.77.166.249   Ready    <none>   9h    v1.17.11+IKS   10.77.166.249   173.xxx.xxx.xxx   Ubuntu 16.04.7 LTS   4.4.0-189-generic   containerd://1.3.4
```
（※173.xxx.xxx.xxx　の部分です)

■ポート

```console
# kubectl get svc
NAME              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes        ClusterIP   172.21.0.1       <none>        443/TCP          9h
liberty-counter   NodePort    172.21.135.121   <none>        8080:30080/TCP   53m
```
（※今回は 30080）

■コンテキストルート / クラス

![66.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/f281cd36-4715-6fbc-a9f6-7796729f6f20.png)

■ URL
結局、今回の URL は以下の通りです。

`http://173.xxx.xxx.xxx:30080/LibertyCounter/Counter`

早速アクセスしてみます。

---

![70.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/a66abef9-2ca3-7fec-2b6d-2c6a1603d5af.png)

----

複数回アクセスするとカウンターがアップしていきます。
（複数Pod 状態の際、単純なリロードでは同じPod に行くようです。その場合 ハードリロードを行ってください。（ブラウザによってやり方が異なります。Chrome の場合 Ctrl + F5 ））

![71.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/07acbdd2-55f5-e981-9868-c617421992a3.png)

----


#Pod のスケール

次に Pod の数を増やしてみます。　[第8回](https://qiita.com/shimauma_Zzzzz/items/7d586dd70341bbe6881c)で作成した yaml ファイルの replicas を 1->3 に増やしてみます。

```console
# cat liberty-counter_Deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: liberty-counter
  name: liberty-counter
spec:
  replicas: 3
  selector:
    matchLabels:
      app: liberty-counter
...(略)...
```

修正した yaml ファイルを apply します。

```console
# kubectl apply -f liberty-counter_Deploy.yaml
deployment.apps/liberty-counter configured

# kubectl get pods
NAME                               READY   STATUS    RESTARTS   AGE
liberty-counter-56b4795b97-9knbv   1/1     Running   0          114m
liberty-counter-56b4795b97-vflvs   1/1     Running   0          51s
liberty-counter-56b4795b97-vg8vv   1/1     Running   0          51s
```

Pod が3つになっていることがわかります。
新規 Pod は起動に少し時間がかかります。

その後、アクセスを繰り返すと以下のように負荷分散されていることが見て取れます。
（末尾 9knbv へのアクセスが多いのは、Pod を増やす前に何度もアクセスしていたからです。）

![72.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/23d3af2f-8293-a55b-e1e0-a55fce9e8ec3.png)



#テーブル情報のリセット

今回、Db2 のテーブル情報をリセットする手段を作りこんでいません。
そのため、いろいろアクセスしていると古いデータがたまっていき見づらくなってきます。
参考にテーブル情報をリセットする方法を記載します。（これ以外のやり方もあります)

[第5回のサンプルテーブルの作成](https://qiita.com/shimauma_Zzzzz/items/9d3234757bb1c70e98c5#%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E4%BD%9C%E6%88%90)を参考に、下記の SQL を発行します。

`truncate table ユーザー名.test01 immediate`

それで、テーブル内のデータが消去されます。
その後またアクセスを行うと、アクセス回数が1 から順次インクリメントされます。


#終わりに

「[IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた](https://qiita.com/shimauma_Zzzzz/items/9a513abdf02d11fff55b)」では、
「***クラウドの準備からアプリケーションを乗せて動かすまで***」をできるだけシンプルに、
一通りやってみることにより理解を深めることを目指しました。
個人的には実際にやってみることにより一連の記事に書いた以上の様々なことを理解することができ、クラウドでためしてみる、ということのハードルが下がりました。
この一連の記事が、クラウド（特にIBM Cloud）に入門する方にとって少しでも役に立てば幸いです。

この先もまた、別のテーマで何か書いていければと思います。

---

←：[IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた（8.IKS へのコンテナのデプロイ）](https://qiita.com/shimauma_Zzzzz/items/7d586dd70341bbe6881c)
↑：[IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた（1.概要）](https://qiita.com/shimauma_Zzzzz/items/9a513abdf02d11fff55b)

終わった！と見せかけつつ番外編を追加しました！
→ [番外編.コンテナイメージのUpdate](https://qiita.com/shimauma_Zzzzz/items/5ba830350c6c976f12b5)

---