この記事は、CAST AI社により公開されたブログ記事を元に翻訳・作成したものです。元の記事については以下をご覧ください。また、記載している価格は、CAST AI社のオリジナル記事の投稿時点のものであり、実際の価格とは異なる場合があります。

(記事最終更新日:2023年7月27日)

スケジュールドリバランスでスポットインスタンスの価格上昇に対応しましょう

公開日:2023年10月30日

更新日:2023年10月30日

スポットインスタンスは最大90%、クラウドコストを削減できる可能性がありますが、実際にそこまでの削減を達成するのは簡単ではありません。たとえば、スポットインスタンスの価格が上昇するだけで、コスト最適化が実質的に台無しになることもあります。節約を妥協したくない場合は、CAST AIの新機能であるスケジュールドリバランスが役に立ちます。

AWSではキャパシティタイプごとの、長期的な需要トレンドに応じてスポットインスタンスのレートを緩やかに調整しています。場合によっては、オンデマンド価格に驚くほど近くなり、結局それほどコスト効率がよくないという結果になる可能性もあります。

最近まで、CAST AIユーザーには、このようなスポットインスタンスの価格変更からクラウドの節約を保護するためのプロアクティブなメカニズムがありませんでした。しかし、新しいリバランサーでは、たとえばよりコスト効率がよいスポットインスタンスを利用可能になるなど、条件が満たされると実行されるというようなスケジュールが設定できるようになりました。

このスケジュールドリバランスは、スポット価格の上昇による悪影響を軽減するのに役立ちます。それがどのように動作し、どのように、我々のユーザーの一部でサポートしたかについて、ご説明します。

スポットインスタンスの価格上昇によって節約が損なわれる可能性

スポットインスタンスの価格は、市場の需要と供給に応じて常に変更される可能性があります。これは変動制がついて回るゲームです。特定のリソースがより多くのリクエストを受けると、オンデマンド相当の価格まで変動する可能性があります。

これは、過去にスポットインスタンスタイプを特定のものに固定し、その後に価格が上昇する場合、特に当てはまります。昨年、私たちは3つのクラウドプロバイダに対してスポットインスタンスの価格の変化を調査し、いくつかの興味深いパターンに気づきました。

たとえば、2022年以降AWS c5シリーズを使用し続けた場合、スポット価格が上昇したため、途中でc6aシリーズに変更した場合よりも24%多く支払うことになります。

CAST AIは、AWSのDescribeSpotPriceHistoryなどのAPIを使用して価格情報を取得し、すべてのリージョンでスポット価格情報を常に保持し続けます。このデータは、スポットインスタンスの価格変化を追跡し、よりお得な選択をするために使われます。

1つのファミリー内での価格変更の変動をみるだけで、スポットインスタンスタイプの柔軟性が大幅な節約を可能にすることがわかります。

c6a:-11.82%(decrease)
c1:-6.71%(decrease)
c6g:-3.15%(decrease)
c7g:-2.07%(decrease)
cc2:0.00%(no change)
c6gd:0.02%
c5a:3.24%
c6id:5.37%
c3:8.41%
c5ad:10.91%
c5:12.47%
c6gn:15.95%
c6i:17.41%
c5d:17.87%
c4:20.35%
c5n:20.61%
c6in:28.44%
c7gn:127.14%

あとは、どのスポットインスタンスをいつ選択するべきかを知るだけです。このとき、スケジュールドリバランスが役立ちます。

スポットインスタンスの価格上昇を自動的に軽減

これまで、CAST AIユーザーは、リバランスという機能を使うことで、クラスターの状態を即時に最適にすることができました。

リアルタイムに市場価格をチェックし、リバランスすることで最適ではないクラスタノードを、より安価なオンデマンドに、またはスポットインスタンスに置き換えることができます。SharechatBranchなどのチームは、このリバランサーを使用して構成を最適化し、迅速に大幅な節約を実現しました。

私たちはリバランスを多用しています。それによって、適切な構成と適切なマシンタイプの選択がされるため、インフラストラクチャーが最適化された状態に保たれ、相当量のリソースが節約されます。

–Jenson C S、ShareChatエンジニアリングマネージャー

リバランスの詳細については、このドキュメントをご参照ください。

