1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

非公開APIってどう作るの?-Azure Functions-

1
Posted at

1. 非公開APIとは?

アプリや社内システムからだけ呼ばれるAPIのこと。
不特定のインターネットへは公開しません。Azure内の閉域網で通信を作ることが可能なため、データ漏洩などのリスクなく安全性が確保できます。
Azure Functions でAPI構築することでAzure内リソース横断やセキュリティを担保することができます。

2. なぜ Azure Functions?

  • サーバーレスで小回りが利く:HTTP・Blob・TimerなどのイベントでAPI処理を利用するのに最適。
  • ネットワークを閉じられる設計Private EndpointInbound を閉域VNet IntegrationOutbound を社内に限定など設計次第で柔軟に作成可能。

3. 全体アーキテクチャ(図解)

Azure Functions をバックエンドとして採用する最大のメリットの一つが、
KeyValue(Key Vault)や DB と“シームレスに連携できる設計”が標準で揃っていることです。

特に、今回の構成図のように Functions が Azure VNet 内(Azure_Vnet2)で動作する場合、通信の全てを閉域網(Private Link / VNet Integration)で完結できるため、API から重要データへアクセスする際のセキュリティとパフォーマンスが担保されます。

これにより:

セキュアで漏れにくいアーキテクチャを標準機能だけで構築可能
ローテーションの自動化・更新容易性も高い
複数の Functions や APIM で同じ仕組みを共通化できる
図解.jpg

4. DB(例:PostgreSQL)との連携

Azure FunctionsはVNet 内に存在するDB(PostgreSQL / SQL / MySQL など)へのアクセスを 閉域網で安全に行うことができます。

具体的には:

  • Functions → DB 通信は VNet 経由のプライベートルート
  • DB には Public Access 無効 / Private Access のみで構築可能 API が DB を直接叩く構成より、セキュリティ & 可搬性が高い

さらに、Functions の特徴としてステートレスでスケールアウトが容易なため、DB 負荷を考慮した接続プール管理(pg-pool など)とも相性が良いです。

5. Functions を中心に KeyValue / DB を集約するメリット

構成図の通り、Azure Functions が中心(ハブ)となり、
KeyValue・DB・オンプレ/他システムをつなぐことで次のメリットがあります:

メリット 説明
セキュリティ高い すべて閉域網で完結(PrivateEndpoint / VNet Integration)
拡張性が高い フロントや他システムが増えても、Functions 経由で統一的に接続
接続情報管理が簡単 Key Vault に集約し、Functions/APIMで一元管理
開発効率が良い APIレイヤが標準化し、DB〜KeyVault連携の定型化が容易

6. KeyValue(Azure Key Vault)とのセキュア連携

Functions では、接続文字列やシークレットをアプリ設定に“直書き”せず、
Key Vault 参照(Key Vault Reference) を利用できます。

  • Functions は Managed Identity で Key Vault にアクセス
  • アプリ設定には @Microsoft.KeyVault(SecretUri=…) を書くだけ
  • 秘密情報がアプリ構成やコードに露出しない

7. Functions監視は「App Insights+Log Analytics」の二刀流

Application Insights は、リクエストがどの処理で遅延・失敗したのかを追跡したり、DBや外部サービスとのつながりを可視化する機能に強く、Log Analytics は横断ログの蓄積と KQL 分析に強い。App InsightsをLog Analyticsワークスペースに連携しておくのが実運用の定番です。

8. この構成を一言でまとめると?

Azure Functions をハブに据え、Key Vault でシークレットを管理し、DB と閉域網で安全につなぐ“セキュアでシンプルなバックエンド基盤”が作れる。

これは Azure で非公開 API を構築する際の定石パターンでもあり、
多数の企業システムで採用される強い構成です。

最後に

Azure Functions の非公開 API 構成って、最初は複雑そうに見えて整理しやすい構造なんですよね。
この記事が少しでも誰かの参考になれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?