Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (1) 概要

# はじめに

Wazi as a Service(以降Wazi aaS) というIBM Cloud上でz/OS仮想開発環境を提供するサービスが2022年から提供されるようになりました。
このシリーズでは、Wazi aaSを使用してクラウド上にz/OS開発環境を作成してみた時のログを記載していきたいと思います。
まずはじめに、当記事ではWazi aaSの概要について整理します。

## 関連記事

[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (1) 概要](https://qiita.com/tomotagwork/items/487d91ea8ddfb50e7257)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (2) 仮想サーバー作成](https://qiita.com/tomotagwork/items/9cea4c804f260d609eed)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (3) ネットワーク構成](https://qiita.com/tomotagwork/items/be2803e504b87cf364e5)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (4) Wazi aaS への接続](https://qiita.com/tomotagwork/items/b59717d767a91628b825)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (5) Stock Iamge確認](https://qiita.com/tomotagwork/items/40b7eaec61e31f830cbe)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (6) Stock Iamge基本操作/カスタマイズ](https://qiita.com/tomotagwork/items/0f2e914fd6263f2b40db)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (7) Wazi Image Builder](https://qiita.com/tomotagwork/items/fcfd295aaa54fa597c4b)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (7)' Wazi Image Builder - Trouble Shootingメモ](https://qiita.com/tomotagwork/items/fd804734595644a09d47)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (8) Wazi aaS仮想サーバーの複製](https://qiita.com/tomotagwork/items/ef23025b1ca3800b73c1)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (9) TerraformによるWazi aaS仮想サーバーの管理](https://qiita.com/tomotagwork/items/883652c1534d12f2b042)

# Wazi aaSとは

これまでも、メインフレーム開発環境をクラウド上にオフロードする(つまり仮想z/OS環境をクラウド上に構築する)方法は提供されていました。主なものとしては以下のような製品が提供されています。

**ZD&T**
一つはZD&T(IBM Z Development and Test Environment)という製品を使用する方法です(古くはRD&TやRDzUTと呼ばれていた製品です)。これはx86アーキテクチャーのサーバー上(Linux)にインストールして使用できるz/OSエミュレーター製品です。ZD&Tは例えばクラウド上のx86 Linux仮想サーバー上で利用できます。

**Wazi Sandbox**
もう一つはWazi Sandboxと呼ばれるもので、x86系のOpenShift上にz/OSエミュレーターを構成できます。z/OSのイメージがOpenShift上のPodとして稼働するイメージです(ZD&TのOpenShift版という位置づけ)。
Wazi Sandboxは、以前は「Wazi Developer for Red Hat CodeReady Workspaces」という製品の1コンポーネントとして提供されていましたが、製品体系が変わり2023年3月現在では 「IBM Z and Cloud Modernization Stack」という製品に含まれる形で提供されます。
Wazi Sandboxは例えばクラウド上のマネージドのOpenShift環境で利用可能です。


これらを利用したクラウド上での環境構築については以下の記事を公開していますのでご参考まで。
[クラウド上でのメインフレーム開発環境構築](https://qiita.com/tomotagwork/items/3b0c918c37ccf54a9ce8)(ZD&T)
[Wazi: OpenShift上でのメインフレーム開発環境構築](https://qiita.com/tomotagwork/items/4f254440959ff0a97e4b)

ZD&TやWazi Sandboxは、それぞれS/Wライセンスを購入して、クラウド上の仮想サーバーやOpenShift上に構成をして使用する必要がありました(他のIBMミドルウェア製品と同じようなイメージで利用)。
一方で、Wazi aaSは "as a Service" という名前が付いているように、仮想z/OS環境を"サービス"として利用することができます(基本的にはS/Wの導入や構成は不要)。
LinuxやWindowsなどのx86の仮想サーバー(IaaS)をクラウド上で構成したことがある方はイメージしやすいかと思いますが、通常、クラウド上で仮想サーバーを立ち上げる際は、ロケーションやCPUアーキテクチャー、サーバーのプロファイル(CPU数、メモリ・サイズ、...)、OSの種類などを選択して"作成" のアクションをすることで仮想サーバーが出来上がります。
このようにx86のLinuxやWindowsの仮想サーバーを立ち上げるのと同じイメージで、疑似z/OSが稼働する仮想サーバーを立ち上げることができます。

Wazi aaSはクラウドネイティブな方法でz/OS環境を作成でき、かつ、s390xアーキテクチャーのH/Wで稼働する、というのが大きな特徴です。

使用するH/Wスペックにもよりますが、x86 CPU上でのエミュレーター製品(ZD&T, Wazi Sandbox)を使用する場合、旧来からのPCOMでの利用方法が主体の場合は使用感にそれほど不都合は生じないレベルでしたが、z/OSMFやIDzなど比較的新しい機能(特にJavaが使われている機能)についてはパフォーマンスが大きく劣化する状況が見受けられました。
s390xベースであるWazi aaSは、Javaで実装された機能のパフォーマンスに大きな改善がなされています。


## Wazi aaS仮想サーバー作成イメージ

Linuxの仮想サーバー(IaaS)を作成するのと同じ要領で、CPUアーキテクチャー、ロケーション、OS、サーバーモデル、ディスクなどを選択して「作成」とすると、指定したプロファイルでクラウド上に仮想z/OS環境が立ち上がることになります。

<details><summary><font color="blue">参考: IBM Cloud VPC仮想サーバー作成画面イメージ</font></summary><div>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/d3ed4f58-036d-1f89-fbc7-eed1107fac05.png)

</div></details>

## 料金について

実際に仮想サーバーを作成しなくてもIBM Cloudのアカウントにログインしてプロファイルを選ぶと右側にコストの見積りが表示されます。

- アーキテクチャー: **IBM Z(s390xアーキテクチャー)**
- ホスティングタイプ: パブリック
- ロケーション: アジア太平洋 - 東京 - 東京2
- OS: **z/OS**
- プロファイル: 2vCPU, 16GiB RAM
- ブートボリューム: 250GB
- データボリューム: 1000GB

ちなみに、同じような設定でx86のLinux(RHEL)を選択してみると...

- アーキテクチャー: **Intel(x86アーキテクチャー)**
- ホスティングタイプ: パブリック
- ロケーション: アジア太平洋 - 東京 - 東京2
- OS: **RHEL V8.8**
- プロファイル: 2vCPU, 16GiB RAM
- ブートボリューム: 250GB
- データボリューム: 1000GB

両者の見積りの差分をみると、15倍くらいの差がありました。
さすがにz/OSの仮想サーバーはそこそこのお値段します...。まぁオンプレのzSystems使うことに比べたら圧倒的にお手軽に使えると思いますが。

ちなみに、仮想サーバーのインスタンスを停止している間は仮想サーバー自体は課金対象とはなりませんので不要な時は停止させておくことでコスト削減につながります(浮動IPやストレージは課金対象となります)。詳細は以下をご参照ください。

参考: 
[VPC に対する課金の一時停止](https://cloud.ibm.com/docs/vpc?topic=vpc-suspend-billing)
[Managing z/OS virtual server instances - Stopping and starting a z/OS virtual server instance](https://www.ibm.com/docs/en/wazi-aas/1.0.0?topic=vpc-managing-zos-virtual-server-instances)
>Billing is suspended External for some compute resources while the instance is stopped. You cannot interact with an instance if it is stopped, but volumes remain provisioned. If the instance is started, normal interaction and billing continue.


※2023年6月時点

## ZD&T, Wazi Sandboxとの主な違い

|    | ZD&T, Wazi Sandbox | Wazi aaS |
|----|--------------------|----------|
|課金体系 | S/Wとしてのライセンス | 従量課金 (IBM CloudのVPC上の仮想サーバーと同様) |
|サーバー構成       | 別途ライセンス・サーバー(x86/Linux)を立てる必要がある | ライセンス・サーバーは不要 |
|CPUアーキテクチャー | x86 | s390x |

参考:
[ZD&T V14 発表レター](https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/0/760/JAJPJP22-0390/index.html)
[IBM Z and Cloud Modernization Stack 発表レター](https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/3/760/JAJPJP22-0273/index.html)
[IBM Cloud Virtual Server for VPC - Pricing](https://www.ibm.com/cloud/virtual-servers/pricing)


## 仮想z/OS環境整理 

開発/テスト環境を仮想環境にオフロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/bae0be0a-b1ec-6c6f-6917-1257c3995d1d.png)

## Stock Image

ZD&TではADCDと呼ばれる出来合いのz/OSイメージが提供されており、ミドルウェアや言語環境など一式そろった状態で提供されます。同じように、Wazi as a ServiceでもStock Imageと呼ばれる、z/OS、ミドルウェアなどがそろったイメージが提供されます。
Stock Imageに含まれる製品は以下のドキュメントに記載があります。
[Configurations in z/OS stock images](https://www.ibm.com/docs/en/wazi-aas/1.0.0?topic=vpc-configurations-in-zos-stock-images)

仮想z/OSが上がってしまえば利用者側の観点からすると実際のz/OSと同じイメージでPCOMやIDzなどから利用することができます。アプリケーションのソースやデータは、例えばダンプ/TRS ⇒ 転送 ⇒ UNTRS/リストア などを行ってWazi aaS上に持っていくことができます。
※Stock Imageに含まれていないミドルウェアなどを使用する場合は利用条件など個別にご確認いただく必要があります。

## IBM Wazi Image Builder

製品提供のStock Imageを使用するのではなく、実際のz/OSテスト環境をコピーしてWazi aaS用のイメージを作成することも可能です。

参考: 
[IBM Wazi Image Builder 発表レター](https://www.ibm.com/docs/en/announcements/wazi-as-service-wazi-image-builder)
[Bringing your own image with Wazi Image Builder](https://www.ibm.com/docs/en/wazi-aas/1.0.0?topic=bringing-your-own-image-wazi-image-builder)

<font color="red">
※Stock Imageを使用してWazi as a Serviceの仮想サーバーを立てて使用する分にはIBM Cloud上だけのサービスで完結しますが、オンプレの既存z/OSイメージをWazi Image Builderを使ってWazi aaSに移植したい場合(カスタム・イメージの作成)、Wazi Image Builderのライセンスを別途購入し、Passport Advantage経由で製品インストーラーを入手し、製品の導入/構成を行う必要がありますのでご注意ください。
</font>

## 補足

### 使用用途について
Wazi aaSは、ZD&TやWazi Sandboxと同様に、あくまでも開発/テスト目的での仮想z/OS環境を提供するものですので、本番環境としての利用はできません。パフォーマンスを担保できるものではないため負荷テストなどにも適していません。また、実行モジュールのビルド(コンパイル/リンク)は実z/OS環境で実施しなおす必要があります。

参考: 
[Configurations in z/OS stock images](https://www.ibm.com/docs/en/wazi-aas/1.0.0?topic=vpc-configurations-in-zos-stock-images)
>Note: You can use z/OS dev and test virtual servers only for development, testing, employee education, or demonstration of your applications that run on z/OS. Licensee must not use the Program for production workloads of any kind, nor robust development workloads, including without limitation, production module builds, pre-production testing, stress testing, or performance testing.

### サポートされていない構成について

オンプレ環境で実現できる全ての構成がWazi aaS環境でも実現できる訳ではありません。
例えば...
Sysplex構成はサポートされていません(Monoplex構成のみ)。
SNA接続の構成はサポートされていません(TCP/IPのみ)。
外部との接続において複数TCP/IPスタックに複数IPアドレスを割り当てて管理することはできません(複数TCP/IPスタックを起動することはできますが複数の外部IPアドレスとのマッピングはできません)。

Wazi aaSはあくまで開発環境/テスト環境の位置づけですので、その前提で利用する必要があります。

その他の細かい制約は以下もご参照ください。
参考: [Known Limitation](https://www.ibm.com/docs/en/wazi-aas/1.0.0?topic=known-limitations)


# おわりに

ZD&TやWazi Sandboxが出てきたときもすごいと思いましたが、Wazi aaSはそれらに比べて環境作るのが圧倒的に楽ですね。Linuxの仮想サーバー作るのと同じイメージでクラウド上にz/OS環境作れるというのは革命的です。
次の記事から具体的な環境作って試してみます。