Db2と、Db2 on Cloudと、Db2 Warehouse on Cloudは何が違う？ ~基本編~

# Db2 と Db2 on Cloud, Db2 Warehouse on Cloud
Db2サーバのクラウド化というとIaaSへの移行が行われることが多いですが、構築不要で利用申請をするだけでデータベースが利用可能になるDBaaS(PaaS)もとても利便性が高く、今後の運用の手間を最小化していきたい場合などの移行先として、魅力があります。 

これまでオンプレミスのインフラで動かしてきたデータベースを、DBaaSである Db2 on Cloud へ移行するときや、新規にデータウェアハウスを構築する際にDb2 Warehouse on Cloud(略称：Db2WoC)を採用するにあたって、オンプレミスのDb2とどういった違いがあるでしょうか。
この記事では、オンプレミス版Db2とDb2 on Cloud、Db2WoCについて基本機能の違いをまとめます。

なお、Db2製品の概要と2022年6月現在のラインナップは、[こちらの記事](https://qiita.com/mi-kana/items/f995a924ac6e3368d1db)に簡単に整理しています。


## 比較ポイント(1) プラットフォーム、OS
#### オンプレミス版Db2
オンプレミス版は、ハードウェアは自己調達します。
OSについてはUNIX系(IA-Linux, z/Linux, AIX),Windowsから任意で選択することができます。
サポートされるOSバージョンなど詳細はこちらのページで調べることができます。
[System requirements for IBM Db2 for Linux, UNIX, and Windows](https://www.ibm.com/support/pages/system-requirements-ibm-db2-linux-unix-and-windows)

IaaS環境への移行においても、同ページにあるOSを利用可能です。
Public Cloudについては、下記マニュアルに記載のあるクラウド環境が利用可能です。
https://www.ibm.com/docs/en/db2/11.5?topic=database-support-db2-public-clouds

#### Db2 Warehouse on Cloud(Db2WoC)
DBaaSであるDb2WoCの場合、 HW種別もOSも選択できません。
OSはLinuxで、ディストリビューションやバージョンなどはIBM社により選択されたものが提供されています。
クラウドプラットフォームとして IBM Cloud か、AWSかを選択することができます。


#### Db2 on Cloud
Db2WoC同様、OSはLinuxとなります。
クラウドプラットフォームは、IBM Cloud となります。


## 比較ポイント(2) エディション / プラン
Db2、Db2 on Cloud、Db2WoCは、課金の体系が異なります。


#### オンプレミス版Db2
オンプレミス版では、3つのエディションがあります。
すべてのエディションで同じコード・ベースが共有され、エディション間の違いはリソースの制約だけです。

| エディション | 仮想プロセッサー・コア | Memory(GB) | ライセンス種別 |
|:-:|:-:|:-:|:-:|
| Advanced Edition  | 無制限  | 無制限  |永久/月次   |
| Standard Edition  | 16  |128  | 永久  |
| Community Edition  | 4  | 16  | 永久   |

製品サポートを得るためにはリソース(CPUコア,メモリ)に応じたライセンス購入が必要となりますが、
Db2 11.5からは無償で永続利用可能なCommunity Editionが登場し、ライセンスを購入/登録しなくても無期限で利用できるようになりました。
V11.1以前もライセンス未適用で試用することはできましたが、90日間の利用制限がありました。

無償で使えるCommunity Editionでも機能面の制約はなく、Advanced Edition と同じ機能を使うことができます。(ただし、Community Editionでは製品サポートは受けられません）
使用中のCommunity Edition導入済環境に、Advanced や Standard Edition のライセンスファイルを適用すれば、そのまま有償サポート有の環境へと移行できます。



#### Db2 Warehouse on Cloud(Db2WoC)
Db2WoCには5つのエディションがあります。
https://www.ibm.com/jp-ja/cloud/db2-warehouse-on-cloud/pricing
(下の表は、2022.07時点で上記リンク先に掲載される内容を引用したものです)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/468682/28bd3440-7b3a-4d93-243e-cb0a180b46b2.png)

中規模データセット向けのFlex Oneは IBM Cloudのみの提供ですが、
大規模データセット、実稼働向けの Flex/Flex Performance については、IBM Cloud もしくは Amazon Web Services(AWS) を選ぶことができます。


#### Db2 on Cloud
Db2 on Cloud にはLite、標準、エンタープライズの3つのプランがあります。
https://www.ibm.com/jp-ja/cloud/db2-on-cloud/pricing
(下の表は、2022.07時点で上記リンク先に掲載される内容を引用したものです)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/468682/781339d5-d7eb-0a25-ab5f-7dc68fe2f33b.png)

Db2 on Cloudは、Liteエディションであれば無償利用が可能です。ただし、下記の制限があります。

 * マルチテナントDB(複数ユーザで1つのDBを共有)、占有できるのはデータベーススキーマのみ
 * 同時接続数制限15
 * ストレージは200MBまで
 * 非アクティブで 30 日経過すると削除される /  90 日ごとに無料アカウントの再延長を求める電子メールが送られる



## 比較ポイント(3) セットアップ方法、アップグレードの方法
この点が最も大きな違いで、Db2(Warehouse) on Cloud のメリットが得られるポイントです。
オンプレミス版では、製品バイナリのインストール、インスタンス作成、DB作成といった手順が必要となります。
また、最新バージョンへのアップグレードも、ユーザーの作業となります。
Db2 Warehouse on Cloud, Db2 on Cloud では、インストールもセットアップも不要で、常に最新版のDb2を利用することができます。

補足(詳細)：
[Db2と、Db2 on Cloudと、Db2 Warehouse on Cloudは何が違う？ ~導入構成編~](https://qiita.com/mi-kana/items/003be6cda6b80718c70c)

## 比較ポイント(4) データベースの特性
Db2 Warehouse on Cloud(Db2WoC)、Db2 on Cloud は、オンプレミス版とほとんど同じように利用可能なDb2が提供されるサービスですが、
部分的にはいくつか違いがあります。
今時点でわかっている特徴的な違いを挙げてみます。

| 項目 | オンプレミス版 | Db2WoC | Db2 on Cloud |
|:-:|:-:|:-:|:-:|
| データベース名  |任意に指定可能   |  BLUDB | BLUDB  |
| 利用可能な<br>データベース数  | 任意に作成可能  | 1つ  | 1つ  |
| コードページ<br>(文字コード)  | 任意に指定可能  | UTF-8  | UTF-8  |
| テリトリー(国)  | 任意に指定可能   |  US | US  |
| デフォルトの表構成(※1)  | 行指向| 列指向  | 行指向  |
| スキーマ  | 任意に作成可能  | 任意に作成可能  | 任意に作成可能(※2) |
| DB障害時の復元ポイント  | ・end of backup<br>・end of logs<br>・point-in-time  | end of backup  | ・end of backup<br>・point-in-time |

(※1) Db2のデフォルトの表構成は、[dft_table_org 構成パラメータ](https://www.ibm.com/docs/ja/db2/11.5?topic=parameters-dft-table-org-default-table-organization)で決定されますが、create table文のORGANIZE BY [ROW|COLUMN]オプション指定で個別に変更することもできます。
(※2) Lite版に関してはあらかじめ作成された単一のスキーマのみ利用可能で、任意のスキーマを追加作成することはできません。



## 比較ポイント(5) 高可用性構成

#### オンプレミス版Db2
オンプレミスのDb2では、高可用性要件に応じて以下のような構成を選択することができます。

 * 単一DBサーバ構成　(可用性なし)
 * アクティブ - スタンバイ構成 (共有ディスクと共有IPを引き継ぐ方式)
 * HADR (アクティブ - ホット・スタンバイ構成)
 * pureScale (ロード・バランス型クラスタリング構成)


#### Db2 Warehouse on Cloud(Db2WoC)
Db2 Warehouse on Cloud では、DPF(Data Partitioning Feature)と呼ばれる、
パーティションデータベース構成となっています。
サーバ障害が発生した場合にはクラウドサービスとして自動復旧され、同じデータベースを継続利用することができます。
また、これに加えて災害復旧 (DR) 用にデータベースのフルバックアップが週に 1 回作成され、地域間複製されます。 
DRバックアップは、災害・システムの損失が発生したときのシステム復旧に、IBM サービス・オペレーターによって使用されます。

この DR バックアップは暗号化され、IBM CloudであればIBM Cloud Object Storage (COS) に、AWSであればAmazon Web Services S3 に保管されます。
IBM Cloud, AWS どちらの環境を利用する場合も、各 DR バックアップは複数のリージョンに複製され、1 つのゾーンで障害が起こっても可用性が確保されるようになっています。
デフォルトでは、過去 2 週間の DR バックアップが保持されます。 
DR バックアップの RPO は 1 週間です。 
災害発生時の RTO はデータベースのサイズによって異なり、データのテラバイト当たり 1.5 時間です。

参考：[Db2 Warehouse on Cloud : 災害復旧](https://cloud.ibm.com/docs/Db2whc?topic=Db2whc-dr)

#### Db2 on Cloud
Db2 on Cloud を利用した場合も、Db2WoC同様にサーバ障害が発生した時にはクラウドベンダーであるIBMにより、再起動が行われます。
切替までにかかる時間を短くする必要があるなど、さらなる高可用性構成をとりサービス停止時間をより短縮したい場合、Db2 HADR による高可用性構成のプランを選択することもできます。

Db2 on Cloud では、3台のサーバーにより可用性を担保する高可用性(HA)オプションが、標準/エンタープライズプランに提供されます。
Db2 on Cloud 高可用性プランは、SLA 99.99% の可用性特性があるとされます。

 * 標準プランでは、3 台の共有仮想サーバー上で稼働する 1 つのデータベースを含む高可用性オプションが提供されます。
 * エンタープライズプランでは、3 台の専用仮想サーバー上で稼働する 1 つのデータベースを含む高可用性オプションが提供されます。

どちらのプランにおいても、3つのHADRノードは、IBM Cloud リージョンの独立した異なるアベイラビリティー・ゾーンに渡ってプロビジョニングされます。

さらに、HADRのノードを異なるリージョンに配置する、地理間複製災害復旧ノードも利用可能になっています。
これにより、万一 1 次リージョンが故障した場合でも引き続きデータにアクセスすることができます。
例えば、1 次インスタンスをダラスに配置して、DR ノードをロンドンに配置するといった構成を選択することができます。

参考：
[Db2 on Cloud : 高可用性 (HA)](https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-ha)
[Db2 on Cloud : 地理間で複製される災害復旧 (DR)](https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-dr_gen)


## 比較ポイント(6) 運用インターフェース
オンプレミス版Db2では、シェルスクリプトとコマンドラインインターフェースを用いて運用を行うことが一般的です。
これに対し、DBaaSであることの最大の特徴として、OSにログインすることができず、主にWebコンソールやREST APIを利用して運用管理を行うことになる点が大きな特徴です。
例えばバックアップは、任意のタイミングでも取得できますし、日次バックアップも自動取得されます。
この日次バックアップの取得時刻変更やリストア操作などは、Webコンソールから管理します。




## 比較ポイント(7) セキュリティ
オンプレミスも Db2 on Cloud, Db2WoC の場合も、データベース暗号化機能やSSL(TLS)接続、データベース監査といったセキュリティを向上するための機能を利用することができます。

#### オンプレミス版Db2
データベース暗号化(Db2 Native Encryption)を利用することができます。
接続は、SSL(TLS)、TCPIP(non-SSL)のどちらも任意で利用可能です。
近年では、外部との接続を意識してSSL接続を選択されるお客様が増えています。

#### Db2 Warehouse on Cloud
セキュリティーを考慮して、デフォルトでデータベースおよびバックアップは暗号化されます。
外部からの接続はSSL接続であり、流れているデータはSSL/TLS で暗号化されます。
バックプレーン・ネットワーク接続は、
IBM Cloud にデプロイされている場合は  IBM Cloud サービス・エンドポイント、
AWSにデプロイされている場合は Amazon Web Services PrivateLink でサポートされます。

また、Db2 監査機能を使用して、データベース・イベントの監査証跡を生成・保存し、データ・アクセスを管理することが可能です。




参考：
[Db2WoC：データ・セキュリティーと暗号化](https://cloud.ibm.com/docs/Db2whc?topic=Db2whc-encryption)
[Db2WoC：監査](https://cloud.ibm.com/docs/Db2whc?topic=Db2whc-auditing)




#### Db2 on Cloud
セキュリティーを考慮して、デフォルトでデータベース、およびバックアップは暗号化されており、
外部からの接続はSSL接続であり、流れているデータはSSL/TLS で暗号化されます。
バックプレーン・ネットワーク接続は IBM Cloudサービス・エンドポイントでサポートされます。

また、Db2 監査機能を使用して、データベース・イベントの監査証跡を生成・保存し、データ・アクセスを管理することが可能です。


参考：
[Db2 on Cloud：データ・セキュリティーと暗号化](https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-encryption)
[Db2 on Cloud：監査](https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-auditing)


## 比較ポイント(8) クライアントからの接続方法
クライアント側の構成方法はオンプレミス版Db2, Db2WoC, Db2 on Cloud 何れを使う場合も同じです。
Db2WoC, Db2 on Cloud はオンプレミス版と比較して、下記の特徴があります。

| 項目 | オンプレミス版Db2 | Db2 Warehouse on Cloud,<br> Db2 on Cloud| 
|:-|:-|:-|
| SSL/non-SSL  | 選択可能  | デフォルトはSSL<br>Case(サポート問い合わせ)によりnon-SSLも可  |
| SSL証明書取得方法  | 購入 |  Webコンソールから取得 |
| 接続ユーザー/パスワードの確認方法  | DB管理者に問い合わせ  | Webコンソールの「サービス資格情報」メニューから確認  |

Db2WoC, Db2 on Cloudについてはクラウド環境であることから、プライベートエンドポイントを利用して接続する要件がある場合、プライベートエンドポイント接続の有効化が必要となることも考慮点となります。

下記のマニュアル/記事が、実際に構成する際に参考になります。

参考：
[Db2 on Cloud 製品マニュアル「接続の概要」](https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-connect_ov)
[Db2 Warehouse on Cloud 製品マニュアル「接続の概要」](https://cloud.ibm.com/docs/Db2whc?topic=Db2whc-connect_ov)

[Qiita記事「[2020年最新版] Db2 Warehouse on CloudにDb2 Data Server CLIからSSL接続する」](https://qiita.com/HDM_Tech_Team/items/cdf53e1ee8d63ffd7327)\
[Qiita記事「Db2 docker から Db2 on CloudのDBに接続」](https://qiita.com/nishikyon/items/8b2cbbe3846b75ba5103)
[Qiita記事「Open Liberty ベースのPod から Db2 on CloudへのSSLでの接続方法」](https://qiita.com/hi-mari/items/96433fce92644ef1a51b)



----
以上です。