BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Googleがコールドスタート低減のために最小インスタンスを導入

Googleがコールドスタート低減のために最小インスタンスを導入

原文(投稿日:2021/09/07)へのリンク

GoogleのFunction as a Service(FaaS)製品のCloud Functionsが、最小('min')インスタンスをサポートするようになった。この新機能により、Googleは「コールドスタート」と呼ばれるFaaSのよく知られている障壁を取り除くことを目指している。

昨年10月、同社はCloud Functionsに対していくつか新たなアップデートを行った。例えば、max-instances機能によって、開発者は受信リクエストに応じて関数をスケールする度合を制限できる。通常、関数はしばらくアイドル状態になるとゼロにスケールダウンする。ところが、ゼロにスケールダウンすると、関数が初期化されてリクエストの処理が開始されるまでに数秒かかる場合がある。そのため、現在Googleはmin-instancesを取り入れている。需要の少ない間でも開発者がCloud Functionsのためにインスタンスをいくつか構成できるようにするためのものだ。これによって、コールドスタートを最小限に抑えることができる。さらに、最小インスタンスが構成されている間のアイドル機能の料金はレートが異なる。

現在、開発者はGoogleコンソールで関数を作成し、自動スケーリングセクションでインスタンスの最小数と最大数を指定できる。さらに、開発者はgcloudコマンドラインツールを使ってインスタンス数の最小制限を設定することもできる。インスタンスの最小数を0より大きいで指定することで、パフォーマンスが向上する。

 
出典: https://twitter.com/rtarnec/status/1392882183463919624/photo/1

GoogleのプロダクトマネージャーVinod Ramachandran氏とGoogleのディベロッパーアドボケートKelsey Hightower氏は、Google Cloudのブログ投稿に次のように書いている。

この新機能では、需要が少ない時間帯にもオンラインを維持するアプリケーションのインスタンスの最小数を指定することで、サーバレスアプリケーションとワークフローのパフォーマンスを劇的に向上させ、コールドスタートを最小限に抑えられます。

さらに、Redditスレッドの投稿者が最小インスタンスの構成について次のように書いている。

私がデプロイしたモデルは、ハグフェイスモデルがロードされた通常のPythonクラウド関数です。関数で実行されているflask APIがあり、テキスト列が与えられると予測を返します。
実行時間は300ミリ秒未満ですが、コールドスタートには最大20秒かかる可能性があるため、コールドスタートを回避することは私たちにとって非常に重要でした。

他にもパブリッククラウドベンダのAWSとMicrosoftもFaaSを提供している。それぞれコールドスタートに対する扱いが異なる。たとえば、AWS Lambdaでは、開発者はプロビジョニングされた同時実行機能を利用できる。一方で、Azure Functionsでは、開発者は別のApp ServiceプランでFunctionsを実行することを選択できる

最後に、Google Cloud Functionsのガイダンス、ドキュメント、価格設定は、ランディングページ価格ページで閲覧できる。また、最小インスタンスについては、GitHubで利用できるチュートリアルがある。

この記事に星をつける

おすすめ度
スタイル

BT