また、リバランスプランを実行するために、製品コンソールまたはこのスクリプトを使用して、リクエストと承認する必要があります。

CAST AIにスケジュールドリバランサーが追加されたことで、クラウドコスト最適化がさらに強化されました。

スケジュールされたクラウドコスト最適化プランを作成することで、さまざまなユースケースに対応できるようになります。スケジュールを登録すると、リバランサーは目標に向かって独立して動作します。

たとえば、平日はスポットノードを対象とした部分的なリバランスを実行し、完全なクラスターのリバランスは週末に実行するというような設定が可能です。さらに、スポットインスタンスの価格が上昇した場合に代替ノードを選択するなどのスケジュールも設定できます。

スケジュールドリバランスについてもっと詳しく

毎回、手動で忘れないように実行する代わりに、設定したスポットノードを対象に、スケジュールドリバランス機能が自動的に実行してくれます。

リバランサーは、最も高価なスポットノードから順にすべてのスポットインスタンスに対して、価格オプションを検討し、より安価な代替ノードを探します。

たとえば、12個のスポットノードがあり、そのうち5個をリバランスすることにしたとしましょう。リバランサーは、最もコストがかかる順にそれらを並べて、CPUリクエストとRAMリクエストを満たす、最も安価なノードの組み合わせを探します。

このように、期待する削減目標を達成するために、スケジュールドリバランスを使って、ノードのすべてまたは一部を置き換えることができます。

その過程で、リバランサーは新しい、より安価なインスタンスタイプを見つけることもあります。たとえば、GCPが2023年3月にc3インスタンスタイプをリリースしたとき、CAST AIは、これらのパフォーマンスが高く低コストのスポットインスタンスをプロビジョニングするようになりました。あるユーザーは、新しいインスタンスタイプを使用したCAST AIの動作によって、前月比でさらに12.5%の削減をしました。

リバランススケジュールの追加方法

新規リバランススケジュールは製品コンソールを使って追加します。

スケジュール作成時に指定できる主な要素は次のとおりです。

1.ノード選択の設定(Node selection preferences)

このセクションでは、ライフサイクル(オンデマンド/スポット)に基づいて、1つまたは複数のラベルを使用するか、経過時間(1時間以上古いノードなど)を選択して、ターゲットとするノードを具体的に指定できます。

  1. バッチサイズを指定することによって、リバランサーの対象となるノードの最大数を制限できます (サイクルごとに1つのノードだけに制限するなど)。

  2. ラベルを使用することで、柔軟に対象とするノードに含めたり除外したりできます。特に次のようなノードの指定ができます。

  • スポットインスタンスを使用する
  • 特定のテンプレートがある
  • 特定の構成に従う
  • CAST AIによってプロビジョニングされた
  • ・・・

2.削減しきい値(Saving Threshold)

この設定では、リバランサーを開始するために達成する必要がある節約レベル(15%以上など)を指定できます。

  1. この値を指定すると、削減できる量が少なすぎ、リバランスの価値がない場合に、最適化アクティビティの実行を回避できます。

  2. 同時に、この値を0に設定することで、リバランスの目的がコスト最適化ではなく、パフォーマンスやメンテナンスを目的とするシナリオでノードのロールに利用できます(たとえばコントロールプレーンのアップグレード後やノード構成の更新後など)。

3.実行時刻(Execution times)

リバランサーを特定の時間帯に実行するかどうかを決めることができます(金曜日の01:00 UTCから04:00 UTCなど)。

インスタンスの価格上昇に屈しないで

スポットインスタンスの価格変更はさけけることができませんが、計画したクラウドコストの削減をあきらめる必要はありません。

スポット価格の変動についての調査でわかるように、値上げはあまりにも急激なので、人間の頭では追いつけないほどです。

だからこそ、自動化とAIが役に立つのです。そして、スケジュールドリバランスによって実際に大幅なコスト削減が可能になります。ぜひ、下記お問い合わせをクリックしご相談ください。

cast_a
CAST AI
CAST AIは、イノベーター向けの自律的なAI駆動型クラウド最適化ツールでクラウド業界を分散化しています。

新着記事

システム運用管理ソリューション コンテンツ一覧

関連商品・キーワード

最近見た商品一覧