はじめに
皆さんはAzure Databricksを使っていますか?
弊社ではお客様環境のコスト最適化を行う機会が多くありますが、Databricksをご利用されているお客様のほとんどで、コストが過剰に発生しているように見受けられます。ただ、それはお客様の責に帰すべきものかと言うと…何とも言えません。と言うのも、このサービスは価格が上がりやすい面がいくつもあり、注意せずに使わないとコストが高くなりやすい事は間違いありません。
この記事ではAzure Databrickを使う上でのコストが上がりやすいポイントを注意点として紹介していきます。
今お使いの方、今後お使いになる方どちらも是非参考にしてください。
AzureData bricksとは?
Azure Databricksは、Azureクラウド上でデータ処理や分析を行うためのプラットフォームです。高速で拡張性があり、ビッグデータの処理や機械学習のモデル構築などが可能で、使いやすいインターフェースで、コーディングからデータの可視化までをサポートします。Databricksを使う事でデータエンジニアリングやデータサイエンスの作業を簡素化し、迅速なデータドリブンの意思決定が出来る素晴らしいツールです。
このサービスは、元々Databircksと言う外部プラットフォームがあり、それがAzure内でマネージドな形で提供されるようになっています。この背景こそが、後述する課金体系をわかりにくくしている原因の気がしますが、一旦概要としてはこのような内容です。
無料でAzure環境を分析!
コスト削減案と想定削減金額をレポートします。
毎月先着3社様限定キャンペーン実施中。
ご興味ある方は左の画像リンクから是非お申し込みください。
コストが上がりやすい罠
以下に筆者が罠だと感じる注意点を紹介していきます。
罠1:(非常に)複雑な課金体系
Azure Databricksはまず課金体系が非常にわかりにくいです。まず、Azure料金ページでもみられる、Azure Databricks”自体”の料金は、DBUと言う単位で課金されます。このDBUは基本的には、大まかに言うと以下の式で試算されます。
稼働させるVMの稼働時間×VM性能×オプション×Databrickモデル
注意点としてAzure料金ページでは時間単位で記載されている為、単純に時間単位での課金形式と思いがちですが、実際は、VMの性能(正確にはコア数)、Photonオプションの有効有無、General/Premiumの要素に依存します。そのためDatabricksのVMを構築する際は、上記計算式を理解したうえで、管理画面でのDBU数をしっかり見ておく必要があります。
▲この赤枠に注意しましょう
罠2:Databricks料金とコンピュートリソース群は別料金
次に、先ほど罠1の所でAzure Databricks自体と言う記載をしましたが、実際にAzure Databricksを利用する場合には、Azure Databricksリソースに加えて、Azure Databricksを稼働させるVM、ディスク、NIC、仮想ネットワークリソースが必要となります。これらのリソースは別途作成しておく必要はなく、Azure Databricks管理画面でクラスターリソースを構築すると自動でAzure上に作成されます。この際、これらのコンピューティング料金やストレージ料金はDatabricksの料金とは別に発生します。(ちなみにストレージはPremium SSD)そのため、料金計算の際はこれらのリソースの費用も発生することを認識しておきましょう。
▲CostManagementのリソース別で確認してもDatabricksにVM等はありません
罠3:削除のしづらさ
そしてDatabricks管理下に作られるリソースは、Azure管理画面から削除しようとしてもエラーとなり削除に失敗し、削除する場合はDatabricks画面から削除する必要があります。更に、Databricksの画面にはDatabricksを構築したユーザー以外は明示的に権限を付与しないとアクセスできないため、管理者側も削除できずに関連リソースが削除できずに残ってしまう、と言う事態が起きやすいのです。
これ以外にも注意点は多いのですが、上記の様にDatabricksはサードパーティプラットフォームを(無理やり)マネージドサービスに仕立て上げたような所があり、コストの管理が難しいと言えます。
対応策
対応として最も重要なのは、まずDatabricksの課金モデルを理解しましょう。これだけで大分違います。
次に、Databricksは一定の性能が必要となるため、コンピュートを何も考えずにデフォルト設定のまま構築するとDatabricks料金もコンピュート料金もグングン上がってしまいます。そのためコンピュート作成時にはDBUをしっかり確認しながら構築しましょう。
そして、コンピュートリソースも、継続的に必要でなければ、スポットインスタンスを使い、料金が無駄に発生しないよう設定しましょう。
Databricksは適当に構築すると料金は天井知らずですが、逆に言えば、コストを抑制する設定も揃っているので、管理画面をしっかり確認し、用途に応じた最低限の設定にすることが重要です。
おわりに
今回はDatabricksにフォーカスしてコスト削減の記事を紹介しました。正直Databricksはまだまだ複雑な部分が多く、シングルノード/マルチノードの使い方や停止の時間設定等において注意点やテクニックが必要だったりします。とはいえ、そういった調査をサボってしまうと、手痛いコストのしっぺ返しをくらうので、面倒くさがらずにしっかり調べて利用するようにしましょう。
パーソルクロステクノロジーでは、Azure環境におけるFinOpsのフレームワーク導入の支援を行っております。
また、FinOps導入の前に、まずクラウドコストを削減・最適化したい、と言った要望にも対応可能で、多くのお客様に満足頂いています。
ご相談は無料ですのでお気軽にご連絡ください。
無料でAzure環境を分析!
コスト削減案と想定削減金額をレポートします。
毎月先着3社様限定キャンペーン実施中。
ご興味ある方は左の画像リンクから是非お申し込みください。