Spotinst を利用して AWS, Azure, Google Cloud のスポット インスタンスを最適化!

スポット インスタンスによって、パブリック クラウド サービスの利用方法が変わってきています。スポット インスタンスは、クラウド プロバイダーが提供する短期間のインスタンスで、On-Demand (オンデマンド) または Reserved (リザーブド) インスタンスと比べて非常に低コストで利用できます。クラウドプロバイダーは、Excess Capacity (過剰なキャパシティ) をマネタイズ、収益化する方法としてスポット マーケットを活用しています。スポット インスタンスの価格は、需要と供給によって異なりますが、平均して、ユーザーはオンデマンド インスタンスと比べて最大 80% のコストを削減できます。

Spotinst の Elastigroup は、大手クラウド サービス プロバイダー、AWS (Amazon Web Service)、GCP (Google Cloud Platform) および Microsoft Azure に対応し、オンデマンドや予約済みのインスタンスではなく、各プロバイダーが提供する安価な使用していないインスタンス、AWS ではスポット インスタンス、GCP ではプリエンプティブ VM、Azure では低優先度 VM を自動的に安定的に活用し、クラウド サービスの活用のパフォーマンスを最適化し、コストを削減できます。

上位 4 社のクラウド プロバイダーである Amazon Web Services (AWS)、Microsoft Azure、Google Cloud、IBM は、スポット インスタンスを提供しています。この記事では、これら 4 社のクラウド プロバイダーが提供するスポット インスタンスを比べて、長所と短所、サポートするワークロードの種類、価格設定モデルなどを紹介します。

学術機関での研究

クラウド プロバイダーが Excess Capacity (過剰なキャパシティ) を活用して低コストのスポット インスタンスを販売するアイディアは、世界中の学術機関で広く研究されています。Tsafrir et al. from Technion (Israel Institute of Technology、イスラエル工科大学) は、過去の価格を含む AWS のスポット インスタンスの価格の分析を行い、Amazon はランダムな Reserved (リザーブド) 価格を使用してスポットの価格を設定していると結論付けました。Rajiv Ranjan et al. は広範な分析を行い、固定の価格モデルよりもスポット マーケット ベースの価格モデルを好む多くの研究結果があると結論付けました。

彼らの研究では、スポット マーケットの価格体系の洗練された価格モデルを使用することと、これらのクラウド サービスを消費する現実との間には、大きなギャップがあることも発見しました。彼らは、関連する価格体系の利点をユーザーへ提供する一方で、適切なマージンを持つクラウド ベンダーを支援することはできませんでした。

Rajkumar Buyya et al. (The University of Melbourne, Australia、オーストラリアのメルボルン大学)は、クラウド プロバイダーにとって最適な利益を提供する online Ex-CORE (Online Extended Consensus Revenue Estimate) オークションと呼ばれる価格メカニズムにをベースとした SipaaS (Spot instance pricing as a Service) と呼ばれるスポット価格体系のフレームワークを考案しました。彼らは OpenStack の上位で価格モデルをテストし、スポット インスタンスの価格体系が有効であると分かり、彼らは Open Source ライセンスとしてフレームワークをリリースしました。Rajkumar Buyya のチームは、AWS スポット インスタンスの価格データを分析し、価格モデルがガウス分布の混合に適合することを発見しました。

学術機関のコミュニティでは、スポット価格モデルを広く研究していますが、クラウド プロバイダーやスタートアップがスポット インスタンスの価格をベースとしたさまざまなサービスを提供していることも確認しています。このブログ記事では、これらのプロバイダーが提供する価格体系を比較します。

AWS (Amazon Web Service)

