英語で読む

次の方法で共有


クイック スタート:ARM テンプレートを使用して Service Fabric クラスターを作成する

Azure Service Fabric は、スケーラブルで信頼性に優れたマイクロサービスとコンテナーのパッケージ化とデプロイ、管理を簡単に行うことができる分散システム プラットフォームです。 Service Fabric "クラスター" は、ネットワークで接続された一連の仮想マシンです。マイクロサービスは Service Fabric クラスターにデプロイされ、そこで管理されます。 この記事では、Azure Resource Manager テンプレート (ARM テンプレート) を使用して、Azure に Service Fabric テスト クラスターをデプロイする方法について説明します。

Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイを作成するプログラミング コマンドのシーケンスを記述しなくても、そのデプロイに関する意図を記述できます。

この 5 ノードの Windows クラスターは、セキュリティの保護に自己署名証明書を使用しているため、運用環境のワークロードではなく、説明のみを目的としています。 テンプレートのデプロイには、Azure PowerShell を使用します。 Azure PowerShell だけでなく、Azure portal、Azure CLI、および REST API を使用することもできます。 他のデプロイ方法については、「テンプレートのデプロイ」を参照してください。

環境が前提条件を満たしていて、ARM テンプレートの使用に慣れている場合は、 [Azure へのデプロイ] ボタンを選択します。 Azure portal でテンプレートが開きます。

Resource Manager テンプレートを Azure に配置するボタン。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

Service Fabric SDK と PowerShell モジュールをインストールします

このクイックスタートを完了するには、次のことが必要です。

サンプル テンプレートと証明書ヘルパー スクリプトをダウンロードする

Azure Resource Manager クイックスタート テンプレート リポジトリを複製またはダウンロドします。 または、使用する以下のファイルを service-fabric-secure-cluster-5-node-1-nodetype フォルダーからローカルにコピーします。

Azure へのサインイン

Azure にサインインし、Service Fabric クラスターの作成に使用するサブスクリプションを指定します。

PowerShell
# Sign in to your Azure account
Login-AzAccount -SubscriptionId "<subscription ID>"

Key Vault に格納される自己署名証明書を作成する

Service Fabric では、X.509 証明書を使用して、クラスターをセキュリティで保護し、アプリケーションのセキュリティ機能を提供します。また、Key Vault を使用して、これらの証明書を管理します。 クラスターを正常に作成するには、ノード間通信を有効にするためのクラスター証明書が必要です。 このクイックスタート テスト クラスターを作成するために、クラスター認証用の自己署名証明書を作成します。 運用環境のワークロードには、正しく構成された Windows Server 証明書サービスを使用して作成した証明書か、認定済みの証明機関 (CA) からの証明書が必要です。

PowerShell
# Designate unique (within cloudapp.azure.com) names for your resources
$resourceGroupName = "SFQuickstartRG"
$keyVaultName = "SFQuickstartKV"

# Create a new resource group for your Key Vault and Service Fabric cluster
New-AzResourceGroup -Name $resourceGroupName -Location SouthCentralUS

# Create a Key Vault enabled for deployment
New-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName -Location SouthCentralUS -EnabledForDeployment

# Generate a certificate and upload it to Key Vault
.\scripts\New-ServiceFabricClusterCertificate.ps1

スクリプトによって次のメッセージが表示されます (以下の例の値のうち、CertDNSNameKeyVaultName は必ず変更してください)。

  • パスワード: Password!1
  • CertDNSName: sfquickstart.southcentralus.cloudapp.azure.com
  • KeyVaultName: SFQuickstartKV
  • KeyVaultSecretName: clustercert

完了すると、テンプレートのデプロイに必要なパラメーター値がスクリプトによって提供されます。 これらの変数は、クラスター テンプレートをデプロイするために必要となるため、以下の変数に格納してください。

PowerShell
$sourceVaultId = "<Source Vault Resource Id>"
$certUrlValue = "<Certificate URL>"
$certThumbprint = "<Certificate Thumbprint>"

テンプレートを確認する

このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。 この記事のテンプレートは長いため、ここでは表示できません。 テンプレートを表示するには、azuredeploy.json ファイルを参照してください。

テンプレートでは、複数の Azure リソースが定義されています。

Azure Service Fabric に関連するテンプレートをさらに探すには、「Azure クイックスタート テンプレート」を参照してください。

パラメーター ファイルをカスタマイズする

azuredeploy.parameters.json を開き、パラメーター値を以下のように編集します。

  • clusterName は、クラスター証明書を作成したときに CertDNSName に指定した値と一致させる
  • adminUserName は、既定の GEN-UNIQUE トークン以外の値にする
  • adminPassword は、既定の GEN-PASSWORD トークン以外の値にする
  • certificateThumbprintsourceVaultResourceId、および certificateUrlValue は、すべて空の文字列 ("") にする

次に例を示します。

JSON
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "clusterName": {
      "value": "sfquickstart"
    },
    "adminUsername": {
      "value": "testadm"
    },
    "adminPassword": {
      "value": "Password#1234"
    },
    "certificateThumbprint": {
      "value": ""
    },
    "sourceVaultResourceId": {
      "value": ""
    },
    "certificateUrlValue": {
      "value": ""
    }
  }
}

テンプレートのデプロイ

ARM テンプレートとパラメーター ファイルのパスを変数に格納し、テンプレートをデプロイします。

PowerShell
$templateFilePath = "<full path to azuredeploy.json>"
$parameterFilePath = "<full path to azuredeploy.parameters.json>"

New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateFile $templateFilePath `
    -TemplateParameterFile $parameterFilePath `
    -CertificateThumbprint $certThumbprint `
    -CertificateUrlValue $certUrlValue `
    -SourceVaultResourceId $sourceVaultId `
    -Verbose

デプロイされているリソースを確認する

デプロイが完了したら、出力の中の managementEndpoint 値を見つけ、Web ブラウザーでそのアドレスを開いて、Service Fabric Explorer でクラスターを表示します。

新しいクラスターを表示している Service Fabric Explorer

また、Azure portal の Service Explorer リソース ブレードから Service Fabric Explorer エンドポイントを見つけることもできます。

Service Fabric Explorer エンドポイントを示す Service Fabric リソース ブレード

リソースをクリーンアップする

不要になったら、リソース グループを削除します。これにより、リソース グループ内のリソースが削除されます。

PowerShell
$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue..."

次に、ローカル ストアからクラスター証明書を削除します。 インストールされている証明書の一覧を表示して、クラスター用のサムプリントを見つけます。

PowerShell
Get-ChildItem Cert:\CurrentUser\My\

そして、その証明書を削除します。

PowerShell
Get-ChildItem Cert:\CurrentUser\My\{THUMBPRINT} | Remove-Item

次のステップ

カスタム Azure Service Fabric クラスター テンプレートの作成の詳細については、次を参照してください。