MENU
Archives

Azure Functionsとは?できることや導入メリットについて

「”サーバーレスサービス”名前だけは聞いたことあるけど、具体的に何ができるのか分からない/どんな特徴があるのか分からない」

といった方も多いのではないでしょうか。

また、導入中/導入検討中の情報システム部門の方で、

「Azure Functions、AWS lambda、GCP Cloud Functionsとあるけど、どれが良いの?」

「データベース(DB)へのデータ登録などに利用しているけど、コストの見直しがしたい」

といった方も多いことと思います。

本記事では、Microsoft AzureやAWS、GCPを活用し、BIツールでのデータの可視化や分析、業務効率化を行い、その他データ活用に関する多くの知見のある株式会社KUIXがこれまでの経験をもとにMicrosoft Azureのサービスの1つであるAzure Functionsにフォーカスし、Azure Functionsの概要やメリット、料金体系を解説いたします。

目次

Azure Functionsとは

Azure Functionsは、Microsoft社が提供するクラウドプラットフォームサービスであるMicrosoft Azureのサービスの1つで、サーバーレスアーキテクチャを実装するためのサービスです。Azure Functionsを使用するとAzure上でマイクロサービスアーキテクチャを実現することができます。

難しい説明となりましたが、簡単にいうと、サーバーを必要とせず、WebAPIやWebサービスのプログラム実行ができるサービスとなります。

通常、プログラムを実行するための環境として、サーバーの構築やストレージなどの割り当て、プログラム実行ソフト(ランタイム)のインストールが必要ですが、Azure側が用意した環境を利用できるため、ユーザーはプログラム開発のみに注力し、プログラム実行することができます。

また、プログラムの実行タイミングも、決まった時間やファイル更新時など任意のタイミングで実行することができます。

※Microsoft Azureについては、下記の記事も合わせてご覧ください。

サーバーレスアーキテクチャ とは

サーバーに依存することなくプログラムを実行するための技術は、サーバーレスと呼ばれ、このサーバーレスという考え方を用いて、システム設計および構築することをサーバーレスアーキテクチャと呼びます。

サーバーレスにより、サーバーの調達(購入)や構築、保守が不要となり、さらに開発担当者は、アプリケーション開発に注力できるようになります。

また、サーバーが稼働していないと、Webアプリケーションなどのシステムも起動・稼働することができませんが、24時間365日稼働している必要はなく、処理が実行される時だけサーバーも稼働していれば良いため、サーバーレスにより低コストで効率よくサーバーを運用することができます。

代表的なサービスとして、Azure Functions、AWS lambda、GCP Cloud Functionsがあります。

マイクロサービスアーキテクチャ とは

システムが提供するサービスを小さな独立したコンポーネント(役割の単位)をマイクロサービスと呼び、このコンポーネントを組み合わせてシステム設計および構築することをマイクロサービスアーキテクチャと呼んでいます。

システムが提供するサービスをコンポーネントに分けることで、コンポーネントとコンポーネントの関係をシンプルにし、マイクロサービス単位で開発、管理するための開発手法です。そのため、他のコンポーネントに依存せず、新規開発や改修を進めることができます。

Azure Functionsを実行タイミング(トリガー)と実行結果(バインド)

Azure Functionsを実行するタイミングを”トリガー”、プログラムを実行して得られた実行結果を”バインド”と呼びます。

なお、Azure Functionsでプログラムを実行し、作成したExcelファイル(バインド)をトリガーとして、別の処理を実行するといったバインドをトリガーとして設定することもできます。

ここでは、代表的なトリガーとバインドは以下のようなものがあります。

※トリガーとバインドの詳細は、Microsoft公式ページを参照ください。

