Apache CloudStackの市場向け導入に向けたネイティブ評価システムの導入

はじめに

Apache CloudStackは、クラウドコンピューティング環境を構築するためのオープンソースプラットフォームとして広く利用されており、その柔軟性と拡張性は多くの企業にとって重要な要素です。しかし、市場での競爭力を高めるためには、リソース使用量に基づく正確な評価と計費が不可欠です。本記事では、Apache CloudStackにネイティブで統合された評価システム(Rating System)と會計システム(Accounting System)の導入方法、およびその技術的特徴と実裝例を解説します。この導入により、クラウドオーケストレータ(Cloud Orchestrator)を介した計算リソースユーザー(Computing Resource User)向けに、柔軟な計費モデルを実現することが可能になります。

技術的特徴と構築

評価システム(Rating System)

評価システムは、クラウドリソースの使用量に基づく金額を計算するための基盤となる機能です。このシステムは、計費(Billing)システムとは區別され、後者を外部システムで処理する形で設計されています。評価システムは、プラットフォームイベント(Platform Events)を基にデータを生成します。これらのイベントは、仮想マシン(VM)、ボリューム、ネットワークなどのリソースが作成されるたびに記録され、アカウントやプロジェクトに紐づけられます。イベントの生成プロセスでは、リソースの使用狀況を可視化するためのデータが蓄積され、イベント処理プロセスでは、補助テーブル(Auxiliary Tables)を介してイベントデータを集約し、評価データ(Usage Data)として生成されます。

會計システム(Accounting System)

會計システムは、リソースの使用量を詳細に追跡し、個別(Per Entry)および月次(Monthly)の計費モデルをサポートします。データ処理フローは以下の通りです:

  • イベント生成 → 補助テーブルへの保存 → 評価データの生成 → 最終的な計費項目の作成

例えば、仮想マシンの起動イベントが生成され、継続的な実行中に定期的にデータが更新されます。このプロセスにより、正確な使用量に基づく計費が可能になります。

Quota 1.0とQuota 2.0の比較

Quota 1.0の制限

Quota 1.0では、各リソースタイプごとに単一の計費率(Tariff)が適用されるため、リソースの屬性に応じた柔軟な計費が困難でした。この制限により、クラウドプロバイダーのニーズに完全に対応できず、柔軟性に欠けていました。

Quota 2.0の改善

Quota 2.0では、JavaScriptを用いた動的な計費ルールが導入され、リソース屬性(アカウント、ホストタグ、ストレージタイプなど)に基づく金額計算が可能になりました。具體的には、以下の機能が追加されています:

  • コンテキストベースの計費ルール:JavaScriptを用いて、ホストクラスタ(プラチナ/ゴールド/スタンダード)、ストレージタイプ(SSD/非SSD)、オペレーティングシステム(Windows/Linux)などの屬性に応じた価格を動的に計算。
  • 計費モデル
    • 事前支払い(Prepaid):ユーザーが信用を預け、リソース使用量が信用を消費するまで提供。
    • 事後支払い(Post-paid):リソース使用後に計費が発生。
  • 割引戦略:多段階のルールを設定し、後続のルールが前段の結果を再利用可能。

実際の応用例

  • ホストクラスタの差別化計費:ホストタグ(プラチナ/ゴールド/スタンダード)に基づく単価設定。
  • Windowsライセンス計費:仮想マシンのメタデータからOSを識別し、ライセンスパッケージの費用を適用。
  • ストレージタイプ計費:ストレージタイプ(SSD/非SSD)に基づく計費の有無を判斷。

現在の制限と今後の計畫

技術的制限

現在のシステムでは、ECMAScript 1.0のみがサポートされており、バージョンアップが必要です。また、ドキュメントが不完全で、一部の改善はアップストリーム(Upstream)にまだ反映されていません。

今後の計畫

  • 新しいJavaScriptエンジンのサポートを追加。
  • 官方ドキュメントの整備。
  • 改善內容をApache Foundationのアップストリームプロジェクトにアップロード。

生産環境での実裝例

計費データの可視化

リソースタイプ別の使用量統計、履歴、増分チャートを表示。アカウントやプロジェクトごとにフィルタリング可能。

計費サイクルと決済

毎日の計費プロセスが実行され、毎日の費用項目が生成されます。例えば、仮想マシンの毎日の稼働時間とvCPU使用量に基づく費用計算。複數の仮想マシンの例では、月間総費用とリソース使用分佈を表示。

事前支払い/事後支払いの例

  • 事前支払い:アカウントの信用が盡きるとリソースの使用が停止。
  • 事後支払い:リソース使用後に費用が発生し、アカウント殘高の変化を表示。

今後の拡張と予告

ホワイトラベルサブシステム(White-label Subsystem)

カスタムブランドインターフェースのサポートを予告。コミュニティ開発において実裝が進む。

多ドメイン管理の例

異なるドメイン(例:darkclouds.com)を介して複數のチームを管理可能。単一エンジンでのデプロイが可能で、リソース割當とビジュアルインターフェースが自動処理される。

結論

Apache CloudStackにおけるネイティブ評価システムの導入は、クラウドオーケストレータを通じた計算リソースユーザー向けに柔軟な計費モデルを実現するための重要なステップです。評価システムと會計システムの統合により、リソース使用量に基づく正確な計費が可能となり、市場での競爭力を高めることが期待されます。今後の改善により、より高度な機能が追加され、Apache Foundationのアップストリームプロジェクトとの連攜が進むことで、さらなる拡張性と信頼性が確保されるでしょう。