次の戦略を採用することで、サーバーレス アーキテクチャにおける Java 関数のコストを最適化できます: メモリを予約し、コールド スタート コストを回避します。インスタンスの最小数を調整してコストを最適化します。適切な料金プランを選択し、必要な料金をお支払いください。コードを最適化して実行時間を短縮し、CPU 使用率を削減します。自動スケーリングを利用して、負荷に基づいてインスタンスの数を自動的に調整します。
サーバーレス アーキテクチャにおける Java 関数のコスト最適化戦略
はじめに
サーバーレス アーキテクチャでは、リソースは使用量に基づいてオンデマンドで動的に割り当てられ、割り当て解除されるため、コストの最適化に最適です。この記事では、サーバーレス関数のコストを最小限に抑えるのに役立つ、Java 関数のコスト最適化戦略について説明します。
戦略 1: 予約メモリを使用する
予約メモリを使用すると、関数が非アクティブであっても、関数に特定の量のメモリを割り当てることができます。これにより、関数が開始されるたびにメモリを再割り当てするコストが不要になり、起動遅延とコールド スタートのコストが削減されます。
コード例:
FunctionsFramework.http("helloGet", (httpRequest, httpResponse) -> { // 函数逻辑 }); .setMemory("128MB") // 预留 128MB 内存 .setMinInstances(2); // 预留 2 个最小实例
戦略 2: インスタンスの最小数を調整する
インスタンスの最小数は、任意の時点で実行される関数インスタンスの数を指定します。この数値を増減すると、コストを最適化できます。
コード例:
FunctionsFramework.http("helloGet", (httpRequest, httpResponse) -> { // 函数逻辑 }); .setMinInstances(0); // 取消预留最小实例
戦略 3: 適切な料金プランを選択する
Google Cloud Functions は、通話ごと、使用ごと、その他の使用量ベースのオプションを含む柔軟な料金プランを提供します。使用パターンに基づいて最適なオプションを選択することが重要です。
コード例:
functions.cloud.google.com/pricing-plan: "FLEXIBLE" // 设置定价方案
戦略 4: 実行時間を短縮する
関数の実行時間はコストの重要な要素です。コードを最適化して実行時間を短縮すると、CPU 使用率が減り効率が向上するため、コストを節約できます。
コード例:
public class ExampleFunction { @Override public void accept(@Nullable PubsubMessage message, @Nullable Context event) { String text = null; if (message != null) { text = StandardCharsets.UTF_8.decode(message.getData()).toString(); } if (text != null && !text.isEmpty()) { // 函数逻辑 } } }
戦略 5: 自動スケーリングを活用する
自動スケーリングを使用すると、関数はリクエストの負荷に基づいてインスタンスの数を自動的にスケーリングできます。これにより、トラフィックのピーク時のオーバーコミットを防止し、トラフィックの少ない時間帯のコストを節約できます。
コード例:
AutomaticScaling scaling = AutomaticScaling.of(1, 5); // 自动缩放范围为 1 到 5
実際のケース
以下は、上記の戦略を使用して Java 関数のコストを削減することに成功した実際の例です:
アプリケーション: Functions を使用して応答する Web アプリケーションHTTPリクエストに。
戦略:
結果: アプリケーションのパフォーマンスとスケーラビリティを維持しながら、
総関数コストが 40% 削減されます。
以上がサーバーレス アーキテクチャにおける Java 機能のコスト最適化戦略の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。