高可用性展開
高可用性(HA)は、障害発生後に仮想アプライアンスによるトラフィックの検査が停止した後のネットワークサービスの中断を防止します。
Azure MarketplaceからFail-Open HAを設定するには、最初に適切な権限とロールを手動で設定してから、Azure関数アプリケーションを設定する必要があります。
Azureでは、役割ベースのアクセス制御/ IDアクセス管理(RBAC / IAM)を使用して、Azureサービスおよびリソースにアクセスするユーザとグループを認証します。HA機能に必要なRBAC / IAMには、展開用と操作用の2つの権限セットがあります。
HA展開権限
運用HA権限を設定する前に、HA展開の正しい権限と役割を設定する必要があります。Azureサービスまたはリソースに割り当てる各役割は、次の3つの要素で構成されます。
- Security principal – Azureリソースへのアクセスを要求するユーザ、グループ、サービスプリンシパル、またはマネージドID
- Role または role definition –セキュリティプリンシパルで実行できる読み取りや書き込みなどの権限を示します。権限の設定を必要としない役割には、共同作成者の役割を使用します。
- Scope アクセスが許可されるリソースのセット。範囲のレベルは、管理グループ、 サブスクリプション、リソースグループ、およびリソースです。役割は、使用する任意の範囲レベルに割り当てます。
RBAC および Azureの役割の詳細を確認してください。
次の表のガイドラインを使用して、HA展開の役割と権限を設定します。
コンポーネント/処理 | セキュリティプリンシパル | 役割 | 適用範囲 | 必須 |
---|---|---|---|---|
アプリを登録する | ユーザ | アプリケーション開発者 | Azure Active Directory サブスクリプション | 手順1 手順2 |
役割を追加してアプリに割り当てる | ユーザ | ユーザアクセス管理者 | 関数アプリのリソースグループ | 手順3 手順4 手順5 |
マネージドID | ユーザ | 投稿者 | 関数アプリのリソースグループ | 手順6 |
IDに役割を割り当てる | ユーザ | 投稿者 | 関数アプリのリソースグループ | 手順7 |
ストレージアカウント | ユーザ | 投稿者 | 関数アプリのリソースグループ | |
アプリサービスプラン | ユーザ | 投稿者 | 関数アプリのリソースグループ | |
関数アプリ | ユーザ | 投稿者 | 関数アプリのリソースグループ | |
アプリの分析情報 | ユーザ | 投稿者 | 関数アプリのリソースグループ |
HAの操作権限
権限と役割を設定するには、次の手順を手動で実行します。
- 新しいアプリケーションを登録する。
- 新しいシークレットを作成する。
- 新しいカスタムの役割を作成する。
- 新しいアプリケーションアカウントにカスタムの役割を割り当てる。
- 新しいアプリケーションアカウントに監視ロールを割り当てる
- Managed Identityを作成する。
- 新しい管理対象IDに「Contributor」ロールを割り当てる。
アプリケーションの登録手順と新しいシークレットの作成手順により、HA機能が日常業務を実行することが許可されます。
手順1:サービスプリンシパルの新しいアプリケーションを登録する
- Microsoft Azureポータルで、検索フィールドに「
Azure Active Directory
」と入力してAzure Active Directoryに移動します。 - Azure Active Directoryで、左側のナビゲーションパネルのApp Registrationsをクリックします。
- App Registrations画面で、New Registrationsタブをクリックします。
- Nameフィールドにアプリケーションの名前を入力します。この名前はいつでも変更できます。
- Registerをクリックします。アプリがApp Registrations画面に表示されます。
- Microsoft Azureポータルで、検索フィールドに「
Azure Active Directory
」と入力してAzure Active Directoryに移動します。 - 左側のナビゲーションパネルでApp Registrations をクリックします。
- アプリケーションのリストからアプリケーションをクリックします。
- 左側のナビゲーションパネルで、Certificates & secretsをクリックします。
- New client secretをクリックします。
- Add a client secretポップアップで、シークレットの説明(例:
MySecret
)を追加し、環境に最適な有効期限を選択して、Addをクリックします。 - Client secretsパネルで、生成したシークレットを確認できます。シークレットをクリップボードにコピーして貼り付けるには、シークレットの右側にあるコピーアイコンをクリックします。
-
Microsoft Azureポータルで、検索フィールドに「
Resource groups
」と入力してResource groups画面に移動します。 -
Filter by nameフィールドにリソースグループの名前を入力し、そのグループを選択します。
-
** Access Control(IAM)**をクリックします。
-
Add > Add Custom Roleにクリックします。
-
Create a Custom Role画面で、Basicsタブに役割の名前を入力し、必要に応じて説明を入力します。
-
Permissionsタブで、Add Permissions をクリックして、スケールセットの展開に次の権限を追加します。
Gateway Load Balancerを使用しないスケールセット展開の場合:
アプライアンスのリソースグループについては、次の操作権限を検索します。
Microsoft.Network/loadBalancers/read
Microsoft.Insights/Metrics/Read
Microsoft.Compute/virtualMachineScaleSets/read
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/restart/action
接続されたVNetリソースグループに、次の操作権限を追加します。
Microsoft.Network/virtualNetworks/subnets/read
Microsoft.Network/virtualNetworks/subnets/write
Microsoft.Network/routeTables/read
Microsoft.Network/routeTables/write
Microsoft.Network/routeTables/routes/write
Microsoft.Network/routeTables/join/action
Gateway Load Balancerの展開の場合:
アプライアンスのリソースグループについては、次の操作権限を検索します。
Microsoft.Network/loadBalancers/read
Microsoft.Insights/Metrics/Read
Microsoft.Compute/virtualMachineScaleSets/read
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/restart/action
Microsoft.Network/loadBalancers/frontendIPConfigurations/join/action
接続されているパブリックロードバランサグループに、次の操作権限を追加します。
Microsoft.Network/loadBalancers/read
Microsoft.Network/loadBalancers/write
Microsoft.Network/loadBalancers/frontendIPConfigurations/join/action
Microsoft.Network/publicIPAddresses/join/action
-
Nextをクリックします。Assignable scopesタブで、Add assignable scopesをクリックします。
-
Add assignable scopes画面で、割り当て可能な範囲として追加するリソースグループを検索してクリックします。Addをクリックします。
- Nextをクリックします。Review + createタブで、Createをクリックします。
手順4:新しいアプリケーションアカウントにカスタムの役割を割り当てる
- Resource Groups ページでリソースグループ名を選択し、 Access Control(IAM)をクリックします。
- Rolesタブで、Nameフィールドに名前を入力し、TypeフィールドからCustomRoleを選択します。
- リソースグループごとに、Access Control (IAM)をクリックし、Addをクリックして、Add role assignmentを選択します。
- 手順1で作成した役割名とAPP名を選択します。
Assign access to
フィールドで、ユーザ、グループ、またはサービスプリンシパルを選択し、Saveをクリックします。
手順5:新しいアプリケーションアカウントに監視ロールを割り当てる
- ** Resource Groups ** 画面でリソースグループ名を選択し、 Access Control(IAM)をクリックします。
- リソースグループごとに、Access Control (IAM)をクリックし、Addをクリックして、Add role assignmentを選択します。
Monitoring Metric Publisher
の役割と手順1で作成したAPP名を選択します。Assign access to
フィールドで、ユーザ、グループ、またはサービスプリンシパルを選択し、Saveをクリックします。
- Microsoft Azureポータルで、検索フィールドに「
Managed Identities
」と入力してAzure Active Directoryに移動します。 - Addをクリックします。
- 既存のリソースグループを選択するか、Subscription > Resource Groupで Create new をクリックします。
- Nameフィールドに名前を指定し、Createをクリックします。
- Microsoft Azureポータルで、検索フィールドに「
Resource groups
」と入力して、[Resource groups] 画面に移動します。 - 関数アプリを展開するリソースグループを選択します。
- ** Access Control(IAM)**をクリックします。
- Add > Add role assignmentをクリックします。
- ドロップダウンメニューからContributorを選択し、役割を適用する管理対象のIDを選択します。
- Saveをクリックします。
Azure MarketplaceからHAを起動する
2023年9月5日より前にHA関数を起動した場合は、以前にデプロイした関数を削除し、新しいHA関数を再起動して、Pythonランタイムをバージョン3.10にアップデートすることをお勧めします。このアップデートを実行するには、次の手順を実行します。
Azure MarketplaceでPythonランタイムを3.10に手動でアップデートするには、次の手順を実行します。
- Microsoft Azureポータルで、検索フィールドに「
Resource groups
」と入力して、[Resource groups] 画面に移動します。 - 関数アプリを展開するリソースグループを選択します。
-
この関数のリソースのリストから、次のリソースタイプを削除します。
- アプリケーションインサイト
- App Serviceプラン
- 関数アプリ
-
次の手順に従って、最新のPythonランタイムバージョンを含む新しいHA関数を起動します。
HAの起動
HAの設定を完了するには、次の手順を使用して、コンパイルされたすべてのパラメータを含むARMテンプレートをデプロイし、このテンプレートをAzure UIコンポーネントと組み合わせて製品として起動します。
-
Microsoft Azure Marketplaceでアカウントを開きます。
-
Trend Micro Cloud One – Network Securityを検索します。
-
Select a planの横にあるNetwork Security High Availabilityを選択し、Createをクリックします。
-
Basicsタブで、次の操作を実行します。
- Function Appを展開するリソースグループ(「 新しい管理対象IDへのContributorロールの割り当て」で指定したものと同じグループ)を選択します。
- Instance detailsで、リージョンを選択し、Function Appの名前を指定し、アプリのソースコードのURLを指定(または初期設定を使用)し、「 Create a Managed Identity」で作成したIDを選択します。
-
Hosting and Monitoringタブで、次の操作を実行します。
- 既存のストレージアカウントを指定するか、新しいアカウントを作成します。汎用アカウントのみがサポートされます。ゾーン冗長複製はサポートされていません。詳細については、 ストレージアカウントの要件を参照してください。
- 既存の使用量計画を指定するか、新しい使用量計画を作成します。これは、共有可能な他のホスティングプランがない場合に便利です。詳細については、「 Azure Function scale and hosting 」および「 Eメールの消費量の見積もり」を参照してください。
- 既存のアプリケーションインサイトを指定するか、新しいアプリケーションインサイトを作成します。
-
App parametersタブで、次の操作を実行します。
-
「 Register a new application」で作成したアプリケーションを指定します。代わりに新しいアプリケーションを作成する場合は、権限と役割を設定するための他の手動手順を再度実行する必要があります。
-
ロードバランサを指定する必要があります。展開にAzure Application Gatewayを使用している場合は、アプリケーションゲートウェイを指定する必要があります。
Gateway Load Balancerを選択した場合、Application Gatewayまたはファイアウォールを選択する必要はありません。
- 展開にファイアウォールを使用している場合は、ファイアウォールの種類を指定する必要があります。Azure Firewall を選択するか、またはThird-party firewallを選択します。もしあなたの展開Azureファイアウォールの代わりにサードパーティのファイアウォールを使用します。
-
-
Associate resources タブで、次の操作を実行します。
Gateway Load Balancerを使用しないスケールセット展開の場合:
- ルートテーブルのリソースIDを入力します。関連するルートテーブルの Properties をクリックして、ルートテーブルのリソースIDを確認します。
- そのルートテーブルに関連付けられたサブネットのリソースIDを入力します。関連するサブネットの Propertiesをクリックして、サブネットリソースIDを確認します。
Application Gatewayやファイアウォールのサブネットを含むすべての接続済みサブネットのリソースIDを指定する必要があります。
Gateway Load Balancerの展開の場合:
- パブリックロードバランサのリソースIDを入力します。
- ゲートウェイロードバランサに関連付けられているパブリックロードバランサのフロントエンドのリソースIDを入力します。パブリックロードバランサのリソースIDを見つける手順は、 こちらで確認できます。
-
Review + createタブで、設定したすべての情報が正しいことを確認し、Createをクリックします。
手動フォールバック
この設定を有効にして仮想アプライアンスを手動でフォールバックモードにします。
AzureでのHAの確認
次の手順を使用して、AzureでHAが機能していることを確認します。 展開ではこれらの手順はオプションですが、仮想アプライアンスをアップグレードする前に、HAが有効になっていて機能していることを確認するために使用する必要があります。
スケールセットアプライアンス
環境でAzureスケールセットを有効にしている場合は、アプライアンスを1つずつアップグレードすることが重要です。次の手順に従って、Azure展開にHAフェイルオーバー機能が含まれているかどうかを確認します。
リソースグループ、仮想マシン名、およびスケールセットを確認します。
- Network Securityにログインします。
- Appliance → All Appliances → [Appliance name]に移動します。
- General タブで、 Appliance セクションの Version を確認します。
- 同じページのInstanceセクションで、 Resource Group, VM Name を確認します。
ロードバランサの名前を確認します。
- 管理コンソールで、Resource Groupsページに移動し、展開時に作成されたVMスケールセット、またはGateway Load Balancerを備えたVMスケールセットのリソースグループをクリックします。
- Resourcesで、typeに
Virtual Machine Scale Set
と入力して検索結果をフィルタし、スケールセットを検索します。 - 左側のパネルでInstancesをクリックします。ロードバランサ名の検索に使用するインスタンスを選択します。
- Scale Set instance画面で、左側のパネルのNetworkingをクリックします。
- 上部のタブを使用して、 dataport > Load Balancing に移動して、ロードバランサの名前を確認します。
HA機能アプリを確認します。
- 管理コンソールのResource Groupsページに移動し、HAの検証が必要なリソースグループをクリックします。
- このリソースグループで、
type
を Function App, を選択してHA関数を探し、Azure関数をクリックします。 - 左側のパネルのSettingsセクションで、Configurationをクリックします。
- Application settingsで、LOAD_BALANCER_IDをクリックします。
- 値を確認してください。値の末尾は
.../Microsoft.Network/loadBalancers/[Load Balancer Name]
にする必要があります。[Load Balancer Name]
がアプライアンスのロードバランサの名前と同じ場合、HAは有効になります。