Amazon Web Services ブログ

モービルアイとスカイスキャナーで実行中の容量最適化スポットインスタンスの割り当て

Amazon EC2 スポットインスタンスは 2009 年に公開されました。インスタンスは、オンデマンド料金と比較して予備の EC2 コンピューティング容量を最大 90% 節約できます。スポットインスタンスは EC2 (2 分間のお知らせ) によって中断される可能性がありますが、それ以外はオンデマンドインスタンスと同じです。Amazon EC2 Auto Scaling を使用して、スポットインスタンス、オンデマンドインスタンス、および Savings Plan の一部であるインスタンスをすべて 1 つの EC2 Auto Scaling グループ内でシームレスにスケーリングできます。

何年にもわたって、シンプルな料金モデル容量最適化スケーリング戦略 (秒単位)、EC2 RunInstances API との統合など、多くの強力なスポット機能を追加してきました。

EC2 Auto Scaling では、スポットインスタンスに 2 つの異なる割り当て戦略を使用できます。

最低料金 – 履行時に最低料金のスポットインスタンスプールからインスタンスを割り当てます。スポット料金は、長期的な需給傾向に基づき、時間が経過するにつれてゆっくり変化しますが、容量はリアルタイムで変動します。最低料金戦略ではスポットインスタンスをデプロイするときにプール容量を考慮しないため、この割り当て戦略は、中断のコストが低く、障害耐性のあるワークロードに適しています。

容量最適化 – リアルタイムの容量データを利用して、起動中のインスタンスの数に最適な容量を以ってスポットインスタンスプールからインスタンスを割り当てます。この割り当て戦略は、中断のコストが高いワークロードに適しています。選択したインスタンスファミリー、サイズ、世代によって強化された柔軟性をご利用いただけます。

本日は、容量最適化割り当て戦略の使用方法について示し、お客様と 2 つの顧客事例を共有したいと思います。

容量最適化割り当ての使用
最初に、[新しいコンソールに移動] をクリックして、新しい Auto Scaling コンソールに切り替えます。

新しいコンソールには、Auto Scaling がどのように機能するかを説明する素晴らしい図が含まれています。[Auto Scaling グループを作成] をクリックして続行します。

Auto Scaling グループに名前を付け、通常どおり起動テンプレートを選択して、[次へ] をクリックします。

起動テンプレートに慣れていない場合は、最近の EC2 Goodies – 起動テンプレートとスプレッド配置をお読みになって、それらすべてについて学びます。

起動テンプレートではインスタンスタイプが指定されていないため、購入オプションとインスタンスタイプの組み合わせは事前に選択されており、変更できません。容量最適化割り当て戦略も選択されていることを確認し、オンデマンドインスタンスとスポットインスタンスの間で望ましいバランスを設定します。

次に、プライマリインスタンスタイプを選択すると、コンソールは他のタイプを推奨します。プライマリインスタンスタイプの生成内で、ファミリーと世代 (たとえば、m3m4m5) の柔軟性または単なるサイズの柔軟性 (largexlarge12xlarge など) を選択できます。先に述べたように、この戦略は柔軟性に優れているため、できるだけ多くの関連インスタンスを選択することが利益につながります。

また、使用する各インスタンスタイプの重みを指定することもできます (サイズの柔軟性を利用している場合に特に役立ちます)。

また、(非表示の) VPC とその内部にある目的のサブネットを選択し、[次へ] をクリックして、通常どおり続行します。サブネット/アベイラビリティーゾーンに関する柔軟性もメリットの一つです。詳細については、複数のインスタンスタイプと購入オプションを備えた Auto Scaling グループをご覧ください。

それでは、AWS の顧客であるスカイスキャナーとモービルアイが、この機能をどのように利用しているかを見てみましょう。

スカイスキャナーでの容量最適化割り当て
スカイスキャナーはオンライン旅行予約サイトです。スポットインスタンスでサイトのフロントエンド処理を実行し、1 日あたり最大 40,000 コアを有効に利用します。スカイスキャナーのオンラインプラットフォームは、スポットインスタンス全体を利用した Kubernetes クラスターで実行されます (詳細については、このビデオをご覧ください)。容量最適化割り当てには、次のように多くのメリットがあります。

市場投入までの時間を短縮 – より少ないコストでより多くのコンピューティングパワーにアクセスできるため、従来のインフラストラクチャを使用して新しいサービスを立ち上げるまで 6〜7 週間かかっていたものが AWS クラウドでわずか 50 分に短縮できました。

コスト節約 – アベイラビリティーゾーンおよびインスタンスタイプ全体でスポットインスタンスを多様化することで、各コアで全体の 70% を節約しました。

中断の減少 – スカイスキャナーがブラックフライデーに備えて実行したテストでは、古い構成 (最低料金) のスポット中断が 200〜300 で、新しい構成 (容量最適化) のスポット中断が 10〜15 であることがわかりました。

モービルアイでの容量最適化割り当て
モービルアイ (Intel company) は、自動運転車と高度な運転支援システムに向けてビジョンベースのテクノロジーを開発しています。スポットインスタンスは、分析、機械学習、シミュレーション、および Docker コンテナにパッケージ化された AWS Batch ワークロードを実行するために使用されます。通常、20 万から 30 万の同時コアを使用します。1 日のピーク使用量は約 50 万で、すべてがオンスポットで行われます。以下は、1 日のインスタンス数を表したグラフです。

容量最適化割り当てに切り替え、スポットインスタンスのベストプラクティス通りにいくつかの変更を行ってから、全体的な中断率が約 75% 減少しました。これらの変更により、アプリケーションの稼働時間を増やし、洞察を得るまでの時間を短縮しながら、コンピューティングコストを節約できました。

モービルアイがスポットインスタンスを使用する方法については、re:Invent のプレゼンテーション、無人モビリティに向けて曲がりくねった道路を進むをご覧ください。

Jeff