Azure Functions(サーバーレス)
Azure Functions は、
イベント発生時に必要な分だけコードを実行できる “サーバーレス” コンピューティングサービス です。
サーバー管理は完全に Azure 側に任せられ、
開発者は 実行したい処理(関数)だけを書く というシンプルなモデルです。
Azure Functions の特徴
● サーバー管理が不要
- OS パッチ
- サーバー構成
- スケール管理
→ すべて Azure が自動で実施。
運用の手間が最小限になります。
● イベント駆動で動作する
Functions は、何らかの「トリガー」で呼び出されます。
代表的なトリガー:
| トリガー | 内容 |
|---|---|
| HTTP トリガー | API として呼び出し可能 |
| Timer トリガー | 定期実行(毎時 / 毎日など) |
| Blob Storage トリガー | Blob が追加/変更された時 |
| Queue Storage トリガー | キューにメッセージが届いた時 |
| Event Hub / Service Bus トリガー | イベント処理 |
Functions = トリガー × 実行処理 の組み合わせで動作します。
● 自動スケール(高い伸縮性)
Functions はアクセス数に応じて自動でインスタンス増減します。
- リクエストが多い → 自動拡張
- リクエストが少ない → インスタンス削減
- アイドル時 → ほぼ課金なし(後述)
「必要なときだけ実行される」のが大きな特徴です。
● 従量課金で低コスト
Functions の課金モデルは「実行時間 × 実行回数」です。
- 実行しなければ料金はほぼ 0 円
- 実行時間が短いほど安い
- 月間100万回まで無料枠がある(消費による)
“安く動くバッチ・API” として非常に人気です。
● 多くの言語に対応
Azure Functions は以下の言語で作成可能です。
- C#
- JavaScript / TypeScript
- Python
- Java
- PowerShell
- Go(追加対応)
開発者のスタイルに合わせられます。
Functions の代表的な用途
- イベント処理(ファイルアップロード・ログ処理など)
- バッチ処理(時間指定で実行)
- 軽量 API の構築
- 他システムからの webhook 受信
- Storage やデータベースの補助処理
- メール送信、通知処理、自動化ワークフロー
「バックグラウンドで自動的に動かしたい処理」にとても向いています。
Functions の実行モデル(Consumption / Premium / Dedicated)
● Consumption(消費ベース)
- 最も安い課金モデル
- 完全サーバーレス
- 実行した分だけ課金
- アイドル時は 0 円
→ 基本はこれで十分(AZ-900 で最重要)
● Premium プラン
- コールドスタートなし
- より高負荷にも対応
- VNet 統合が可能
大規模処理や常時応答が必要な場合に採用。
● Dedicated(App Service プラン)
- App Service プラン上で動かす
- 常時インスタンスが存在
既存アプリと統合したいケース向け。
Azure Functions と App Service / VM の違い
| 項目 | Functions | App Service | VM |
|---|---|---|---|
| 管理範囲 | コードのみ | アプリ | OS含め全部 |
| 課金 | 実行時間ベース | プラン課金 | 実行時間課金 |
| スケール | 自動で無制限 | 自動または手動 | 手動中心 |
| 用途 | バックエンド処理・API | Webアプリ | カスタム構成 |
ポイント:
「軽い処理」「イベント駆動」「低コスト」は Functions が最適
マイクロサービス構成と相性が良い
Functions は小さな処理を分離できるため、
マイクロサービスアーキテクチャとの親和性が高いです。
AZ-900で理解すべきポイント
- Azure Functions は サーバーレス の代表サービス
- イベント駆動 + 自動スケール
- 課金は消費ベース(実行回数 × 実行時間)
- トリガーの種類が豊富
- バックグラウンド処理や軽量 API に最適
- App Service や VM との管理範囲の違いを理解する