IBM Cloudの価格表を取得する

# はじめに

「IBM Cloudの価格表は無いのですか？」というお問い合わせ、特にビジネスパートナー様からよくいただくお問い合わせの一つです。
IBM Cloudではご契約条件により、アカウントごとに設定されている通貨が異なったり、価格が異なることもあるので、汎用的な価格表はありません。基本的には[カタログ](https://cloud.ibm.com/catalog)を一つずつ見ていただくことをお願いしています。
しかし、実はIBM Cloud CLIを使用してログイン中のアカウントに関する価格表を取得することができます。クレジットカードを登録済みのアカウントもしくはサブスクリプションアカウントでは基本的に同じ価格でご利用いただいているので、それらのアカウントを使って取得した価格表は多くのお客様に適用される価格表と言えます。この記事ではその取得方法を紹介します。

# 価格情報の取得方法

IBM Cloud CLI の `ibmcloud catalog pricing` コマンドを実行すると価格の情報を取得できます。IBM Cloud CLI の実行環境を用意して取得していきます。手軽な実行環境としては IBM Cloud Shell サービスを利用しますが、IBM Cloud CLI をPCにインストールしても使用できます。IBM Cloud CLiを使用する場合、v2.28.0より古いバージョンではコマンドを実行して得られる価格情報の列が異なるので、v2.28.0以降にバージョンアップしてご利用ください。[こちら](https://github.com/IBM-Cloud/ibm-cloud-cli-release/releases/)から新しいリリースのモジュールを入手できます。

### IBM Cloud Shell サービスの起動

IBM Cloud コンソールにログインした状態で「IBM Cloud シェル」のアイコンをクリックします。
<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/bb063b1b-a410-a13a-28cb-ed1aa9568b63.png"/>

:::note info
ユーザーに付与した権限、アカウント設定もしくは利用者の環境により、Cloud Shellサービスそのもの、もしくはこの後利用するファイルのダウンロードなど一部の機能を利用できないケースもあるので、その場合にはIBM Cloud CLIをインストールしてご利用ください。
:::

IBM Cloud ShellはWebブラウザー上でIBM Cloud CLIと関連するプラグインやコマンドを利用できるように構成したシェル環境です。Red Hat Enterprise Linuxのbashがベースになっています。

Cloud Shellが起動すると以下のような画面になります。IBM Cloudにログイン済の状態でアカウントもIBM Cloudコンソールで選択していたアカウントとなっています。ここでコマンドを実行していきます。

<img width="1200" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/5cca87b5-2537-5fb0-7ab8-676ca2d0e840.png"/>

早速価格情報を取得しましょう。 `ibmcloud catalog pricing` コマンドを実行します。
以下に4つの例を示します。csvのファイル名は任意の名称に変更いただいて構わないです。

```:東京リージョンで利用可能なサービスの日本円での料金を取得:
ibmcloud catalog pricing -r jp-tok --co JPN --output csv > IBMCloudPricingJpTokJPY.csv
```
```:東京リージョンで利用可能なサービスの米国ドルでの料金を取得:
ibmcloud catalog pricing -r jp-tok --output csv > IBMCloudPricingJpTokUSD.csv
```
```:大阪リージョンで利用可能なサービスの日本円での料金を取得:
ibmcloud catalog pricing -r jp-osa --co JPN --output csv > IBMCloudPricingJpOsaJPY.csv
```
```:大阪リージョンで利用可能なサービスの米国ドルでの料金を取得:
ibmcloud catalog pricing -r jp-osa --output csv > IBMCloudPricingJpOsaUSD.csv
```

ファイルとしてダウンロードできるようにファイルにリダイレクトしています。いくつかオプションを付けていますが以下のような意味があります。用途に応じて利用してください。他にも `ibmcloud catalog pricing --help` でコマンドの使い方を見ると他のオプションの情報が見られます。

| オプション | 省略時の設定 | 今回利用する値 |
|:-------------------------|:-------------|:------------|
| -r (リージョン)            | ダラスリージョン |<div> `jp-tok` 東京リージョン</div><div>`jp-osa` 大阪リージョン</div>|
| -co (国/通貨)             | 米国/米国ドル      | `JPN` 日本/日本円|
| -output (ファイル出力)     | 設定なし(ターミナルへ表示)| `csv` CSVファイルへの出力


:::note info
1つのコマンドの実行にはおよそ10-15分程度の時間がかかります。バックエンドとのやりとりの記録を見ると、アカウント、そしてログイン中のユーザーがアクセス可能なカタログ情報について、すべての価格情報を取得しにいくため多少時間がかかるようです。利用できるサービスが多いリージョンほど実行時間がかかります。
:::

:::note info
日本円の価格を算出するための為替レートは毎月1日に変更され、1ヶ月間その価格が利用されます。毎月価格が変わることにご注意ください。
:::

:::note warn

以下の情報は取得できませんので、ご注意ください。

- Classic Infrastructureの各サービスに関する価格情報
- 有償サポートに関する価格情報
- 一部のサービスの上位プランでIBM Cloudの契約とは別に契約が必要となるものの価格情報
:::

### 作成されたCSVをダウンロードする

必要に応じて必要なリージョンのサービスの価格情報を実行いただいたと思います。以下の例では東京リージョン、大阪リージョンそれぞれの日本円と米ドルでの価格の一覧を取得しました。
Cloud Shellのファイルシステムの中に保存されているので、これをダウンロードしてローカル環境で見られるようにしていきます。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/9ec473f2-7b9a-e271-5896-24e28aac5d23.png"/>

画面上部のアイコンのうち「ファイルのダウンロード」をクリックします。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/8dc78f77-03e9-e890-0f7e-9f40992ef2ed.png"/>

先ほど利用したリダイレクト先のCSVファイルの名称を指定して。「ダウンロード」をクリックします。
<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/12d9ac5c-7e14-3e89-d0c6-29da7d348220.png"/>

ブラウザーのダウンロード用のフォルダーにファイルがダウンロードされます。複数のファイルをダウンロードする必要がある場合には一連のダウンロード処理をファイルの個数分繰り返します。


# 価格情報を見る

ダウンロードしたファイルを表計算ソフトなどで開くと価格の情報が見られます。多くの行を含むので、ファイルを開くのに多少時間がかかるでしょう。
1行目は見出し行ですが、「Service Display Name」はサービスの名称、「Charge Unit」は課金の単位、「Currency」は通貨、「Price」は価格に相当します。表示される列の順番が前後しますが、課金プランが複数あるサービスは「Plan Name」にプランの名称、課金が利用量に応じて異なるプランは「Tier Model」に層の種類、「Quantity Tier」が層を示す名称が表示されます。CSVファイルだけを見てもわからない場合が多いと思うので、その場合には、カタログやDocsの課金情報に関する説明を合わせて見ていただければと思います。

参考）IBM Cloud Kubernetes Serviceのあるワーカーノード・フレーバー（種類）に関する価格情報
<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/ebab2aa4-39b0-f7ab-6c01-793fde78dc65.png"/>

# まとめ

この記事ではIBM Cloudの価格情報をCLIで一覧として取得する方法をまとめました。
おそらくカタログの項目数が多くて最初はどうすればいいか迷われると思います。特定のサービスごとに利用するなど使い方によってはかなり使いやすくなると思うので、ぜひ工夫いただければと思います。

# 参考情報

カタログ価格情報の取得 [IBM Cloud Docs](https://cloud.ibm.com/docs/cli?topic=cli-manage-catalogs-plugin#catalog-pricing)