AWS(Amazon Web Services)の仮想マシンサービス「Amazon EC2」では、いくつかの割引オプションを用意する。その中でも「スポットインスタンス」は、通常のオンデマンドインスタンスに比べて最大90%オフと割引率が最も大きい。野村総合研究所(NRI)マルチクラウドインテグレーション事業部の遠山陽介GM(グループマネージャー)は、「用途は限られるがハマれば非常に有用。Amazon EMRなどの大規模並列分散処理との相性が非常に良く、大幅なコスト削減が期待できる」と話す。

 アマゾン ウェブ サービス ジャパン 事業開発本部 プラットフォーム事業開発本部の大久保順本部長は「スポットインスタンスはAWSの余剰キャパシティーを安価にユーザーに提供するもの」と説明する。AWSに空きがあれば調達でき、キャパシティーがひっ迫すると回収されて使えなくなる。

 スポットインスタンスは「スポットプール」と呼ばれる領域で管理される。スポットプールは、AWSのリージョン、アベイラビリティーゾーン(AZ)、 インスタンスタイプごとに用意されていて、ユーザーの調達リクエストに応じてスポットインスタンスを割り当てる。

 スポットインスタンスが割り当てられるかどうかは、ユーザーの「指し値」と「スポットプールの空き状況」で決まる。従来は「入札」を実施していたが、需給状況によってはオンデマンドインスタンスより割高になる弊害があった。現在は「東京リージョンでc4.largeインスタンスを上限価格いくらでスポットインスタンスとして起動したい」のようにリクエストする。その時点のスポットインスタンスの価格が上限価格を下回り、スポットプールに空きがあれば、そのユーザーはスポットインスタンスを起動できる。

インスタンスの回収に備える

 スポットインスタンスの利用では、空きキャパシティーの不足によるインスタンスの回収への備えが必須だ。回収が発生すると、利用中のインスタンスをシャットダウンする旨の通知が2分前に届く。処理の中断に向けて「仕掛中の処理を退避」したり、「新規処理の受付を停止」したりする必要がある。

 「スポットインスタンスの中断は3カ月間で5%程度だ」(大久保本部長)という。とはいえ、こうした中断を許容できるか、できないとしたら中断時はオンデマンドインスタンスを起動して補うなど、運用方針を整理しておく必要がある。

 ここで参考になるのが、AWSが提示するスポットインスタンスを使いながら耐障害性を高めるための4原則だ。アプリについては「ステートレス」で実装し、「再開可能」にしておく。システムについては「疎結合」にして周辺の影響を極小化するとともに、複数のAZやインスタンスタイプにスポットインスタンスを「分散」させて中断のリスクを下げる。

 4原則を踏まえたうえで、大久保本部長がスポットインスタンスの利用が向くとして挙げるのが、ビッグデータ分析、HPC、CI/CD(継続的インティグレーション/継続的デリバリー)、コンテナサービスなどである。

 スポットインスタンスの実運用では、中断通知を受けてからシャットダウンが始まるまでの2分間が腕の見せどころだ。先進ユーザーは中断通知をトリガーにオンデマンドインスタンスを自動で立ち上げてパフォーマンスを落とさない工夫などを施す。また一時的にパフォーマンスが落ちても、再びスポットインスタンスを確保して処理が継続できれば構わないという見極めもありだ。最近では、AWSのサービス自体が中断対策を取り込んできた。

 その1つが機械学習のワークフローを管理する「Amazon SageMaker」だ。SageMakerでスポットインスタンスを活用し、AI(人工知能)システムの学習コストを大幅に削減したのが、AIシステムの開発を手掛けるシナモン(Cinnamon AI)である。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。