Azure Functionsでできること5つ|料金プラン3種類についても紹介

Azure Functionsでできること5つ|料金プラン3種類についても紹介のアイキャッチイメージ

Azure Functionsはどんなサービス?

「Azure Functions(アジュール ファンクションズ)」は、Microsoftが提供するクラウドサービスのひとつです。

Azure Functionsを使用すると、サーバーの構築や保守を必要とすることなく、プログラムコードを実行できます。

この記事では、Azure Functionsのサービス内容や料金プランなどを紹介します。(料金プランなどについては2020年10月時点のものになります)

サーバーレスアプリケーションが開発可能

「サーバーレスアプリケーション」とは、サーバー管理を必要としないアプリケーションソフトウェアのことです。Azure Functionsはサーバーレスアプリケーションを構成するシステムのひとつです。

厳密にいうと、Azure Functionsは「サーバーレス コンピューティング」のオプションのひとつであり、アプリケーションの構築を迅速化できます。

Azure Functionsの機能4つ

Azure Functionsがサーバーレスといっても「サーバーがない」のではなく、「自分でサーバーを管理する必要がない」ことを意味しています。

サーバーレスコンピューティングでは、ロジックだけをアップロードしておけば、入出力などの要求が発生した時点で処理を実行するイベント駆動で要求が実行されます。

そんなAzure Functionsの具体的な機能を見ていきましょう。

Azure Functionsの機能1:トリガー・バインド

「トリガー」とはきっかけのことで、プログラムコード(関数)は特殊なイベントをトリガーとして実行されます。

一方、バインドとは機能やデータ、プロトコルを関連付けたり割り当てることです。

Azure Functionsでは、このトリガーとバインドを組み合わせて駆使することによって、他のサービスを統合するためのコードの記述が不要となるため、効率化できます。

Azure Functionsの機能2:スケール

「スケール」とは情報処理能力の大きさのことで、処理能力を高めるために単体性能を向上させることを「スケールアップ」または「スケールイン」と呼びます。

一般的にクラウドにおいてはプロバイダーから提供されるリソースのスケールを拡張することができ、APIを利用してサーバー負荷状況に応じて自動的にスケールアップできるため効率的です。

リソースのスケール変更については後述します。

Azure Functionsの機能3:サーバーレスアーキテクチャ

「サーバーレスアーキテクチャ」とはサーバー管理の必要がないシステム構造のことです。

Azure Functionsの利用により、使用しているシステムは「サーバーレスアーキテクチャ」となり、システムの性能や構築しているアプリケーションの種類にかかわらず、サーバーレスの恩恵を享受できます。

例えば、インフラ関連要件に費やす時間とリソースを最小限に抑え、エンジニアはプログラミングに専念することができます。

Azure Functionsの機能4:マイクロサービス

マイクロサービスとは、独立した複数の小さいサービスを相互にやり取りさせて構成するソフトウェア開発技法の一つで、各サービスが高度に分離された状態で集まり、それぞれ別個に構築や検証、展開、監視できます。

Azure Functionsはマイクロサービスへのアプローチに適したソリューションであり、シンプルな関数で効率よくアプリケーション開発を省力化します。

Azure Functionsでできること5つ

Azure Functionsのプログラミングコンセプトはとてもシンプルですが、一括データ処理やシステムの統合、IoTの操作、マイクロサービスの構築などに適した、優秀なクラウドソリューションです。

Azure Functionsは多機能であり、しかも多くのテンプレートが用意されています。そんなAzure Functionsのできることを見ていきましょう。

できること1:さまざまなプログラミング用語に対応

Azure Functionsは多くのプログラミング言語に対応しています。

具体的には、C#、Java、JavaScript、Python、PowerShell、TypeScriptのいずれかの言語を選択して関数を記述し、アプリケーションの構築や展開、修正などを進めていきます。

サポートされている言語はバージョンによって異なり、サポートされていない言語を使用して関数を作成することも可能です。

できること2:自動のスケーリングが可能

「スケーリング」とは情報処理能力を拡張・減縮する機能のことで、Azure Functionsも他のクラウドと同様、要求される負荷量に合わせてリソースのスケールを変更する自動スケーリング機能があります。

そのため、無駄のないリソースの最適化を行ってコストダウンにつなげます。

なお、スケーリングにはスケールコントローラーが使われ、イベントレートを監視し、スケールアウトとスケールインの実行を判断します。

できること3:ログデータの収集

「ログデータ」とは生じたできごとを一定の形式で時系列に記録・蓄積したデータです。機器やシステム、ソフトウェアにおける起動や停止、設定変更、エラー発生、外部通信などが記録されます。

Azure Functionsではログデータを収集・出力が可能で、稼働状況の確認やトラブルの原因調査などに活用できます。

ログデータを出力するには、関数アプリを作成して指定したトリガーで実行するとポータル内に出力されます。

できること4:グラフでパフォーマンスの監視が可能

Azure Functionsを導入すれば、Azure Application Insightsを使ってアプリケーションのパフォーマンスを視認性の高いグラフで監視できます。

これにより、関数の動作を監視し、CPUの稼働率が急増したりアプリケーションの動作が遅くなった際などの異常時に、迅速な対応が可能になります。

できること5:プログラミング実行の時間設定ができる

Azure Functionsでは、実行する関数を作成して、定義したスケジュールに基づいてプログラミングが実行する時間を設定できるタイマー機能があります。

これにより、リアルタイムに実行する必要がなく、仕事の効率化が図れます。

プログラミング実行の時間を設定するには、タイマーによってトリガーされる関数を作成し、それをテストして、タイマースケジュールを更新する、という手順で行います。

Azure Functionsの利用プラン3種類

クラウドソリューションであるAzure Functionsは必要なコンピューティングリソースが用意されており、オンプレミス環境(自社施設内に導入したインフラ機器を設置して運用する環境)に比べて費用が軽減できます。

そんなAzure Functionsの料金形態は3種類あります。それぞれ機能の種類や制限などが異なるため、ニーズに合わせて最適なプランを選択しましょう。

利用プラン1:従量課金プラン

Azure Functionsの「従量課金プラン」は、リソースの使用量とコードを実行した実行回数によって費用が決まります。

前者は1GB秒につき0.001792円、後者は100万実行回数につき22.4円が課金されます。なお、1カ月に40万GBのリソース消費と100万実行回数分までが無料提供されます。

利用プラン2:Premiumプラン

Azure Functionsの「Premium」プランは、関数が使用するvCPU使用時間とメモリ使用時間によって費用が決まります。

常時オンライン状態の事前ウォーミングされたオブジェクトを自分で指定し、関数の実行によって追加でリソースが提供されます。追加分が支払いの対象となり、vCPU使用時間が1時間につき18.592円、メモリ使用時間が1GB時間につき 1.3216円が課金されます。

利用プラン3:App Serviceプラン

1秒単位で課金される「Azure App Serviceプラン」は、Free、Shared、Basic、Standard、Premium、Isolatedに分かれ、Functionsを利用する場合はBasic以上を選びます。

なお、もっとも安いプラン(Basic B1)で8.4円/時間、もっとも高いプラン(Isolated I3)で167.104/時間です。

Azure Functionsについて学んで上手に活用しよう

Azure Functionsの導入によって、サーバーの構築や保守が不要になるため、エンジニアがプログラミングに専念でき、効率的にプログラムやアプリケーションの開発、システムの統合などの処理をすることができます。

オンプレミス環境とは異なり、合理的で多機能なAzure Functionsを上手に活用して、業務の効率を上げましょう。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。