Azure Functions の Premium プランAzure Functions Premium plan

Azure Functions の Premium プラン (Elastic Premium プランとも呼ばれます) は、関数アプリのホスティング オプションです。The Azure Functions Premium plan (sometimes referred to as Elastic Premium plan) is a hosting option for function apps. Premium プランでは、VNet 接続、コールド スタートなし、プレミアム ハードウェアなどの機能が提供されます。The Premium plan provides features like VNet connectivity, no cold start, and premium hardware. 複数の関数アプリを同じ Premium プランにデプロイできます。プランでは、コンピューティング インスタンス サイズ、基本プラン サイズ、および最大プラン サイズを構成できます。Multiple function apps can be deployed to the same Premium plan, and the plan allows you to configure compute instance size, base plan size, and maximum plan size. Premium プランと、他のプランおよびホスティング タイプの比較については、関数のスケールとホスティング オプションに関するページを参照してください。For a comparison of the Premium plan and other plan and hosting types, see function scale and hosting options.

Premium プランを作成するCreate a Premium plan

  1. Azure portal メニューまたは [ホーム] ページで、 [リソースの作成] を選択します。From the Azure portal menu or the Home page, select Create a resource.

  2. [新規] ページで、 [計算] > 、 [関数アプリ] の順に選択します。In the New page, select Compute > Function App.

  3. [基本] ページで、下の表に指定されている関数アプリの設定を使用します。On the Basics page, use the function app settings as specified in the following table:

    設定Setting 推奨値Suggested value 説明Description
    サブスクリプションSubscription 該当するサブスクリプションYour subscription この新しい Function App が作成されるサブスクリプション。The subscription under which this new function app is created.
    リソース グループResource Group myResourceGroupmyResourceGroup Function App を作成するための新しいリソース グループの名前。Name for the new resource group in which to create your function app.
    関数アプリ名Function App name グローバルに一意の名前Globally unique name 新しい Function App を識別する名前。Name that identifies your new function app. 有効な文字は、a-z (大文字と小文字の区別をしない)、0-9、および -です。Valid characters are a-z (case insensitive), 0-9, and -.
    発行Publish コードCode コード ファイルまたは Docker コンテナーの発行オプション。Option to publish code files or a Docker container.
    ランタイム スタックRuntime stack 優先言語Preferred language お気に入りの関数プログラミング言語をサポートするランタイムを選択します。Choose a runtime that supports your favorite function programming language. C# および F# 関数用の [.NET] を選択します。Choose .NET for C# and F# functions.
    リージョンRegion 優先リージョンPreferred region ユーザーに近いリージョン、または関数がアクセスする他のサービスの近くのリージョンを選択します。Choose a region near you or near other services your functions access.

    基本ページ

  4. [Next:ホスティング] を選択します。Select Next: Hosting. [ホスティング] ページで、次の設定を入力します。On the Hosting page, enter the following settings:

    設定Setting 推奨値Suggested value 説明Description
    ストレージ アカウントStorage account グローバルに一意の名前Globally unique name Function App で使用されるストレージ アカウントを作成します。Create a storage account used by your function app. ストレージ アカウント名の長さは 3 ~ 24 文字で、数字と小文字のみを使用できます。Storage account names must be between 3 and 24 characters in length and may contain numbers and lowercase letters only. 既存のアカウントを使用することもできますが、ストレージ アカウントの要件を満たしている必要があります。You can also use an existing account, which must meet the storage account requirements.
    オペレーティング システムOperating system 優先オペレーティング システムPreferred operating system オペレーティング システムは、ランタイム スタックの選択に基づいてあらかじめ選択されますが、必要に応じて設定を変更できます。An operating system is pre-selected for you based on your runtime stack selection, but you can change the setting if necessary. Python は Linux でのみサポートされています。Python is only supported on Linux.
    プランPlan PremiumPremium Function App にどのようにリソースが割り当てられるかを定義するホスティング プラン。Hosting plan that defines how resources are allocated to your function app. [Premium] を選択します。Select Premium. 既定では、新しい App Service プランが作成されます。By default, a new App Service plan is created. 既定の SKU とサイズEP1 です。ここで、EP は "エラスティック Premium" を表します。The default Sku and size is EP1, where EP stands for elastic premium. 詳細については、Premium SKU の一覧を参照してください。To learn more, see the list of Premium SKUs.
    Premium プランで JavaScript 関数を実行する場合は、vCPU の少ないインスタンスを選ぶ必要があります。When running JavaScript functions on a Premium plan, you should choose an instance that has fewer vCPUs. 詳しくは、シングルコア Premium プランの選択に関する記事をご覧ください。For more information, see Choose single-core Premium plans.

    [ホスティング] ページ

  5. [Next:監視] を選択します。Select Next: Monitoring. [監視] ページで、次の設定を入力します。On the Monitoring page, enter the following settings:

    設定Setting 推奨値Suggested value 説明Description
    Application InsightsApplication Insights DefaultDefault 最も近いサポートされているリージョン内に同じアプリ名の Application Insights リソースを作成します。Creates an Application Insights resource of the same App name in the nearest supported region. この設定を展開することによって、 [新しいリソース名] を変更するか、データを格納する Azure 地域内の別の場所を選択することができます。By expanding this setting, you can change the New resource name or choose a different Location in an Azure geography to store your data.

    [監視] ページ

  6. [確認および作成] を選択して、アプリ構成の選択内容を確認します。Select Review + create to review the app configuration selections.

  7. [確認および作成] ページで設定を確認して、 [作成] を選択し、関数アプリをプロビジョニングしてデプロイします。On the Review + create page, review your settings, and then select Create to provision and deploy the function app.

  8. ポータルの右上隅の [通知] アイコンを選択し、"デプロイメントに成功しました" というメッセージが表示されるまで待ちます。Select the Notifications icon in the upper-right corner of the portal and watch for the Deployment succeeded message.

  9. [リソースに移動] を選択して、新しい Function App を確認します。Select Go to resource to view your new function app. また、 [ダッシュボードにピン留めする] を選択することもできます。You can also select Pin to dashboard. ピン留めすると、ダッシュボードからこの関数アプリ リソースに戻るのが容易になります。Pinning makes it easier to return to this function app resource from your dashboard.

    デプロイの通知

