COLUMN

Azure Functionsとは?特徴・メリットや料金プラン、ユースケースを解説

Azure Functionsとは、サーバーを意識することなくマイクロサービスアーキテクチャを実装できるサービスです。

コーディングだけに集中できるAzure Functionsを使用してみたいけれど、どのような特徴やメリットがあるか分からない方もいるでしょう。

そこで本記事ではAzure Functionsの概要や特徴・メリットなどを解説します。ユースケースも合わせて紹介していますので、自社で理想とする活用と照らし合わせてみてください。

Azure Functionsの導入を検討されている方、Azureへの移行を検討しているが導入にあたって不安がある方はお気軽にお問い合わせください。

1.Azure Functionsとは?特徴とメリット

Azure Functionsは、Azure上でコード(関数)やサーバーなしに(サーバーレスで)実行できるサービスです。

利用者はサーバーを意識する必要がなく、アプリケーションロジックの開発に集中できるのがメリットでしょう。Azure Functionsを利用することによって、WebAPIやWebサービスを効率的に作ることができます。

この章ではAzure Functionsの主な特徴や機能を解説します。

1-1.サーバーレスアーキテクチャ

「サーバーレス」といっても実際には「サーバーが存在しない」「サーバーが要らない」わけではありません。サーバーの存在を意識することなく利用することができる、ということです。

サーバーレスアーキテクチャは、クラウドサービスが目指している近い将来のあるべき姿の一部がいち早く具現化されているサービスと言えます。

Azure Functionsを利用すると、フルマネージドサービスとしてサーバーなどの開発環境が提供されます。そのため、アプリケーションに大量のリクエストが来た場合への対応策の一つとしてサーバー台数を増やすことなどを気にする必要はなくAzureが自動的に対応してくれます。また、サーバーのハード障害についても心配いりません。自動的に切り替えてくれます。

ユーザーは、サーバー構築や障害への対応を気にすることなく、ただアプリケーションのロジックを書くことに集中できるようになります。

1-2.マイクロサービスアーキテクチャ

Azure Functionsは、マイクロサービスアーキテクチャを実装するための機能が備わっています。

マイクロサービスアーキテクチャとは、ソフトウェアの開発手法のひとつです。一般的に「マイクロサービス」と略される場合もあります。

マイクロサービスアーキテクチャは、個別で開発した小さなサービスや機能をコンポーネント単位で組み合わせ、ひとつのアプリケーションとして構築する手法です。

機能がひとつひとつ独立しているためバグ修正なども行いやすく、可用性やスケーラビリティなのがメリットと言えます。

1-3.自動スケーリング

Azure Functionsでは自動スケーリング機能があります。

自動スケーリングとは、リソースを自動で認識し処理能力の調節を行ってくれる機能のことです。

たとえば自動スケーリングがついていない場合、リソースが足らない状態で稼働し続けるとサーバーがダウンする可能性があります。一方自動スケーリングを利用すれば、リソースが足らないときは自動でスケールアップを、リソースが空きすぎているときは自動でスケールダウンをしてくれるのです。

結果、サーバーダウンをすることもなくコストも常に最適な状態を保てるといったメリットがあります。

1-4.ステートフルなプログラムを実行可能

Azure Functionsでは、ステートフルなプログラムを実行可能です。ステートフルとは、以前のセッション情報を保持していることを指します。

通常サーバーレスの場合、セッション情報を保持するのが難しいため、ステートレスといわれるセッション情報を保持しない処理がされています。そのため複雑なプログラムによりコードが煩雑になるといったデメリットがあるのです。

一方Azure Functionsの場合、拡張機能のDurable Functionsを利用することでステートフルなプログラムを実行できます。ステートフルなプログラムを実行できることにより、複雑なプログラムなどを必要とせずにサーバーレスを実現できます。

1-5.トリガー・バインドで他サービスとシームレスに接続可能

Azure Functionsでは、トリガー・バインドで他のサービスとシームレスに接続が可能です。

通常、他のサービスと接続する場合はハードコーディングが必要ですが、ハード・バインドを使用することでハードコーディングが不要となります。具体的には以下の流れでシームレスに接続できます。

  • トリガー:アプリケーションで関数を呼び出し起動させる
  • バインド:トリガーで呼び出された関数を他のサービスに結びつける

上記のようにトリガーとバインドを利用すれば、ハードコーディングを必要とせず他サービスとシームレスに接続ができるのです。

