ビジネスにおけるクラウドコンピューティングサービスの重要性はますます高まっていますが、それに伴ってコストの高騰や可用性の問題、サービス選択の手間などが急増しています。そこで、カリフォルニア大学バークレー校の研究者であるZongheng Yang氏らのチームが、最も費用対効果の高いクラウドを自動的に選択できるオープンソースフレームワーク「SkyPilot」を開発しました。

GitHub - skypilot-org/skypilot: SkyPilot is a framework for easily running machine learning workloads on any cloud through a unified interface.

https://github.com/skypilot-org/skypilot

SkyPilot: ML and Data Science on any cloud with massive cost savings | by Zongheng Yang | Nov, 2022 | Medium

https://medium.com/@zongheng_yang/skypilot-ml-and-data-science-on-any-cloud-with-massive-cost-savings-244189cc7c0f

UC Berkeley Launches SkyPilot to Help Navigate Soaring Cloud Costs

https://www.datanami.com/2022/12/12/uc-berkeley-launches-skypilot-to-help-navigate-soaring-cloud-costs/

クラウドコンピューティングサービスにはAmazon Web Services(AWS)やMicrosoft Azure、Google Cloud Platform(GCP)などさまざまな種類があり、「どのクラウドコンピューティングを使用するべきなのか?」に頭を悩ませた経験がある人も多いはず。

Yang氏は、クラウドコンピューティングサービスを使用する組織は複数のクラウドを利用する「マルチクラウド」か、複数リージョンを切り替え可能にする「マルチリージョン」を実装するのが好ましいと主張しています。マルチクラウド/リージョンを使用するメリットには以下が挙げられます。

◆コストを削減できる

以下は、2022年11月時点の「NVIDIA A100 GPU」「AMDのCPU」「ARMのCPU」のインスタンス利用料を、AWS・GCP・Azureで比較したもの。「NVIDIA A100 GPU」ではAzureが最安でAWSが20%、GCPが8%高額になっているなど、同じハードウェアでもサービスプロバイダーによって価格が異なることがわかります。自分たちの用途に最適なクラウドコンピューティングサービスを選択することができれば、大幅なコスト削減につながります。



同様に、同じクラウドコンピューティングサービスでもリージョンやゾーンによって価格差があるため、リージョンやゾーンの適切な切り替えも重要です。



◆最高のハードウェアを活用できる

ハードウェアはそれぞれパフォーマンスや効率性が異なるため、サービスプロバイダーが競合他社との差別化を図るためにカスタムハードウェアを提供するケースが増えています。Yang氏は以下のような例を挙げています。

・ハイパフォーマンスな機械学習用マシンであるGCPの「TPU」

・費用対効果の高い機械学習推論を実行するAWSの「Inferentia」

・利用中データを暗号化するAzureの「Intel SGX」

提供されるサービスやハードウェアの違いは、クラウド間だけでなくリージョン間にも存在するとのこと。タスクに最適なハードウェアを選択することで、コスト削減やパフォーマンス向上が期待できます。

◆貴重なリソースの可用性を高める

クラウドコンピューティングサービスの需要の高まりから、ハイエンドGPUを利用するクラウドインスタンスの取得は困難となっており、そうでないサービスでも容量不足に直面することがあります。貴重なクラウドコンピューティングリソースの可用性を高めるには、マルチクラウド/リージョンを使用することが一番です。

「Microsoft Azureの容量不足でスタートアップの事業に悪影響が及んでいる」という報告でネットユーザーが激論を交わす - GIGAZINE



しかし、カリフォルニア大学バークレー校でさえ、複数クラウド/リージョンの運用における複雑さは長年の課題となっていたとのこと。Yang氏は、「私たちのラボでは機械学習・データサイエンス・システム・データベース・セキュリティなどのプロジェクトを実行するため、パブリッククラウドに大きく依存しています。その中で、1つのクラウドを実行するだけでも困難であり、複数のクラウドを使用することはエンドユーザーの負担を悪化させるだけであることがわかりました」と述べています。

そこでYang氏らのグループは、マルチクラウド/リージョンの使用を簡素化してコストを削減するために、オープンソースフレームワークのSkyPilotを開発しました。SkyPilotはジョブとリソース要件(CPU/GPU/TPU)を指定すると、ジョブを実行するためのコンピューティングリソースがあるクラウドサービス/リージョン/ゾーンを自動で特定し、最も安価なものを選択して実行するとのこと。



さらにSkyPilotは、容量不足やエラーが発生した場合に自動でフェイルオーバーを実行できるほか、ユーザーコードやファイルをクラスターに同期したり、ジョブのキューイングと実行を管理したりすることも可能だそうです。Yang氏は、SkyPilotを利用してジョブを実行する最も安価なクラウドコンピューティングサービスを選択し、アイドル状態のクラスターを自動でクリーンアップすることで、多くの場合でコストが3分の1以下に削減できると主張しています。

SkyPilotは過去数カ月にわたって10以上の組織に所属する数十人の研究者に展開されており、さまざまなユースケースで使用されてきたとのこと。たとえばソーク生物学研究所の科学者は、SkyPilotを使用して毎週の定期的なパッチジョブを実行しています。これにより、オンデマンドでインスタンスを実行した場合と比較してコストが6分の1以下に削減されたほか、ジョブの完了時間も大幅に短縮されたそうです。

Yang氏は、「ソーク研究所のユーザーからは、SkyPilotはクラウドを抽象化することで、研究者がクラウドの複雑な仕組みを学ぶのではなく、科学に集中することができるという声が寄せられています」と述べました。

Yang氏は今後数カ月以内に、SkyPilotのシステムや詳細なユースケース、導入方法についてさらに詳しい情報を提供すると述べているほか、機能の改善も計画されているとのことです。