Premium プランは、Azure CLI から az functionapp plan create を使用して作成することもできます。You can also create a Premium plan using az functionapp plan create in the Azure CLI. 次の例では、Elastic Premium 1 レベルのプランを作成しています。The following example creates an Elastic Premium 1 tier plan:

az functionapp plan create --resource-group <RESOURCE_GROUP> --name <PLAN_NAME> \
--location <REGION> --sku EP1

この例の <RESOURCE_GROUP><PLAN_NAME> は、それぞれ実際のリソース グループおよびリソース グループ内で一意となる実際のプランの名前に置き換えてください。In this example, replace <RESOURCE_GROUP> with your resource group and <PLAN_NAME> with a name for your plan that is unique in the resource group. サポートされる <REGION> を指定します。Specify a supported <REGION>. Linux をサポートする Premium プランを作成するには、--is-linux オプションを指定します。To create a Premium plan that supports Linux, include the --is-linux option.

プランが作成されたら、az functionapp create を使用して関数アプリを作成できます。With the plan created, you can use az functionapp create to create your function app. ポータルで、プランとアプリの両方が同時に作成されます。In the portal, both the plan and the app are created at the same time. 完全な Azure CLI スクリプトの例については、「Premium プランの関数アプリを作成する」を参照してください。For an example of a complete Azure CLI script, see Create a function app in a Premium plan.

特徴Features

Premium プランにデプロイされた関数アプリでは、次の機能を利用できます。The following features are available to function apps deployed to a Premium plan.

常時使用可能なインスタンスAlways ready instances

従量課金プランで今日はイベントも実行も発生しない場合、ゼロ インスタンスまでアプリをスケールインできます。If no events and executions occur today in the Consumption plan, your app may scale in to zero instances. 新しいイベントが発生したら、新しいインスタンスを専用化して、そこでアプリを実行する必要があります。When new events come in, a new instance needs to be specialized with your app running on it. アプリによっては、新しいインスタンスの専用化に時間がかかる場合があります。Specializing new instances may take some time depending on the app. 最初の呼び出しでこのように待機時間が長くなることを、アプリのコールド スタートと呼ぶことがよくあります。This additional latency on the first call is often called app cold start.