Azure Functions でのトリガーとバインドの概念(https://learn.microsoft.com/ja-jp/azure/azure-functions/functions-triggers-bindings?tabs=csharp

〇代表的なトリガー

 ・HTTP:HTTPリクエスト

 ・Timer:時刻を指定

 ・Blob Storage(Azureのストレージサービス):ファイルの追加

〇代表的なバインド

 ・Microsoft Excelテーブル

 ・Microsoft Outlookメール

 ・Microsoft OneDrive ファイル

Azure Functionsで使用できるプログラミング言語

Azure Functionsでは、C#、Java、JavaScript、Python、PowerShell、F#、TypeScriptがサポートされています。

※使用できるプログラミング言語の詳細は、Microsoft公式ページを参照ください。

Azure Functions でサポートされている言語(https://learn.microsoft.com/ja-jp/azure/azure-functions/supported-languages#languages-by-runtime-version)

Azure Functionsのメリット

サーバーレスである

1つ目は、前述の通り、Azure Functionsは、サーバーレスなプログラミング実行環境であるため、プログラムを実行するための環境として、サーバーの構築やストレージなどの割り当て、プログラム実行ソフト(ランタイム)のインストールは必要なく、ユーザーは、プログラム開発のみに注力し、プログラム実行することができます。

また、プログラムの実行タイミングも、決まった時間やファイル更新時など任意のタイミングで実行することができ、自動処理することができます。

自動スケーリング

2つ目は、Azure Functionsは、リソースのスペックを自動でスケーリングできることです。

スケーリングとは、処理能力の調節で、大量のデータを処理する場合などに自動でリソースのスペックをアップしてくれます。

なお、自動スケーリングを行わない設定にすることもでき、利用状況を確認し、都度状況に応じて、スケーリングを行うこともできます。

そのため、自動スケーリングにより、急なスペックアップにも備えることができ、コストの最適化を行うことができます。

ステートフルなプログラム実行

3つ目は、Azure functionsは、ステートフルなプログラム実行ができることです。

拡張機能であるDurable Functionsを用いることで、ステートフルなプログラム実行を実現しています。

ステートフルなプログラム実行ができることによって、複雑なプログラムを必要とせず、複数のプログラム処理を連携させるステートフルな処理の実行ができるようになっています。

コスト最適化

最後のメリットは、コスト最適化ができることです。

Azure functionsはサーバーレスのため、サーバー調達や保守、ストレージ料金は発生せず、プログラム実行のみが課金されます。

詳細は後述しますが、Azure functionsの従量課金プランは、実行時間*1や実行回数*2によって料金が発生するプランです。

*1 実行時間:トリガーを検知してから、プログラム実行が完了するまでの時間

*2 実行回数:トリガーを検知した回数

Azure Functionsの料金体系(プラン)

Azure Functionsの料金体系(プラン)は、以下の3種類のプランがあります。

実行プログラムの内容にもよりますが、単純に料金比較すると「Premiumプラン > App Serviceプラン > 従量課金プラン」の順になります。

・従量課金プラン:実行時間と実行回数で課金

・Premiumプラン:vCPUとメモリの使用時間で課金

・App Serviceプラン:選択した仮想マシンのスペックで課金(時間単位の従量課金)

※従量課金プランとPremiumプランの詳細は、Microsoft公式ページを参照ください。

Azure Functions の価格(https://azure.microsoft.com/ja-jp/pricing/details/functions/)

※App Serviceプランの詳細は、Microsoft公式ページを参照ください。

App Service の価格(https://azure.microsoft.com/ja-jp/pricing/details/app-service/windows/)

従量課金プラン

従量課金プランは、プログラムの実行時間と実行回数に応じて料金が発生するプランです。

サーバーレスのため、サーバー調達や保守、ストレージ料金は発生せず、プログラム実行のみが課金されます。

なお、従量課金プランには、以下の特徴があります。

・タイムアウト時間が短い。(プログラム実行タイムアウト最長10分)

・コールドスタートとなる場合がある。(起動時に時間がかかる)

また、従量課金プランは、以下の毎月一定の無料枠が用意されています。無料枠を上回った分が課金されます。

・実行時間:400,000GB 秒

・総実行回数:100万実行回数

Premiumプラン

Premiumプランは、従量課金プランよりもパフォーマンスが向上しているプランで、タイムアウト時間やコールドスタートが解消されています。

ただし、Premiumプラン利用時は、事前にAzure Virtual Machines(仮想マシン)を1台以上割り当てる必要があります。

また、Premiumプランは、割り当てたAzure Virtual Machines(仮想マシン)のvCPUとメモリに応じて料金が発生し、3つのプランから成り立っており、

節約プランは、長期で利用を想定した割引プランです。

 ・従量課金制

 ・1年節約プラン

 ・3年節約プラン

※Azure Virtual Machines(仮想マシン)については、下記の記事も合わせてご覧ください。

App Serviceプラン

App Serviceプランは、Azure functionsとAzure App Serviceと連携利用するプランで、料金はApp Serviceの料金に含められます。

なお、App Serviceプランは、Premiumプランと同様に、事前にAzure Virtual Machines(仮想マシン)を割り当てる必要があるため、タイムアウト時間やコールドスタートの心配も必要ありません。

まとめ

実機サーバーでのバッチ処理などを運用中の情報システム担当者の方で、

「サーバーのランニングコストを最適化したい」

「データ処理など業務自動化したい」

といった方は、Azure Functionsをはじめとするサーバーレスサービスの導入を検討してはいかがでしょうか。

株式会社KUIXではただ導入・開発するだけでなく、導入後の利活用を実現することに着眼した、Azure・GCP・AWS、データレイク・DWH・データマート、BIツールの選定・導入からレポート作成、運用、啓蒙・展開までトータルのコンサルテーションなどを行っています。お困りの方は、ぜひお気軽にご連絡ください!お問い合わせはこちらから

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次