FIXER cloud.config Tech Blog
Azure Synapse AnalyticsのApache Sparkプール料金試算まとめ
2023年02月02日 10時00分更新
本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「悩むのはもうおしまい!~Azure Synapse Analytics料金試算のすすめ~」を再編集したものです
こんにちは! 新卒の寺田です!
今年も残すところ、10日と少しとなりました。新卒と名乗ることができるのも後3ヵ月という事実に震えています。
今回は個人的にややこしいと感じた、Azure Synapse Analyticsの料金試算についてまとめてみようと思います。
1. 今回まとめる内容
Azure Synapse Analyticsは、専用SQLプールやApache Sparkプール、Data Explorerプール等、数多くの要素が料金に絡んできます。
今回は、その中でも特にややこしく、また必ず利用するといってもいいApache Sparkプールの料金についてまとめていきます。
2. Apache Sparkプールの料金試算
まずは、Microsoft様が提供する料金計算ツールで、Apache Sparkプールの項目を確認してみます。
ノードのサイズとインスタンスの数、利用した時間で決まる形になっていますね。
上図を初めてみたとき、「インスタンスってSparkインスタンスのことを指しているのかな?」と私は思いましたが、実際は違います。
上図が示すインスタンスは、ノード数を表しています。
ノード数はAzure Portal上から設定する項目であり、Apache Sparkプールのスケールの設定から設定します。
上図を見ていただくとわかる通り、ノード数を設定すると、設定に対して1時間ごとにかかる費用を確認することができます。
ここで確認した費用が、Apache Sparkプールの費用となります。※実際に消費したノード数によって料金が決まるので、設定時点では料金は発生しません。
3. ノード数の設定
ここまで料金算出の流れをご説明しましたが、肝心のノード数はどのように設定すればよいのでしょうか。
実は、Apache Sparkプールの料金算出において、ノード数の算定が最もややこしい部分となります。
ノード数算定で肝要となるのは、実行するPipeline(ノートブック)等で、どれだけのvcoreを同時に必要とするかという点です。※同時という点が重要です。
例えば、下図のような設定のPipelineを実行したいとしましょう。
2つのノートブックはまったく同じ設定です。
Executorのサイズ、Executorの数、ドライバーのサイズの3つから計算し、↓のような計算になります。※Executorは、ドライバー用に追加でひとつ確保されることに注意してください。
2(Executorの数) * 4vcore(Executorのサイズ) = 8vcore
8vcore + 4vcore(ドライバー用のExecutorのサイズ) = 12vcore
計算の結果、Pipeline実行のために必要なvcoreは12であることがわかりました。
次に、Apache Sparkプールのスケールの設定からノードのサイズを確認します。
ノードのサイズはSmall(4vcore)になっていますから、↓の計算となり、必要なノード数は3であることがわかります。
12vcore / 4vcore = 3
ノートブックの処理が終わると、利用されていたノードは他のノートブックで利用できる状態になります。
そのため、ひとつのノートブックに必要なノードだけを担保すればよいというわけです。
では、下図のようなPipelineだとノード数はどうなるでしょうか。
ノートブック、Apache Sparkプールのスケールの設定は先述の例と全く同じです。
上図の場合だと、今度は6ノード必要となります。
先ほどの例は2つのノートブックが順列に実行されていましたが、今度は並列で実行しているため、2倍のノードを必要とするというわけです。
4. まとめ
Apache Sparkプールの料金算出についてまとめてみましたが、いかがだったでしょうか?
ドキュメントを漁り、検証に検証を重ねることで、やっと上記の答えにたどり着くことができました。
私と同じように悩んでいる方に、本記事が届いていると幸いです。
寺田 縁/FIXER
(てらだ えにし)
2022年度入社の文系エンジニアです。座右の銘は「ユーザーの声を聞いているか」です。研究室の先生がおっしゃていた話の意訳になるのですが、開発に夢中になりすぎると自分が実装したいことを優先しそうになるので、この言葉を思い出すようにしています。
この連載の記事
-
TECH
メタバースのメリットは? 実際の活用事例から考えてみる -
TECH
法人向け「Microsoft Entra ID P2ライセンス」を個人で購入する方法 -
TECH
環境ごとに異なるTerraformのバックエンド設定を効率化、override.tfの使い方 -
TECH
Azure FunctionsとAzureのサービスを連携させる方法 -
TECH
PlaywrightをAzure Functionsにデプロイして動かす方法 -
TECH
Windows Admin Centerとは? ― 2020年代の新しい運用管理のカタチ -
TECH
Azureの管理コスト削減! リソースのタグ付けを自動化しよう -
TECH
Logic Appsでリソースのサブスクリプションを移動させる方法+注意点 -
TECH
生成AIで大注目のOpen InterpreterとAzure CLIを使ってリソースを自動作成してみた -
TECH
AzureのvCpuクォータ制限解除、爆速に改善されていて草 -
TECH
AzureのApplication Insightsでお手軽にお安く? HTTP監視しよう - この連載の一覧へ