Premium プランでは、指定された数のインスタンスでアプリを常時使用可能にしておくことができます。In the Premium plan, you can have your app always ready on a specified number of instances. 常時使用可能なインスタンスの最大数は 20 です。The maximum number of always ready instances is 20. イベントがアプリのトリガーを開始すると、そのイベントは最初に常時使用可能なインスタンスにルーティングされます。When events begin to trigger the app, they are routed to the always ready instances first. 関数がアクティブになると、追加のインスタンスがバッファーとしてウォーミングされます。As the function becomes active, additional instances will be warmed as a buffer. このバッファーは、スケール中に要求された新しいインスタンスのコールド スタートを防止します。This buffer prevents cold start for new instances required during scale. これらのバッファーに格納されたインスタンスは、事前ウォーミングされたインスタンスと呼ばれます。These buffered instances are called pre-warmed instances. 常時使用可能なインスタンスと事前ウォーミングされたバッファーを組み合わせることで、アプリは効果的にコールド スタートを排除できます。With the combination of the always ready instances and a pre-warmed buffer, your app can effectively eliminate cold start.

注意

すべての Premium プランには、常に 1 つ以上のアクティブな (課金された) インスタンスがあります。Every premium plan will have at least one active (billed) instance at all times.

Azure portal で常時使用可能なインスタンスの数を構成するには、選択した関数アプリから、 [プラットフォーム機能] タブへ移動して、 [スケールアウト] オプションを選択します。You can configure the number of always ready instances in the Azure portal by selected your Function App, going to the Platform Features tab, and selecting the Scale Out options. 関数アプリの編集ウィンドウでは、常時使用可能なインスタンスはそのアプリに固有のものです。In the function app edit window, always ready instances are specific to that app.

エラスティック スケールの設定

アプリの常時使用可能なインスタンスは、Azure CLI を使用して構成することもできます。You can also configure always ready instances for an app with the Azure CLI.

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.minimumElasticInstanceCount=<desired_always_ready_count> --resource-type Microsoft.Web/sites 

事前ウォーミングされたインスタンスPre-warmed instances

事前ウォーミングされたインスタンスは、スケールおよびアクティブ化イベント中にバッファーとしてウォーミングされるインスタンスの数です。Pre-warmed instances are the number of instances warmed as a buffer during scale and activation events. 事前ウォーミングされたインスタンスは、スケールアウトの上限に達するまでバッファーに格納され続けます。Pre-warmed instances continue to buffer until the maximum scale-out limit is reached. 事前ウォーミングされたインスタンスの既定の数は 1 であり、ほとんどのシナリオでは 1 のままにしておく必要があります。The default pre-warmed instance count is 1, and for most scenarios should remain as 1. アプリが長時間のウォームアップ (カスタム コンテナー イメージなど) を行う場合は、このバッファーを増やすことができます。If an app has a long warm up (like a custom container image), you may wish to increase this buffer. 事前ウォーミングされたインスタンスは、すべてのアクティブなインスタンスが十分に利用された後にのみ、アクティブになります。A pre-warmed instance will become active only after all active instances have been sufficiently utilized.

常時使用可能なインスタンスと事前ウォーミングされたインスタンスが連携して動作する例について考えてみましょう。Consider this example of how always ready instances and pre-warmed instances work together. Premium 関数アプリに、5 つの常時使用可能なインスタンスが構成されており、事前ウォーミングされたインスタンスが既定で 1 つあります。A premium function app has five always ready instances configured, and the default of one pre-warmed instance. アプリがアイドル状態であり、トリガーしているイベントがない場合、このアプリは 5 つのインスタンスでプロビジョニングされ、実行されます。When the app is idle and no events are triggering, the app will be provisioned and running on five instances. 現時点で、常時使用可能なインスタンスが使用されておらず、事前ウォーミングされたインスタンスも割り当てられていないため、事前ウォーミングされたインスタンスに対して課金されることはありません。At this time, you will not be billed for a pre-warmed instance as the always ready instances aren't used, and no pre-warmed instance is even allocated.

