Functionsのコストとパフォーマンスの最適化
はじめに
Catalystでは、要件に基づいて作成する各ファンクションのメモリをプロビジョニングできます。ファンクションの作成時にメモリを選択するか、必要に応じていつでも設定を編集できます。デフォルトで割り当てられるメモリに対してファンクションのメモリ設定を柔軟にカスタマイズできるため、Catalystの使用量を最適化し、リソースをより適切に管理できます。アプリケーションのパフォーマンスを監視し、ニーズに優先順位を付け、各ユースケースに対して情報に基づいた意思決定を行い、そこから大きな利益を得ることができます。
このヘルプページでは、いくつかの実験を通じてCatalyst Functionsの料金計算方法を説明し、ファンクションのメモリプロビジョニングとコスト最適化の相関関係を解説します。コンピュートリソースを多用するファンクションのメモリプロビジョニングを増加させると、理想的には実行時間が短縮され、結果としてCatalystでの費用が削減されます。ただし、最適な設定はファンクションで実行される操作の複雑さに応じて、ユースケースごとに異なります。
料金計算
このセクションでは、Catalyst Functionsの料金モデルを説明します。以下の表は、異なるファンクション実行時間範囲に対して使用されるクレジットを示しています。
| 実行時間(秒) | クレジット |
|---|---|
| <1 | 0.5 |
| 1-5 | 1 |
| 5-10 | 5 |
| 10-15 | 10 |
| 15-30 | 15 |
この表は、ファンクションの各メモリ設定における実行時間に比例して消費されるクレジットを示しています。
| メモリ(MB) | 実行時間に比例するクレジット |
|---|---|
| 128 | 1 |
| 256 | 2 |
| 512 | 4 |
ファンクションの実行コストは以下のように計算されます。
ファンクションの実行コスト = ファンクション数 * 実行時間に基づくクレジット数 * 消費メモリに基づくクレジット数例えば、以下は3つの異なるシナリオで消費されるクレジットの計算です。
- ファンクションが128 MBで4秒かかる場合、使用クレジット = 1 * 1 * 1 = 1クレジット
- ファンクションが256 MBで8秒かかる場合、使用クレジット = 1* 5 * 2 = 10クレジット
- ファンクションが512 MBで0.5秒かかる場合、使用クレジット = 1 * 0.5 * 4 = 2クレジット
コスト最適化のためのメモリ設定の実験
ファンクションの最適なメモリ設定とコスト最小化について、2つの実際の実験での観察結果を見てみましょう。
実験1
あるファンクションが、逆順にソートされた配列内の1から100までの数値のバブルソートを実行します。このファンクションを3つの異なるメモリ設定(128 MB、256 MB、512 MB)で設定した場合の平均応答時間を示すApplication Performance Monitoringチャートを以下に示します。
128 MBのファンクションは35ミリ秒、256 MBのファンクションは29ミリ秒、512 MBのファンクションは16ミリ秒で実行されたことが観察されました。
それぞれのケースで消費されるクレジットを計算してみましょう。
ケース1(128 MB): 1 * 0.5 * 1 = 0.5クレジット
ケース2(256 MB): 1 * 0.5 * 2 = 1クレジット
ケース3(512 MB): 1 * 0.5 * 4 = 2クレジット
実験2
別のファンクションが、逆順にソートされた配列内の1から10000までのすべての数値のバブルソートを複数パスで実行します。各パスでは、配列を昇順から降順に、そして再び昇順に変換します。このファンクションは2つの異なるメモリ設定(128 MBと512 MB)で設定されています。
このファンクションの2つのメモリ設定での実行データから、128 MBのファンクションは6994ミリ秒、512 MBメモリのファンクションは3391ミリ秒で実行されたことがわかります。
それぞれのケースで消費されるクレジットを計算してみましょう。
ケース1(128 MB): 1* 5 * 1 = 5クレジット
ケース2(512 MB): 1* 4 * 1 = 4クレジット
推察
これらの観察結果から、以下の推察を導くことができます。
- コンピュートリソースを多用する、またはCPU中心のユースケースでは、メモリ設定を高くするほど、Catalyst Functionsのパフォーマンスは指数関数的に向上します。
- 負荷の少ない操作を含むユースケースでは、クレジット消費はメモリ設定の増加に正比例します。
結論
これらの推察に基づき、以下の結論に至ることができます。
- 重い計算ロジックを含むファンクションには、より高いメモリ設定を選択する方が賢明です。
例えば、実験2で説明したファンクションの呼び出しを月に10,000回行うと仮定します。128 MBのメモリでは、ファンクションは月に50,000クレジットを消費しますが、512 MBのメモリではファンクションは月に40,000クレジットしか消費しません。これにより、月に10,000クレジット、同じパターンが続く場合は年間120,000クレジットを節約できます。*
- ファンクションにコンピュートリソースを多用するロジックが含まれていない場合は、ファンクションの要件に適したメモリを割り当てることができます。例えば、100 MBのメモリしか消費しないシンプルなファンクションに256 MBや512 MBを割り当てると、リソースと費用の無駄になり、応答時間は同じままです。
ファンクションのメモリをカスタマイズし、理想的な設定を選択することによる効果は、コスト最適化とパフォーマンス向上の観点から非常に重要です。ファンクションに適切な設定を選択する際に、万能の方法はありません。
一般的な経験則として、最低のメモリ設定から始めて、最適なメモリ設定が見つかるまで試行錯誤を行うことができます。Catalyst LogsとApplication Performance Monitoringは、そのプロセスを支援する強力なツールとして機能します。Catalystが提供するカスタマイズツールを活用して実験し、ユースケースと使用状況に適したソリューションを見つけてください。
最終更新日 2026-03-05 11:43:24 +0530 IST
Yes
No
Send your feedback to us
