オンプレミス(自社所有)環境に比べて、パブリッククラウドは一般にコストの安さを売りにしている。しかし、安いと思って際限なく使っていると利用料が想定外の高額になったり、無駄なコストを払うことになったりする。場合によってはクラウドサービスの利用料が収益を圧迫して事業が立ちゆかなくなる「クラウド破産」につながる恐れもあるため、使い方やサービスの見極めが重要だ。

全データの直接処理でコスト増大

 「以前は一度の処理に約70時間掛かり、利用料は1回で2万円近くになった。これでは運用には耐えないと判断した」――。こう語るのは竹中工務店 情報エンジニアリング本部の粕谷貴司氏だ。同社は2016年7月に、複数ビル内の各種センサーデータをクラウド上に収集し、米Microsoftの機械学習クラウドサービス「Azure Machine Learning(ML)」で、消費電力量を予測する仕組みを構築している。

 粕谷氏の発言は、複数ビルの電力需要予測にAzure MLを使い始めた当初の経験を踏まえたものだ。Azure MLの利用料は処理時間に連動する。以前は複数ビル内のセンサーからの収集したデータをそのままAzure MLに転送していたため、データ量が急増した。膨大なデータを処理するために処理時間が70時間程度になり、利用料が1回2万円という高額になってしまった。

 利用料を下げるには、Azure ML側で処理するデータ量を削減する必要がある。以前はAzure上に収集したセンサーデータを、リレーショナルデータベースサービスの「Azure SQL Database」に蓄積した後、直接Azure MLに全データを転送していた。データ量を減らすため、SQL DatabaseとAzure MLの間に中間データベースとしてもう一つ別のSQL Databaseを配置した。

データを前処理する中間DBを設けてAzure MLの利用コストを削減
データを前処理する中間DBを設けてAzure MLの利用コストを削減
[画像のクリックで拡大表示]

 SQL Databaseが持つデータベース操作のクエリー実行機能であるElastic Database Queryを使って、「必要なデータのみ抽出したり、正規化したりするなどデータの前処理をした」と粕谷氏は話す。データの前処理により、Azure MLの月額利用料は「現在は3000円強程度になっている。中間データベースの分も含めて1万円程度で済んでいる」(同)とのことだ。

 粕谷氏によるとAzure MLによる予測は「天気予報データの更新に合わせて1日4回バッチで処理している」という。1カ月毎日処理し続けたとすると、1回当たりの利用料は数十円程度だ。以前の1回2万円に比べて大幅なコスト削減を実現できた。