最初のトリガーが開始されるとすぐに、5 つの常時使用可能なインスタンスがアクティブになり、事前ウォーミングされたインスタンスが割り当てられます。As soon as the first trigger comes in, the five always ready instances become active, and a pre-warmed instance is allocated. アプリは 6 つのプロビジョニングされたインスタンスを使用して実行されています。つまり、5 つの現在アクティブな常時使用可能なインスタンスと、6 番目の事前ウォーミングされた非アクティブなバッファーです。The app is now running with six provisioned instances: the five now-active always ready instances, and the sixth pre-warmed and inactive buffer. 実行率が増加し続けた場合は、最終的に 5 つのアクティブなインスタンスが使用されます。If the rate of executions continues to increase, the five active instances will eventually be utilized. 5 つのインスタンスを超えて拡張することがプラットフォームによって決定された場合は、事前ウォーミングされたインスタンスに拡張されます。When the platform decides to scale beyond five instances, it will scale into the pre-warmed instance. その場合、6 つのアクティブなインスタンスが存在することになり、7 番目のインスタンスがすぐにプロビジョニングされ、事前ウォーミングされたバッファーに格納されます。When that happens, there will now be six active instances, and a seventh instance will instantly be provisioned and fill the pre-warmed buffer. この一連のスケーリングと事前ウォーミングは、アプリの最大インスタンス数に達するまで続行されます。This sequence of scaling and pre-warming will continue until the maximum instance count for the app is reached. 最大値を超えてインスタンスが事前ウォーミングまたはアクティブ化されることはありません。No instances will be pre-warmed or activated beyond the maximum.

アプリの事前ウォーミングされたインスタンスの数は、Azure CLI を使用して変更できます。You can modify the number of pre-warmed instances for an app using the Azure CLI.

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.preWarmedInstanceCount=<desired_prewarmed_count> --resource-type Microsoft.Web/sites 

アプリの最大インスタンス数Maximum instances for an app

プランの最大インスタンス数に加えて、アプリごとの最大数を構成できます。In addition to the plan maximum instance count, you can configure a per-app maximum. アプリの最大数は、アプリのスケール制限を使用して構成できます。The app maximum can be configured using the app scale limit.

プライベート ネットワーク接続Private network connectivity

Premium プランにデプロイされた Azure Functions では、Web アプリ向けの新しい VNet 統合を利用します。Azure Functions deployed to a Premium plan takes advantage of new VNet integration for web apps. 構成すると、アプリを VNet 内のリソースと通信させる、またはサービス エンドポイントを介してセキュリティで保護することができます。When configured, your app can communicate with resources within your VNet or secured via service endpoints. 受信トラフィックを制限するための IP 制限もアプリで利用できます。IP restrictions are also available on the app to restrict incoming traffic.

Premium プランで関数アプリにサブネットを割り当てるときは、個々の潜在的インスタンスのための十分な IP アドレスがあるサブネットが必要です。When assigning a subnet to your function app in a Premium plan, you need a subnet with enough IP addresses for each potential instance. 使用可能なアドレスが 100 以上の IP ブロックが必要です。We require an IP block with at least 100 available addresses.

詳細については、お使いの関数アプリと VNet の統合に関するページを参照してください。For more information, see integrate your function app with a VNet.

高速エラスティック スケールRapid elastic scale

従量課金プランと同じ高速スケーリング ロジックを使用して、追加のコンピューティング インスタンスが自動的にアプリのために追加されます。Additional compute instances are automatically added for your app using the same rapid scaling logic as the Consumption plan. 同じ Azure App Service のアプリは、個々のアプリのニーズに基づき、互いに依存せずにスケーリングします。Apps in the same App Service Plan scale independently from one another based on the needs of an individual app. ただし、同じ Azure App Service の関数アプリでは、可能であれば、コストを下げる目的で VM リソースが共有されます。However, Functions apps in the same App Service Plan share VM resources to help reduce costs, when possible. VM に関連付けられているアプリの数は、各アプリの占有領域と VM のサイズによって変わります。The number of apps associated with a VM depends on the footprint of each app and the size of the VM.

