[Azure] コンピュートエンジン(PaaS)についてまとめてみた
AZ-305: インフラストラクチャ ソリューションを設計する
コンピュートエンジンの選択分岐
どういったシチュエーションなら、こういったコンピュートエンジンが合っているというのは、以下の通りの分岐でジャッジすることができる。
Azure Update Management
OSの更新管理を行うもの。OS毎にグループ化するため、WindowsやLinuxといった分け方での適用になる。更新の適用までの流れは以下の図が分かりやすい。
Azure Logic Appsの特徴
定義されたコネクタを使った、ワークフローを生成したいときに使われる。ノーコードが特徴。Jsonで記述されているので、書こうと思えばプログラミングも可能。
外部との接続のないアプリを構築している場合、おそらく Logic Apps は最善の選択ではないでしょう。
とも記載があるので、サードパーティーの製品やアプリとの連携を通した実現にも強みがあるのだろう。
Logic Apps は、リアルタイム要件、複雑なビジネス ルール、または標準以外のサービスを使用している場合は、最適なソリューションではありません。
とも記載があるので、ワークフローならば必ずしも選択したほうが良いのではなく、比較的簡素で、かつ、リアルタイム性がないこと、標準コネクタ(カスタムも作れる)をベースとして選択するのだろう。
App Serviceの認証について
組み込みの認証方法を利用することができる。例えば、Azure ADにアプリ登録を行い連携させることで、Azure AD認証を使ったWEBアプリへのログインを実装するといったことができる。
Azure Functionsについて
Durable Functionsとは
Azure Functionsの拡張機能である。通常のAzure Functionsでは複雑になってしまうコードを簡素化することができる、ステートフル関数である。細かい使い方はググってみることにする。
実行時間の制限について
従量課金プランだと10分しかないため、大規模な実行には向いていない。
Functions の従量課金プランでは、1 回の実行が 10 分までに制限されています。 Premium プランでは、実行中の暴走を防ぐために、実行継続時間の既定値が 30 分になっています。
トリガーについて
タイマートリガーやHTTPトリガーなど指定が可能。関数の作成時に選択することができる。Portal上からも選択可能。
Vnet統合について
主に、AppService・Functions・Logic Appsにてサポートされる。Vnet統合を行うには、専用のサブネットが必要になる。
-
調べる前のイメージ:対象リソースをVnetに存在するものと扱い、Vnet内の他リソースとのプライベートな送受信ができるもの。
-
調べた後のイメージ:厳密には対象リソースから送信方向の通信を、仮想ネットワーク内にルーティングさせる機能である。これによって、本来インターネットに公開されていないVnet内のリソースにアクセスさせることができる。エンドポイント経由でしかアクセスできないリソース(DBとか)が存在する場合は利用されるだろう。
参考:
https://learn.microsoft.com/ja-jp/azure/virtual-network/vnet-integration-for-azure-services
https://ascii.jp/elem/000/004/059/4059866/ -
リージョンVnet統合とゲートウェイが必要なVnet統合
Vnet統合にも2種類の方式が存在する。両者の違いとしては、リージョンVnet統合はVnet統合元のサービス(AppServiceとか)とVnetが同一リージョンに存在するときに使われる。専用のサブネットは必要になる。
ゲートウェイが必要なVnet統合は、リージョンが異なるときに利用する。専用のサブネットは不要の一方で、Vnet側に仮想ネットワークゲートウェイが必要になる点が注意。(仮想ネットワークゲートウェイには専用のサブネットが必要にはなる)
参考
- Vnet統合時の通信制御について
NSGやルートテーブルを使った制御が可能。ただし、送信の規則だけになる。受信の制御は各サービスの持つアクセス制御で実装する必要がある。
AppServiceの場合は、WEBSITE_VNET_ROUTE_ALLを『1』に設定する必要があるらしい。
DNSプライベートゾーン利用の場合は、上記に加えてWEBSITE_DNS_SERVERに『168.63.129.16』を設定する必要がある。この辺は、実際に使う時に追々確認するとしよう。
App ServiceのFreeプランはTLS/SSLをサポートしない。
↑で記載の通り。
学習資材
Discussion