IBM Turbonomic - Cloud Parking（パーキング）によるコスト削減

## はじめに
パブリック クラウドの支出は、2023年には全世界で合計 5,919 億ドル（約77兆円）に達すると予測(*1)されており、日本国内でも、2022年の約2兆円程度からさらに伸び、2023年は約2.4兆円程度の規模になる事が見込まれています。（*2）

今更いう話でもありませんが、ハイブリッドおよびマルチクラウドへの投資からより多くのビジネス価値を引き出す為には、アプリケーションのパフォーマンスを確実に維持する一方、そこにかけるコストは必要最低限に抑える最適なバランスを取る必要があり、そんなお客様をサポ​​ートするために、Turbonomic はクラウド最適化機能の開発を続けてきました。  

## Turbonomicが考えるクラウドコスト最適化の5要素（プラス1）
こちらはTurbonomicが考える（というか、皆さんも同じかと思いますが）クラウドのコストを最適化する５つの要素になります。（+1は、これらをAIを使って自動化する事による人的工数の削減を指しています）

ですが、、、Turbonomicをご利用頂いた事のあるお客様であればご存じかもしれませんが、実は、この5つ目の要素である”停止” については、これまで製品として直接何か制御する仕組みはありませんでしたが、今回、この"停止"を自動化する機能が加わりましたので、そのご紹介になります。(*3)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/7d4f35ca-1f11-6a38-946e-1b1191271e2d.png)



## Cloud Parking（パーキング）とは？

2023年3月にリリースされた最新バージョン8.8.3にてサポートされた最新機能になります。
これは、主要なパブリッククラウド（AWS、Azure、Google Cloud）のプラットフォーム上で稼働するIaaSサービスを、一時的に停止して、コストを削減することができる機能となります。

**使っていないものは停止する、非常にシンプルな考え方**ですね。ただ、それを運用上 徹底するには、これまで中々難しい面があったかと思います。例えば以下の様な要因で、仮想マシンが予期せず無駄に使われっぱなしになっていたりはしなかったでしょうか？

* AWS/Azure/GCPの併用。マルチクラウドの中で、特に利用の多い環境にのみフォーカスしていた。
* 単一クラウド内でも、組織やプロジェクトに応じた様々なアカウントの存在。とても全ては管理しきれない。
* 特定のプロジェクトで、日本以外でのリージョンが利用されており見落としていた
* マシンによって停止可能な時間がマチマチ。運用で個別対応するには限界が…
などなど...

これらは"停止" 機能の有無以前に、コストの最適化要素の一番最初にある**全体の"可視化"が出来ていない事にはやはりなかなか難しい**ケースがあったかと思います。
Turbonomicではもともとこの"可視化"機能によって、お客様環境の全ての仮想マシンの一元管理が可能でしたが、そこに更に**API経由での自動停止・起動機能**が加わったものとなります。（"自動"と記載しましたが、手動での起動・停止も可能です！）



## 実際の利用イメージ：


以下は、パーキングが可能なクラウド仮想マシンのインベントリリストと、その他の管理データを一覧表示しています。もちろんこのリストにはAWS/Azure/GCPの全アカウント・全リージョンのインスタンスが一括表示されています。
※管理データでは仮想マシン名以外に、その稼働状況、アカウント、リージョン、インスタンスタイプ、価格等のデータが含まれており、任意の項目でソート頂く事も可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/488f0755-6f82-4d55-622d-f8b71ea40ddc.png)

また、もし仮想マシンに対してタグが設定されていれば、そちらでフィルタリングして頂くことも可能です。（運用上、例えばクラウドに関わらず "Environment = Test" といったタグを設定しておけば、全てのクラウドのテスト環境のマシンをここで一括して表示させる事も可能です。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/6373a1e3-732e-d311-a4c6-1051709fee11.png)

メインの機能となる仮想マシンの自動的な停止（と起動）ですが、このダッシュボードから簡単に設定することができます。
設定には、停止する時間帯、停止する期間などを指定します。設定が完了すると、Cloud Parkingは自動的に仮想マシンを停止します。（逆に、指定された時間には確実に起動させておくことも可能です。基本1時間単位での指定。15分単位での設定も可能。）

以下例では、平日のAM6時から夕方PM7時までは確実に起動させておき、それ以外の時間帯は停止するイメージとなります。
※これらのスケジュールは自由にいくつも作成頂く事が可能であり、仮想マシンに応じてアタッチが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/52f27610-9152-6ee7-0249-c2c0b926d08e.png)


如何でしょう、非常にシンプルな機能ではありますが、Turbonomicが元々持っている**マルチクラウド全体の可視化**と組み合わせる事で、開発環境等の仮想マシンの不要な起動によるコストの肥大化を確実に防ぐ事が可能となります。

## 補足：スケール（従来機能）と停止の併用によるコスト効果
なお、Turbonomicにはもともとインスタンスタイプの最適化機能がありました。これは、例えば以下の図の四角全体を現在のコスト（最適化前のインスタンス）とした場合、**①最適なサイジング**によって削減出来ていた部分となります。これら既存の機能によって、もともと**平均30%程度のクラウドコスト削減効果**を見込んでおりました。(*4)
今回、このスケール機能に追加して、未使用期間中の**②のインスタンス停止機能**が加わった事になりますので、開発環境においてはこれ以上削るものが無い、理想的なコスト最適化が実現できる事になったことになります。（具体的な数値効果は、本機能が今後お客様にご利用頂ける事で、徐々に見えてくるかと考えております。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/7f1f8edb-e759-4186-bb4c-a70add631d32.png)




以上、今回はクラウドのコスト最適化の考え方と新機能Cloud Parkingについてご紹介させて頂きました。

将来的にはPaaSサービスに対する機能強化も計画されておりますので、その辺りはリリースが見えてきましたらまたご紹介させて頂ければと思います。

現在AWS、Azure、Google Cloudで利用可能です。ぜひ、お試しください！


### 参考資料など

(*1）
総務省："世界のパブリッククラウドサービス市場規模（売上高）の推移及び予測"より
https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r04/html/nf306000.html#n3608010

(*2）
総務省："日本のパブリッククラウドサービス市場規模（売上高）の推移及び予測"より
https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r04/html/nf306000.html#d0306210

(*3)過去に"Park My Cloud" という別製品でご提供していた時期がありましたが、ここ数年は製品としての新規販売は停止しておりました。また、オンプレ環境向けには不要なサーバを停止するといった推奨アクションは従来より生成出来ておりましたが、クラウド向けには今回のParkingが新機能となります。

(*4)Forrester Consulting社が実施したIBM委託調査結果より
https://www.ibm.com/jp-ja/products/turbonomic