2009年以降、AWS では、需要と供給に基づいて最大 90% の割引を提供するスポット マーケットでの Excess Capacity (過剰なキャパシティ) をベースとした Amazon EC2 スポット インスタンスを提供しています。AWS では、初期の段階では、入札モデルを使用してスポット インスタンスを提供していましたが、在庫で利用可能な Excess Capacity (過剰なキャパシティ) をベースとして、先着順で利用できるように変更しました。入札モデルはオプションとなります。EC2 のスポット インスタンスを EMR、Auto Scaling、Elastic Container Service (ECS)、Data Pipeline、AWS Batch などの他の AWS サービスと一緒に使用できます。

利点
– スポット インスタンスの削除時に 2分前に事前通知をし、ユーザーが正常にシャットダウンするか、他のインスタンスにフォールバックする時間を提供します。

– 非常に大きな利点は、Google が提供しているようなスポット インスタンスの期間に時間制限がないことです。

– EC2 Fleet を提供し、ターゲット価格やプール間のターゲット配布をベースとした On-Demand (オンデマンド) インスタンスと一緒にスポット インスタンスをオーケストレーションおよび管理します。

– スポット インスタンス アドバイザーにより、ユーザーはリージョン間で中断が最も少ない場所がどこか特定できます。

弱点
– スポット インスタンスはまだ特定の一時的なユースケースのサポートを制限する “Application Aware” ではない

– AWS は、このタイプの EC2 のキャパシティの一貫した利用を確約できません

懸念事項

AWS EC2 スポット インスタンスは、ビッグデータ、コンテナ化されたワークロード、HPC、ステートレス Web サーバー、レンダリング、CI/CD、その他のテストおよび開発ワークロードなど、さまざまなフォールトトレラントで柔軟なアプリケーションに有効です。EC2 Spot Fleet を使用すると、自動スクリプトを使用して、ワークロードを他の使用可能なインスタンス (On-Demand インスタンスを含む) に移動して、スポット インスタンスの期間を終了しても長時間実行するワークロードを作成できます。ただし、これにより、運用上のオーバーヘッドが追加され、障害のリスクが高まります。しかし、適切な自動化、分析、および On-Demand および Reserved インスタンスと一緒にスポット インスタンスを活用することにより、さまざまなミッション クリティカルなワークロードを実行できます。

Google Preemptible VM (プリエンプティブ VM)

Google Cloud が提供する Preemptible VM (プリエンプティブ VM) は、短期間の低コストの仮想マシンであり、ユーザーがフォールト トレラント ワークロードまたは他の短期間のワークロードを実行するのに役立ちます。Amazon EC2 のスポット インスタンスに似ていますが、大きな違いがあります。固定価格の Preemptible (プリエンプティブ) インスタンスを使用すると、On-Demand インスタンスよりも最大 80% のコストを削減できます。Google はまた、Google Kubernetes Engine で Preemptible (プリエンプティブ) GPU インスタンスと Preemptible (プリエンプティブ) VM を提供しています。

利点

– 割引率と価格体系は固定です。 – インスタンスのタイプに制限はありません。 – Preemptible (プリエンプティブ) インスタンスのプロビジョニングは簡単で、コマンドラインにビットを追加するだけです。

弱点
– 最大の弱点 – 最大 24 時間の制限があります。

– インスタンスの削除時に、わずか 30 前に通知します。正常にシャットダウンするには十分な時間ですが、特定のフェイルオーバーのユースケースでは制限がある場合があります。

– 内部調査および静的情報によると、特定のインスタン スタイプでは、6 時間以内に中断されます。これは、ステートレス Web サーバー/コンテナであるにもかかわらず、PVM の上位で本番用のワークロードを実行するには大きな懸念事項となります。

懸念事項

Google Preemptible (プリエンプティブ) インスタンスは、バッチジョブやその他のフォールト トレラント ワークロードには適していますが、他のワークロードには適していません。本番またはミッション クリティカルな環境に対して Preemptible (プリエンプティブ) VM を活用する際には、事前に十分に検討する必要があります。Preemptible (プリエンプティブ) VM は短期間であり、本番およびミッション クリティカルなワークロードで対処するには、追加の運用オーバーヘッドが発生します。このようなワークロードに Preemptible (プリエンプティブ) なインスタンスを活用するには、自動化と分析を使用して、これらのワークロードと一貫性のある SLA を提供するプラットフォームを使用することを検討する必要があります。