1-5-1.トリガーとして利用できるバインディングとしては次のものがあります
  • HTTP Trigger : HTTP要求をトリガーにする
  • Timer : 時刻を指定してコードを起動します。CRON相当のスケジュール管理ができる
  • GitHub webhook : GitHubリポジトリで発生するイベントをトリガーにする
  • 汎用Webhook : 外部Webサービスのwebhookをトリガーにする
  • Cosmos DB : Azure Cosmos DBへのデータ追加及び更新されたことをトリガーにする
  • Blob Storage : Azure Blob Storageがコンテナーに追加されたことをトリガーにする
  • Queue Storage :新しいAzure Queue storageメッセージが作成されたことをトリガーにする
  • Event Hubs : Azure Event Hubsに送信されたイベントをトリガーにする。IoTで使いやすいシナリオ
  • Service Bus : Service Busキューまたはトピックメッセージをトリガーにして関数を実行する
1-5-2.Outputに利用できるバインディングには上記に加え、以下があります。
  • Microsoft Excelテーブル
  • Microsoft Graph OneDriveファイル
  • Microsoft Graph Outlookメール
  • Mobile Apps
  • Send Grid
  • Service Bus
  • SignalR
  • Table Storage
  • Twilio

1-6.開発言語

Azure Functionsでは以下の開発言語を自由に選んで関数を記述できます。

  • C#
  • Java
  • JavaScript
  • Python
  • PowerShell
  • TypeScript

バージョンによって使用可能な開発言語が異なるため注意しましょう。

Azure Functionsの導入を検討されている方、Azureへの移行を検討しているが導入にあたって不安がある方はお気軽にお問い合わせください。

2.Azure Functionsの料金プラン

Azure Functionsには、次の3種類の価格プランがあり、利用するニーズに最適なプランを選択します。選択するプランにより、次のような動作に影響があります。

  • 関数アプリをスケールする方法
  • 各関数アプリをインスタンスに利用できるリソース
  • Azure Virtual Network接続などの高度な機能のサポート

2-1.従量課金プラン

リソース(サーバー等)の管理について考慮する必要がなく、コードを実行した時間と回数に応じた費用のみを支払います。仮想マシンを利用する時のようにアイドル状態の仮想マシンの費用や、予約容量の事前の費用を払う必要がありません。

サブスクリプションあたり下記の無料提供が設けられています。

無料範囲と従量課金の価格については、下表を参考にしてください。

ひと月あたりの無料範囲 価格
実行時間 400,000 GB 秒 $0.000016/GB秒
総実行回数 100万実行回数 100万実行回数あたり$0.20

※2023年9月現在の料金です。

2-2.Premiumプラン

常にオンラインの状態で即時に応答する準備が整った、事前にウォーミングされたインスタンスをいくつか自分で指定します。関数が実行されると、追加で必要となるコンピューティングリソースがAzureから提供されます。

具体的には、インスタンスに割り当てられたCPU使用時間とメモリ使用時間によって価格が変動します。従量課金のような総実行回数の課金はありません。

Premiumプランの価格は以下のとおりです。

vCPU使用時間 $0.196vCPU/時間
メモリ使用時間 $0.014GB/時間

※2023年9月現在の料金です。

2-3.App Serviceプラン

Azure App Serviceプランには、free・Shared・Basic・Standard・Premium・Isolatedの6種類があります。ただしAzure Functionsに使用できるのは、Basic・Standard・Premium・Isolatedの4種類です。

プランによってサポート対象が異なり、他のサービスと同様に関数アプリに対して支払います。

Azure App Serviceを他のアプリケーションに使用している場合、追加コストを負担することなく同じプランで関数を実行できます。すでに他のApp Serviceインスタンスを利用していたり、使用率の低いVMがあったりする場合におすすめです。

Azure App Serviceを利用する場合は、稼働させたいアプリケーションの特徴にあわせて最適なプランを選択して、管理負荷とコストを最適化しましょう。

※最新の料金につきましては、以下の公式サイトをご覧ください。

価格 – Functions | Microsoft Azure

App Service の料金 | Microsoft Azure

Azure Functionsの導入を検討されている方、Azureへの移行を検討しているが導入にあたって不安がある方はお気軽にお問い合わせください。

3.Azure functionsのユースケース

本章では、Azure Functionsのユースケースを3つ解説します。ユースケースを理解し、自社の活用方法と照らし合わせ、Azure Functionsの使い方をイメージしてみましょう。

3-1.データのリアルタイム反映

Azure Functionsを活用すれば、データをリアルタイムに反映させることが可能です。

たとえばAzure SignalR Serviceと連携をすれば、すぐに返答してくれるチャットアプリを作成したりコンテンツ更新を自動で反映したりできます。

そのほかIoTデータをAzure Functionsに処理させれば、リアルタイムでデータベースに反映させたりストレージに転送したりもできます。

3-2.Web APIのビルド・デプロイ

Azure Functionsでは、組み込みのHTTPトリガーがありWeb APIのビルド・デプロイが可能です。

HTTP要求で関数を呼び出せて、プログラミング言語も多数対応しているため使いやすい言語でWeb APIの作成ができます。

3-3.ルーティン業務の自動化

