GCPのAutoMLを使っていたら12万の請求がきてしまった話

## はじめにGoogleCloudPlatformの運営の方々に感謝

GoogleCloudPlatformのAutoML（AutoML Vison）を使って学習モデルを作っていたら12万円の請求が来てしまいました...。

AutoMLはとても便利で素晴らしいサービスですが、内容をしっかりと理解しないまま使っていると、私のように10万以上の請求が発生します（当たり前）。

今回、私の確認ミスから高額の請求が発生しましたが、Googleg社のご厚意で金額調整の適用処理をしていただきました。

本当に感謝を申し上げます。ありがとうございました。

今回の内容についてGoogleCloudPlatform側に公開してよいか確認したところ、構わないとお返事をいただいたので、AutoMLを使った開発者が、今後同じミスに陥らないために、この事案をアーカイブとして、残しておこうと思います。

## AutoMLについて

AutoMLは、機械学習エンジニアでなくても、高度かつ高品質でカスタマイズされた機械学習モデルの構築が可能なGoogleが提供しているサービスです。

[AutoML](https://cloud.google.com/automl/?hl=ja)

### AutoML Visionについて

すでにGCPには「Vision API」というサービスを提供していますが、これは事前にGoogleが学習させているモデルを使っているため、まだ学習していない写真・モノについては認識することができません。

AutoML Visionは、ほぼノンプラミングで独自の画像認識モデルを作れ、そのモデルを使ったAPI公開することができるサービスです。

[AutoML Vision](https://cloud.google.com/vision/automl/docs/?hl=ja)

## 作ったもの

今回はAutoML Visionを使ってウォーリーを探すモデルを作ることにしました。
![10879641157221.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/96693052-ff91-b0dc-dcd3-5fb91478bb42.jpeg)

#### 元ネタ
[「ウォーリーを探せ！」のウォーリーを最短4.45秒で見つけて指し示すロボットが開発される](https://gigazine.net/news/20180809-wheres-waldo-finding-robot/)

## 手順

#### 1. ウォーリーの素材集め & トリミング
ウォーリーを探せを3冊購入。全部で60程のウォーリーの顔のサンプルを取得。
![IMG_20191107_213803.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/12dcf246-2731-1099-ef45-aa11e8ae766b.jpeg)

#### 2. GCPにプロジェクトを作成しAutoML Visionから「新しいデータセットの作成」
<img width="1274" alt="スクリーンショット 2019-12-05 8.04.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/5ac820c0-7567-3e9b-7668-7043948bf769.png">


#### 3. ウォーリーの画像データを整理して投入
<img width="908" alt="スクリーンショット 2019-12-05 7.59.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/2ee40cc5-200c-e894-2f07-49a31fd578f8.png">

#### 4. マシンラーニング（2時間ほど）

## できたもの

### 完成！！

![スクリーンショット 2019-11-08 10.02.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/3e8c43c3-b65e-b276-a652-8520b0befc5e.png)

アウトプットとしては、画像をアップロードすると、ウォーリーのオブジェクトとして認識した位置を予想してくれる画像認識モデルが出来上がりました。学習モデルと同時に、APIを公開することも可能で、これを使い、何かアプリケーションを作ろうと思い、デプロイしたまま放置することにしました。

### このモデルを作るためにかかった金額

* ウォーリーを探せ：3冊 1,485×3= **¥4455円**
* AutoML Image Object Detection Online Prediction：**¥7,944円（無料枠内なので実質0円）**
* AutoML Image Object Detection Model Training：**¥4,628円（無料枠内なので実質0円）**

※ マシーンラーニングについて、正確な時間は残っていないのですが画像60枚で3時間〜4時間だったと記憶しています。

<img width="935" alt="スクリーンショット 2019-12-05 8.27.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/72aa6277-094c-6ea6-1bdf-7a4b658bc358.png">
無料枠なのでしっかりと割り引かれています🙌

### AutoML Visionの料金について

[AutoML Vision料金](https://cloud.google.com/vision/automl/pricing?hl=ja)

| 画像分類	           |        無料 |    有料      |
|:-----------------|------------------|------------------|
| トレーニング       | 40 ノード時間まで無料（1 回限り）　　| *ノード時間あたり USD $3.15|
| デプロイメントとオンライン（個別）予測| 40 ノード時間まで無料（1 回限り） | **ノード時間あたり USD $1.25|

| 画像分類            | 無料 |    有料      |
|:-----------------|------------------|------------------|
| トレーニング       | 毎月最初のモデル 10 個については、アカウントごとに 1 ノード時間まで無料です。　　|以後のトレーニング時間については、1 時間あたり USD $20.00 の料金が発生します。|

<img width="798" alt="スクリーンショット 2019-12-04 12.28.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/c0d2b69d-1523-d0a5-1ceb-68331c7961fb.png">

※ 無料枠のプロモーションクレジットについてはGCPの管理画面からも確認することが可能です。

##  しばらく経って悲劇は起こった...

月末になりGoogleCloudPlatformをの金額が気になり確認してみました...。

<img width="551" alt="スクリーンショット 2019-12-02 16.29.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/a11a2af5-ad1a-4685-bef1-bf618d2a2cac.png">

...？

桁が一桁増えている...？？

<img width="663" alt="スクリーンショット 2019-12-02 16.29.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/240375e3-c0e5-b9e5-47bc-e0360a670433.png">

**...小計 ¥129,306円**

ちょっとまってくれ。確認したときは確かに¥7,944円だったぞ...。すぐさま動かしていたプロジェクトを削除しました。


<img width="639" alt="スクリーンショット 2019-11-26 13.10.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/4bd77785-7d24-26b3-a4d0-caa2628a14b3.png">

月末合計費用（予測）のグラフが凄まじいことに...😭（最初は何かのバグかと思った）

### GCPサポートセンターに連絡

[Google Cloud Platform の課金に関するサポート](https://support.google.com/cloud/contact/cloud_platform_billing?hl=ja)

その日にすぐ、これまでの経緯をまとめてGCPのサポートセンターにメールをすると、その日に連絡がきました。

> プロジェクト「◎◎◎-◎◎◎」のAutoMLモデルが削除されてから48時間後、最終的な金額が確定されます。請求情報が更新され次第、担当部署に11月分請求金額の調整依頼を提出致します。進捗につきまして、11月26日 (火) に改めてご連絡させていただきます。

指定の11月26日（火）に連絡がなかったので催促をしました。


> 弊社担当部署に金額調整依頼を提出させていただきましたが、調整金額は高額になっているため、承認されるには長時間を要する可能性がございます。進捗につきまして、11月29日 (金)に改めてご連絡させていただきます。

このときは祈ることしかできませんでした🙏

### 祈りの結果...

後日GCPのサポートセンターから連絡がありました...。

> 弊社にて適用可能な金額調整は一度限りに対応になっております。今後はご利用頂きますGCPリソース全てに対してのご利用料金が発生いたしますので、ご留意願います。

<img width="933" alt="スクリーンショット 2019-11-27 17.07.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/865d9b92-7c08-8968-3d12-c7056dd97c81.png">

料金表を確認したところ、調整金額が反映されていました😭
Google社の方々、本当にありがとうございます🙇‍♂️

最初に気づいてから、金額調整をしていただくまでの2週間は精神的に疲弊していました...。本当にありがとうございました。

## 今回の原因

今回は `AutoML Image Object Detection Online Prediction` に対して12万円の請求が発生してしまいました。

マシンラーニングが終わった後にデプロイするかどうかをチェックすることができます。今回はどんなモデルが作られたのかを試したかったこともあり、チェックをつけてデプロイをしました。デプロイするとGPUノードを1つ使い続けるのです。これが今回の原因です。

<img width="779" alt="スクリーンショット 2019-12-05 17.41.22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/9785ad31-a2be-3078-0ef4-eb59d56aadd4.png">
上にも書いていますが、デプロイ後に確認が終わったら**「デプロイの解除を行う必要があります。」**

完全に見落としていました...。

## 再発防止策

### 公式のドキュメントを読もう

再発防止策としては、まずは「とりあえずやってみよう」ではなく、最初にドキュメントを読むことが大切だと思いました（当たり前）。そして、どんな仕組みなのか？料金体系はどうなっているのか？を公式ドキュメントを理解を深めることが大切です。（自分への戒め）

### 過去の失敗から学ぼう

料金体系が複雑でクラウド破産しそうなサービスを使う場合は、過去に失敗した人のブログや記事などを調べておくことによって、注意する点などがまとめられています。そういうったブログやQiitaの記事をまとめて読み、つまずきやすいポイントを事前に学んでおくのは有効かと思います。

[AutoMLで破産しないように気をつけたいポイント](http://natsutan.hatenablog.com/entry/2019/06/02/151747)

※ この方と同じ失敗をしてしまいました...😭

### GCPの「予算とアラート」を使おう

GCPには「予算とアラート」という機能があります。アッパーの金額を決めて、指定した金額の割合に達したときのメールで通知をしてくれる機能があります。この機能を活用して、沢山メールが送るように設定しましょう。（金額に達したらサービスをストップする機能欲しいですね🙏もしくはさくらクラウドのような定額のサービスも切望🙏）

<img width="864" alt="スクリーンショット 2019-12-05 17.55.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/cf453986-f2c4-4128-0216-9e5a8a597d71.png">
↑予算の設定

<img width="945" alt="スクリーンショット 2019-12-05 18.19.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147291/40cce2b3-32bf-d87f-9e3e-1163e8b52b7b.png">
↑予算割合の設定

## まとめ

AutoMLはGoogleCloudPlatformの中でも特に料金が高く設定されているサービスです。そのため、使用する際は事前にしっかりと調べた上で使いましょう！

## 参考🙇‍♂️

[AutoMLで破産しないように気をつけたいポイント](http://natsutan.hatenablog.com/entry/2019/06/02/151747)

[Cloud AutoML Vision が本当にノンプログラミングで使えるのか試してみた](https://www.apps-gcp.com/cloud-automl-vision/)

[AutoML Visionをためしてみた](https://qiita.com/iss-f/items/c93bd07b2413cb7f3507) @iss-f 

[「ウォーリーを探せ！」のウォーリーを最短4.45秒で見つけて指し示すロボットが開発される](https://gigazine.net/news/20180809-wheres-waldo-finding-robot/)