Azure Low-Priority VM (低優先度 VM)

Azure Low-Priority VM (低優先度 VM) は、2017年に開始されました。Azure データ センターの Excess Capacity (過剰なキャパシティ) からこれらの VM を提供します。AWS や Google Cloud の場合とは異なり、Azure では、Linux Low-Priority VM (低優先度 VM) を 80% 割引、Windows インスタンスを 60% 割引を提供します。Low-Priority VM (低優先度 VM) は、Azure Batch と VM スケール セットの一部として利用可能です。これらのインスタンスは、メディア レンダリングやその他の大規模なジョブ、特定の開発/テスト ワークロード、デモなどのバッチ処理のワークロードに効果的です。

強み
– 固定の価格体系でコストを予測可能です。

– On-Demand インスタンスで Azure バッチ プール内でネイティブとして動作できます。

弱さ
– 数百の VM へのスケーリングには問題があります。多くの場合、一部の VM は利用できません。

– リソースの可用性に関する情報の可視性が乏しいです。これによって VM の移植と計画が困難になります。

– これらの VM は Azure Batch および VM Scale Set でのみ利用可能なので、Low-Priority VM (低優先度 VM) の単一のインスタンスを起動することはできません。

– 他の Azure サービスとの統合に制限があるため、開発者はこれらのインスタンスを他の Azure サービスと一緒に使用するのに制限があります。

懸念事項

Azure Low-Priority VM (低優先度 VM) は、バッチ処理の非常に限られたユースケースで効果的であり、他の Azure サービスと統合されていません。Azure Low Priority VM (低優先度 VM) は、機能とサポートするユースケースが限定されているため、自動化を使用して他のタイプのワークロードを実行するために、これらの VM を活用する方法を検討することが重要です。

IBM Transient Servers (トランジェント仮想サーバー)

IBM Transient Virtual Servers は、世界中のすべてのデータセンターの Excess Capacity (過剰なキャパシティ) をベースとして、IBM が提供する低コストで短期間なインスタンスです。それらはマルチテナント仮想インスタンスであり、標準の On-Demand インスタンスよりも 75% のコストを削減します。これらのインスタンスは、開発/テストおよびバッチ ワークロードをサポートします。

弱点
– インスタンスは予告なしにプロビジョニング解除され、混乱を招く可能性があります。

– インスタンスをアップグレードまたはダウングレードすることはできず、ローカルストレージのサポートはありません。

– 他の IBM クラウド サービスとの統合は限定的です。

懸念事項

IBM Transient Virtual Servers は、バッチ処理や開発/テスト ワークロードなどの短期間のワークロードを実行するには、費用効果の高い方法を提供します。

結論

すべての主要なクラウド プロバイダーは、さまざまな機能セットを備えたスポット インスタンスを提供しています。これらの短期間のインスタンスは、適用範囲は限られており、これらのユースケースを超えて使用を拡張するには、運用上のオーバーヘッドが発生します。エンタープライズでは、多くのワークロードに対して、On-Demand と Reserved インスタンスを使用しています。これは、クラウド インフラストラクチャを使用する最善の策とは言えません。自動化と分析により、組織はスポット インスタンス、On-Demand インスタンス、Reserved インスタンスを組み合わせて使用し、保証された SLA で多くのワークロードを実行できます。

次の表は、4 つの主要なクラウド プロバイダーが提供するさまざまなスポット インスタンスの機能をまとめたものです。

記事参照:
© Spotinst 2019

2019 年 03 月 24 日
Understanding Excess Capacity: Amazon EC2 Spot vs. Azure Low-Priority VM vs. Google Preemptible VM vs IBM Transient Servers