Amazon MWAAとServerlessのコスト構造の違いを比較してみた
こんにちは。サービス開発室の武田です。
Amazon MWAA Serverlessがリリースされましたね!従来のMWAAとの大きな違いのひとつが料金体系です。Serverlessの方が圧倒的にコストは安くなりそうですが、逆転することはあるのか?具体的なシナリオで試算してみました。
料金体系の違い
まずはMWAA ServerlessとMWAAの料金体系の違いを整理しておきます。
従来のMWAA
- 環境インスタンスの稼働時間に対する課金
- 追加Worker、追加Scheduler、追加Webサーバーの課金
- メタデータベースのストレージ課金
MWAA Serverless
- タスク実行時間に対する従量課金
- 最小課金単位は1分、秒単位で課金
- 初期費用やコミットメントなし
料金表(東京リージョン)
東京リージョン(ap-northeast-1)の料金はそれぞれ次のようになっています。
MWAA Serverless
| 項目 | 料金 |
|---|---|
| AWS Managed Tasks | $0.104/時間 |
従来のMWAA
| 項目 | Small | Medium | Large |
|---|---|---|---|
| 環境インスタンス | $0.49/時間 | $0.74/時間 | $0.99/時間 |
| 追加Worker | $0.055/時間 | $0.11/時間 | $0.22/時間 |
| 追加Scheduler | $0.055/時間 | $0.11/時間 | $0.22/時間 |
| 追加Webサーバー | $0.028/時間 | $0.055/時間 | $0.11/時間 |
| メタデータベース | $0.10/GB-月 | $0.10/GB-月 | $0.10/GB-月 |
※メタデータベースのサイズはDAG数、タスク履歴の保持期間、XComの使用量などにより変動します。AWS公式の料金例では、一般的なワークロードで10GB、大規模ワークロード(200 DAG × 20タスク × 6ヶ月保持)で40GBが示されています。次の試算では、各シナリオの規模に応じた想定値を使用しています。
シナリオ別に試算してみた
では、具体的なシナリオでコストを試算してみます。
シナリオ1: 開発・テスト環境(低頻度実行)
1日10回のワークフロー実行、各タスク平均2分、月間300タスクという想定で計算してみます。
Serverlessの場合、タスク実行時間は次のとおりです。
300タスク × 2分 = 600分 = 10時間
月額: 10時間 × $0.104 = 約$1
一方、従来のMWAA(Small環境)だと次のようになります。
環境インスタンス: 744時間 × $0.49 = $364.56
メタデータベース: $0.50
月額合計: 約$365
Serverless約$1、従来版約$365。これは圧倒的な差ですね!開発環境ならServerless一択でしょう。
シナリオ2: 日次バッチ処理(中頻度実行)
1日1回の日次バッチで50タスク/回、各タスク平均3分とすると月間1,550タスクになります。
| 項目 | Serverless | 従来版(Small) |
|---|---|---|
| タスク実行 / 環境インスタンス | $8.06 | $364.56 |
| メタデータベース | - | $1.00 |
| 月額合計 | 約$8 | 約$366 |
日次バッチでもServerlessの方がかなりお得ですね。
シナリオ3: 高頻度実行(本番ワークロード)
1時間ごとの実行で100タスク/回、各タスク平均2分だと月間74,400タスクです。これくらいになると本番ワークロードっぽいですね。
【Serverless】
タスク実行時間: 74,400タスク × 2分 = 148,800分 = 2,480時間
月額: 2,480時間 × $0.104 = 約$258
【従来版(Large環境、Worker 5台を2時間/日追加を想定)】
環境インスタンス: $736.56
追加Worker: $68.20
メタデータベース: $2.00
月額合計: 約$807
高頻度でもまだServerlessの方が安いですね。
シナリオ4: 超高頻度・長時間実行
さて、ここからが本題です。5分ごとの実行、200タスク/回、各タスク平均5分という超高頻度のケースを見てみます。月間1,785,600タスクというかなり極端な例です。
【Serverless】
タスク実行時間: 1,785,600タスク × 5分 = 8,928,000分 = 148,800時間
月額: 148,800時間 × $0.104 = 約$15,475
【従来版(Large環境、追加Worker 10台を常時稼働、追加Scheduler 1台)】
月額合計: 約$2,377
ここまでくると逆転しますね。超高頻度では従来版の方がお得です。
損益分岐点はどのあたり?
試算結果から、おおよその損益分岐点を考えてみます。
Large環境の従来版MWAAの最低月額は約 $737(環境インスタンスのみ)です。MWAA Serverlessで同額になるのは次の計算になります。
$737 ÷ $0.104/時間 = 約7,087時間のタスク実行時間
月間で約7,100時間以上のタスク実行時間になると、従来版MWAAの方がコスト効率は良さそうです。1日あたりに換算すると約230時間ですね。かなりヘビーに使わないとこの域には達しないでしょう。
コスト以外の注意点
料金だけでなく、運用面でも違いがあります。
Serverlessは各タスクでコンピュートをプロビジョニングするため、タスク開始までに多少時間がかかることもあるでしょう。遅延に敏感なワークロードでは注意が必要ですね。
一方、従来版MWAAは使っていない時間も環境が稼働し続けるので、アイドル時間のコストが発生します。また、環境サイズの選定やWorker数のチューニングなど、運用面での判断も必要になってきます。
まとめ
MWAA Serverlessは、低〜中頻度のワークロードで大きなコストメリットがありますね。開発環境や日次バッチ処理のようなユースケースでは、従来版と比較して数十分の一のコストになることもありそうです。これはかなりインパクトがあります。
一方、超高頻度で長時間タスクを実行し続けるワークロードでは、従来版MWAAの方がコスト効率のよいケースもあります。
ご自身のワークロードに合わせて試算してみてください。参考になれば幸いです。