Azure FunctionsにはTimerというトリガーがあり、活用することで決まった時刻に処理を走らせることができます。

たとえば決まった時間に、定期バックアップやメンテナンスを自動で実行できるといった使い方ができます。このように定期的に行わなければならない作業を自動化することで、本来の業務に集中して取り組むことが可能です。

Azure Functionsの導入を検討されている方、Azureへの移行を検討しているが導入にあたって不安がある方はお気軽にお問い合わせください。

4.Azure Functionsのローカル環境でのコーディング・テスト

Azure Functionsの開発やテストは、Azure Portalからも行うことができますが、多くの開発者は、ローカルコンピューター上での開発を好むようです。Azure Functionsでは、ローカルコンピューター上でお気に入りのコードエディターや開発ルーツを使用して、関数を作成し、テストすることができます。

ローカル関数はライブAzureサービスに接続できるため、完全なFunctionsランタイムを使用してローカルコンピューター上で関数をデバッグすることができます。

4-1.ローカル開発環境で利用するツールと注意点

ローカルでの環境は、使用する言語とツールによっても異なりますが、基本的には次のツールを利用することが可能です。

  • Visual Studio Code
  • コマンドプロンプトまたはターミナル
  • Visual Studio 2019
  • Maven

ローカルコンピューター上で開発するときの最大の注意事項は、ローカル開発とポータル開発を混在させてはいけない、ということです。ローカルプロジェクトから関数を発行するときは、ポータルではプロジェクトコードを管理して変更しないようにしないといけません。

Azure Functionsの導入を検討されている方、Azureへの移行を検討しているが導入にあたって不安がある方はお気軽にお問い合わせください。

5.Azure Functionsを活用ならNTT東日本にお任せください

Azure Functionsの活用を検討中の方は、NTT東日本にご相談ください。 Azureの有資格者であるプロが担当となり、導入前の相談から構築・導入・運用・保守までワンストップで支援をします。

Azure Functionsの活用をしてみたいけれど、最大限に活用する方法が分からない方や他のサービスとの連携で悩まれている方などでも、中立的な立場で提案いたします。

150社以上の実績をもつ、NTT東日本のクラウド導入・運用サービスにぜひご相談ください。

NTT東日本クラウド導入・運用サービス

6.まとめ

Azure Functionsはサーバー運用を気にすることなくマイクロサービスアーキテクチャを実装できるサービスです。

サーバーが実在しないわけではなく、自動スケーリングにて最適な処理能力に調節してくれます。豊富なトリガーとバインドが用意されているため、他のサービスとシームレスな接続が可能になるだけでなく、ルーティング業務に役立てることも可能です。

アプリケーションを円滑に構築したい方や、業務の効率化を検討している方はぜひAzure Functionsの活用を検討しましょう。

導入方法や活用方法で疑問やお悩みがある方は、ぜひNTT東日本のクラウド導入・運用サービスをご検討ください。

NTT東日本クラウド導入・運用サービス

ネットワークからクラウドまでトータルサポート!!
NTT東日本のクラウド導入・運用サービスを確認してください!!

ページ上部へ戻る

無料ダウンロード

自社のクラウド導入に必要な知識、ポイントを
このに総まとめ!

あなたはクラウド化の
何の情報を知りたいですか?

  • そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
  • 【AWS・Azure・Google Cloud】
    どれが自社に最もマッチするの?
  • 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
  • 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?

初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。

NTT東日本では
そんなあなたにクラウド導入に必要な情報を

1冊の冊子にまとめました!

クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・

  • システムインフラの維持にかかるトータルコストがあまり変わらない。。
  • 情シス担当者の負担が減らない。。
  • セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
  • そもそも”クラウド化”とは?
    その本質的なメリット・デメリット
  • 自社にとって
    最適なクラウド環境構築のポイント
  • コストを抑えるため
    具体的なコツ
  • 既存環境からスムーズにクラウド化
    実現するためのロードマップ

など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。

クラウドのわからない・
面倒でお困りのあなたへ

クラウドのご相談できます!
無料オンライン相談窓口

NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!

NTT東日本が選ばれる5つの理由

  • クラウド導入を
    0からワンストップでサポート可能!
  • 全体最適におけるコスト効率・業務効率の改善
    中立的にご提案
  • クラウド環境に問題がないか、
    第3者目線でチェック
    してもらいたい
  • 安心の24時間・365日の対応・保守
  • NTT東日本が保有する豊富なサービスの組み合わせで
    ”課題解決”と”コスト軽減”を両立

特に以下に当てはまる方はお気軽に
ご相談ください。

  • さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
  • オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
  • オンプレミスとクラウド移行した際のコスト比較を行いたい
  • AWSとAzure、どちらのクラウドが自社に適切かわからない
  • クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
  • クラウド利用中、ネットワークの速度が遅くて業務に支障がでている

クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。