Function calculation specification optional function

はじめに:現在、Function Compute は独立仕様選択機能を提供しています。この機能により、CPU とメモリの固定比率の制約がなくなるとともに、非常に小さい刻み幅で関数仕様を精密に設定できるようになり、関数が必要な分だけリソースを使用できるようになりました。リソース利用率の向上とユーザーのコスト削減を実現します。

2022 年に開催された杭州雲棲大会で、Alibaba Cloud は Function Compute (FC) の包括的な価格改定を発表しました。vCPU の単位価格が 11% 削減され、その他の独立課金項目の最大削減幅は 37.5% に達します。Function Compute の全体的な価格改定により、サーバーレスをより手頃な価格で利用できるようになりました。ユーザーは使った分だけ課金される従量課金モデルにより、より低コストでサーバーレスアーキテクチャを導入できます。では、どのような技術的な改善によってこのコスト削減が実現したのでしょうか。本稿では、その鍵となる技術である独立仕様選択機能について詳しく解説します。

課題:仕様の柔軟性の低さとコストの無駄

Function Compute には、CPU 集約型や IO 集約型など、ますます多様なワークロードがデプロイされるようになっています。これらのワークロードの中には大容量のディスクを必要とするものもありますが、Function Compute はメモリサイズに比例したコンピューティング能力の割り当てしか提供していませんでした。そのため、最大需要を満たすには、ユーザーは実際の必要量を超える仕様を設定する必要があり、正確なコスト管理が困難でした。さらに、選択可能な仕様プランが少なく、仕様の刻み幅が大きいため、柔軟性はさらに損なわれていました。

これらの課題を解決するため、Function Compute は独立仕様選択機能を導入しました。この機能により、CPU とメモリの固定比率の制約がなくなるとともに、非常に小さい刻み幅で関数仕様を精密に設定できるようになり、関数が必要な分だけリソースを使用できるようになりました。リソース利用率の向上とユーザーのコスト削減を実現します。

仕様選択機能はどのようにユーザーのコスト削減に寄与するのか

次に、具体的なケースを通じて独立仕様選択機能のメリットを直感的に理解していただきます。

実際のリソース使用量に適合した関数仕様

次の図は、関数の実行時の vCPU とメモリの使用状況を示しています。この関数の vCPU 使用量は常に 1.5 コア未満、メモリ使用量は 6 GB 未満に収まっています。未使用のリソースにも支払いが発生するため、明らかなリソースの無駄が生じています。

独立仕様選択機能が導入される前は、Function Compute が提供するメモリ仕様は 4 GB、8 GB、16 GB、32 GB の 4 種類のみでした。この関数の最大メモリ使用量は 5 GB を超えるため、関数の正常な実行を確保するには 8 GB のメモリを設定する必要があり、このメモリに対応する vCPU 仕様は 4 コアでした。

独立仕様選択機能により、関数仕様を 1.5 コア vCPU と 6 GB メモリに調整できるようになりました。リソース利用率が大幅に向上し、コストを元の 44% にまで削減できます。

・調整前:4 コア 8 GB の関数。1 秒あたりのコストは 4 コア × 0.000127 元/(コア × 秒) + 8 GB × 0.0000127 元/(GB × 秒) = 0.0006096 元

・調整後:1.5 コア 6 GB の関数。1 秒あたりのコストは 1.5 コア × 0.000127 元/(コア × 秒) + 6 GB × 0.0000127 元/(GB × 秒)

= 0.0002662 元

ヒント:モニタリング指標ページのインスタンス指標を確認し、関数が vCPU やメモリリソースを十分に活用できていない場合は、関数仕様の調整によるコスト削減を検討してください。

よりきめ細かい GPU コンピューティング能力

一部のアルゴリズムシナリオでは、モデルをクラウドにデプロイしてオンライン推論サービスを提供します。たとえば、そのモデルに 1.8 GB のビデオメモリが必要だとします。従来の方法で GPU 搭載の ECS を購入すると、最小のビデオメモリでも 8 GB になります。単一のオンライン推論サービスを実行する場合、GPU 使用率は 25% 未満に留まり、大きな無駄が生じます。複数のオンライン推論サービスを同じマシンで実行して使用率を改善しようとしても、追加のリクエストスケジューリング機能を開発し、他の種類のリソース配分を調整する必要があり、開発と運用保守の複雑性が増し、柔軟性はほぼゼロになります。

GPU カード全体を専有する代わりに、Function Compute を使用すれば、関数に 2 GB のビデオメモリだけを割り当てることができます。リソース使用率を最大限に高めるとともに柔軟性も確保でき、リソースコストと運用保守コストの両方を削減できます。

今すぐ体験

独立仕様選択機能は、現在すべてのユーザーに公開されています。Function Compute コンソールの関数設定ページで、CPU、メモリ、ディスク、GPU の各リソース仕様を変更できます。ただし、以下の具体的な規則に従う必要があります。

・vCPU:0.05 から 16 コアの範囲で、0.05 コア単位

・メモリ:128 MB から 32 GB の範囲で、64 MB 単位

・GPU:2 GB から 16 GB の範囲で、1 GB 単位

・ディスク:512 MB と 10 GB の 2 段階。Function Compute は各インスタンスに 512 MB の無料ディスク領域を提供します

Serverless Devs ツールを使用している場合は、関数フィールドの memorySize、cpu、diskSize 属性を設定することで同じ効果を得られます。memorySize と diskSize の単位は MB、cpu の単位はコアです。

技術的な背景

前述のケースから、この機能の実用性と価値を実感いただけるでしょう。複雑な機能ではありませんが、なぜ今になって導入されたのでしょうか。

この疑問に答えるには、Function Compute のリソース管理システムの仕組みを理解する必要があります。

高密度デプロイメント

以前、Function Compute は Docker コンテナを関数の実行環境として使用していました。マルチテナント環境でのセキュリティを確保するため、各ユーザーには独立した仮想マシンが割り当てられていました。128 MB の小さな関数を実行する場合でも、2 コア 4 GB の仮想マシンが必要でした。このリソースの無駄はプラットフォームが負担していました。仮想マシンの仕様は固定されているため、プラットフォームのリソース利用率を改善するには、関数仕様設定時にメモリサイズのみを設定可能とし、CPU とメモリの比率は仮想マシンの仕様に合わせていました。

現在、Function Compute はエラスティックベアメタルサーバー上のセキュアコンテナでユーザーの関数を実行し、1 台のマシンで 2,000 以上の関数インスタンスを同時に動作させる高密度デプロイメントを実現し、プラットフォームコストを削減しています。

スケジューリングの最適化

高密度デプロイメントの実現後、独立仕様設定機能を直接提供することはできませんでした。この機能により関数の仕様が多種多様化し、さまざまな比率の組み合わせにより Function Compute のスケジューリングが複雑化し、プラットフォームのリソース利用率が低下する可能性があるためです。たとえば、ベアメタルサーバー上で数個の関数インスタンスを実行しただけで CPU が一杯になり、メモリ利用率はまだ低い水準に留まっているのに、そのマシンに新しい関数インスタンスを作成できなくなるといった状況です。

この問題を解決するため、Function Compute は各関数のリソースイメージを把握し、各リソースの統計を取ります。関数インスタンスをスケジューリングする際、リソースの相補性が最も高いマシンを選択してインスタンスを作成します。

長年の技術蓄積と効率的なスケジューリング戦略により、Function Compute はリソースプールの利用率を継続的に改善してきました。これにより、独立仕様設定機能を提供し、ユーザーにより柔軟な体験を提供するとともに、サーバーレス技術の恩恵をより手軽に享受できるようになりました。

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.