スケーリングのしくみの詳細については、関数のスケールとホスティングに関するページを参照してください。To learn more about how scaling works, see Function scale and hosting.

実行継続時間の延長Longer run duration

Azure Functions の従量課金プランでは、1 回の実行が 10 分までに制限されています。Azure Functions in a Consumption plan are limited to 10 minutes for a single execution. Premium プランでは、実行中の暴走を防ぐために、実行継続時間の既定値が 30 分になっています。In the Premium plan, the run duration defaults to 30 minutes to prevent runaway executions. ただし、host.json 構成を変更して、Premium プランのアプリの継続時間を無制限 (60 分を保証) にすることができます。However, you can modify the host.json configuration to make the duration unbounded for Premium plan apps (guaranteed 60 minutes).

プランと SKU の設定Plan and SKU settings

プランを作成するときは、2 つのプラン サイズ設定があります。インスタンスの最小数 (またはプラン サイズ) と最大バースト制限です。When you create the plan, there are two plan size settings: the minimum number of instances (or plan size) and the maximum burst limit.

常時使用可能なインスタンス数を超えるインスタンスがアプリに必要な場合、インスタンスの数が最大バースト制限に達するまでアプリのスケール アウトを続けることができます。If your app requires instances beyond the always ready instances, it can continue to scale out until the number of instances hits the maximum burst limit. プラン サイズを超えたインスタンスに対する課金は、それらが実行されていて、秒あたりの単位で割り当てられている間のみ発生します。You are billed for instances beyond your plan size only while they are running and allocated to you, on a per-second basis. 定義された最大制限までのアプリのスケールアウトに関してはベスト エフォートでの提供となります。We will make a best effort at scaling your app out to its defined maximum limit.

プラン サイズまたは最大値は Azure portal で構成できます。プランまたはそのプランにデプロイされている関数アプリの [スケール アウト] オプションを選択します ( [プラットフォーム機能] の下にあります)。You can configure the plan size and maximums in the Azure portal by selecting the Scale Out options in the plan or a function app deployed to that plan (under Platform Features).

Azure CLI から最大バースト制限を増やすこともできます。You can also increase the maximum burst limit from the Azure CLI:

az resource update -g <resource_group> -n <premium_plan_name> --set properties.maximumElasticWorkerCount=<desired_max_burst> --resource-type Microsoft.Web/serverfarms 

各プランの最小値は、1 つ以上のインスタンスになります。The minimum for every plan will be at least one instance. 実際のインスタンスの最小数は、プラン内のアプリによって要求された常時使用可能なインスタンス数に基づいて自動構成されます。The actual minimum number of instances will be autoconfigured for you based on the always ready instances requested by apps in the plan. たとえば、アプリ A が 5 つの常時使用可能なインスタンスを要求し、同じプラン内でアプリ B が 2 つの常時使用可能なインスタンスを要求した場合、最小プラン サイズは 5 として計算されます。For example, if app A requests five always ready instances, and app B requests two always ready instances in the same plan, the minimum plan size will be calculated as five. アプリ A は 5 つのすべてで実行され、アプリ B は 2 つでのみ実行されます。App A will be running on all 5, and app B will only be running on 2.

重要

関数が実行されているかどうかにかかわらず、最小インスタンスで割り当てられているインスタンスごとに課金されます。You are charged for each instance allocated in the minimum instance count regardless if functions are executing or not.

ほとんどの場合、この自動計算される最小値で十分のはずです。In most circumstances this autocalculated minimum should be sufficient. ただし、最小値を超えるスケーリングはベスト エフォートで実行されます。However, scaling beyond the minimum occurs at a best effort. 追加のインスタンスを使用できない場合は、まれですが、特定の時間にスケールアウトが遅延する可能性があります。It is possible, though unlikely, that at a specific time scale-out could be delayed if additional instances are unavailable. 自動計算された最小値よりも大きな最小値を設定することにより、スケールアウトの前にインスタンスを予約します。By setting a minimum higher than the autocalculated minimum, you reserve instances in advance of scale-out.

プランの計算された最小値を増やすには、Azure CLI を使用します。Increasing the calculated minimum for a plan can be done using the Azure CLI.

az resource update -g <resource_group> -n <premium_plan_name> --set sku.capacity=<desired_min_instances> --resource-type Microsoft.Web/serverfarms 

利用可能インスタンス SKUAvailable instance SKUs

プランを作成またはスケーリングするときは、3 つのインスタンス サイズから選択できます。When creating or scaling your plan, you can choose between three instance sizes. プロビジョニングされたコアとメモリの合計数に対して、各インスタンスが割り当てられている秒単位で課金されます。You will be billed for the total number of cores and memory provisioned, per second that each instance is allocated to you. アプリは必要に応じて自動的に複数のインスタンスにスケール アウトできます。Your app can automatically scale out to multiple instances as needed.

SKUSKU コアCores メモリMemory ストレージStorage
EP1EP1 11 3.5 GB3.5GB 250 GB250GB
EP2EP2 22 7 GB7GB 250 GB250GB
EP3EP3 44 14 GB14GB 250 GB250GB

メモリ使用率に関する注意点Memory utilization considerations

メモリの多いコンピューターでお使いの関数アプリを実行しても、利用可能なすべてのメモリを使用できるとは限りません。Running on a machine with more memory does not always mean that your function app will use all available memory.

たとえば、JavaScript 関数アプリには、Node.js の既定のメモリ上限の制限があります。For example, a JavaScript function app is constrained by the default memory limit in Node.js. この固定のメモリ制限を増やすには、値に --max-old-space-size=<max memory in MB> を使用して languageWorkers:node:arguments のアプリ設定を追加します。To increase this fixed memory limit, add the app setting languageWorkers:node:arguments with a value of --max-old-space-size=<max memory in MB>.

リージョン最大スケール アウトRegion Max Scale Out

以下は、1 つのプランでサポートされている最大スケールアウト値をリージョンと OS の構成ごとにまとめたものです。Below are the currently supported maximum scale-out values for a single plan in each region and OS configuration. 増加を依頼するには、サポート チケットをご利用ください。To request an increase, please open a support ticket.

Functions のリージョン別アベイラビリティはすべて、Azure.com で確認できます。See the complete regional availability of Functions here: Azure.com

リージョンRegion WindowsWindows LinuxLinux
オーストラリア中部Australia Central 100100 利用不可Not Available
オーストラリア中部 2Australia Central 2 100100 利用不可Not Available
オーストラリア東部Australia East 100100 2020
オーストラリア南東部Australia Southeast 100100 2020
ブラジル南部Brazil South 100100 2020
カナダ中部Canada Central 100100 2020
米国中部Central US 100100 2020
中国東部 2China East 2 100100 2020
中国北部 2China North 2 100100 2020
東アジアEast Asia 100100 2020
米国東部East US 100100 2020
米国東部 2East US 2 100100 2020
フランス中部France Central 100100 2020
ドイツ中西部Germany West Central 100100 利用不可Not Available
東日本Japan East 100100 2020
西日本Japan West 100100 2020
韓国中部Korea Central 100100 2020
韓国南部Korea South 利用不可Not Available 2020
米国中北部North Central US 100100 2020
北ヨーロッパNorth Europe 100100 2020
ノルウェー東部Norway East 100100 2020
米国中南部South Central US 100100 2020
インド南部South India 100100 利用不可Not Available
東南アジアSoutheast Asia 100100 2020
スイス北部Switzerland North 100100 利用不可Not Available
スイス西部Switzerland West 100100 利用不可Not Available
英国南部UK South 100100 2020
英国西部UK West 100100 2020
USGov アリゾナUSGov Arizona 100100 2020
USGov バージニア州USGov Virginia 100100 2020
USNat 東部USNat East 100100 利用不可Not Available
USNat 西部USNat West 100100 利用不可Not Available
西ヨーロッパWest Europe 100100 2020
インド西部West India 100100 2020
米国中西部West Central US 100100 2020
米国西部West US 100100 2020
米国西部 2West US 2 100100 2020

次のステップNext steps