Azure Arc + Azure Stack HCIを簡単にAzure上で試せる「Jumpstart HCIBox」

この記事の内容

  • Azure Arc Jumpstartの「HCIBox」を使うと、物理ハードウェアなしでAzure Stack HCI環境をAzure上に全自動で構築できます
  • 2ノードのAzure Stack HCIクラスター、AKS、Resource Bridge、Windows Admin Centerなどが一括で展開されます
  • Bicepテンプレートによるデプロイで、手順は比較的シンプルです
  • リポジトリが大容量のため、Cloud Shellではなくローカルまたは専用VM環境での実行を推奨します
  • コストは1日あたり約2万円程度になるため、検証後はリソースグループを削除することが重要です

Jumpstart HCIBoxとは

Azure Arc Jumpstartは、Azure Arcに関連するさまざまな環境を全自動で構築して試せるプロジェクトです。その中に「Box」と呼ばれるシリーズがあり、今回紹介するHCIBoxはAzure Stack HCI版にあたります。

HCIBoxを使うと、物理サーバーを用意することなく、Azure上にAzure Stack HCIのクラスター環境を展開できます。通常、この環境を一から構築するには数週間かかることもありますが、HCIBoxはそれを全自動でセットアップしてくれます。


アーキテクチャの概要

HCIBoxのアーキテクチャは、ネストされた仮想化を活用した構成になっています。

  • Azure VM(Windows Server 2022) :Hyper-VホストとなるベースのVM。Standard_D48s_v5シリーズを使用します
  • Hyper-Vゲスト VM:このVM上に複数のゲストVMが作成されます
    • Azure Stack HCIノード × 2台(2ノードクラスター)
    • 管理用VM(Windows Admin Centerなど)
    • ドメインコントローラー(Active Directory)
    • BGPルーター(Windows ServerでRRASを使用)
  • Azure Arc Resource Bridge:仮想マシンのライフサイクル管理をAzureポータルやCLIから行うために展開されます
  • AKS(Azure Kubernetes Service)on Azure Stack HCI:マネジメントクラスターとワークロードクラスターが展開されます
  • カスタムロケーション:Azure Stack HCI上にAzureポータルからVMを展開するために使用されます
  • ギャラリーイメージ:Windows Server 2019およびLinuxのイメージが事前に用意されます

展開できる主な機能

HCIBoxが展開・構成する内容は多岐にわたります。

  • Azure Stack HCI 2ノードクラスターの構築とAzureへの登録
  • AKS on Azure Stack HCI(マネジメントクラスター+ワークロードクラスター)
  • Azure Arc Resource Bridge(仮想マシンのライフサイクル管理)
  • Windows Admin Center
  • Azure Monitor / Log Analytics Workspace による監視
  • Azure Policy による構成管理
  • Microsoft Defender for Cloud との連携
  • GitOpsを使ったサンプルアプリケーションのデプロイ(オプション)

利用用途

ドキュメントでは以下の用途が挙げられています。

  • PoC(概念検証)
  • トレーニング・スキル開発
  • 統合テストのプラットフォーム
  • ハイブリッドクラウドソリューションのインフラコードのベース

前提条件

  • Azure CLI バージョン 2.40.0 以上
  • 対応リージョン:East US、West US、North Europeのみ(Japan Eastなどは非対応)
  • Standard_D48s_v5が展開できるだけのvCPUクォータ(デフォルトで350まで利用可能)
  • 展開権限を持つAzureサブスクリプション

展開手順

1. Azure CLIバージョンの確認

az version

バージョンが2.40.0以上であることを確認します。

2. サブスクリプションの確認

az account list --query "[?isDefault]" --output tsv

デフォルトのサブスクリプションが正しいことを確認します。必要に応じて切り替えます。

az account set --subscription <サブスクリプションID>

3. リソースプロバイダーの登録

HCIBoxで使用するリソースプロバイダーを事前に登録します。ドキュメントに記載されているコマンドをコピーして実行してください。複数回実行しても問題ありません。

4. サービスプリンシパルの作成

HCIBoxの展開に使用するサービスプリンシパルを作成し、サブスクリプションに対してOwnerロールを割り当てます。

az ad sp create-for-rbac --name "jumpstart-hcibox" \
  --role "Owner" \
  --scopes /subscriptions/<サブスクリプションID>

実行後に表示されるappIdpasswordtenantを控えておきます(パラメーターファイルへの記入に使用します)。

5. リポジトリのクローン

注意:リポジトリのサイズが約2GBと大きいため、Cloud Shellでは容量不足になる場合があります。ローカル環境またはAzure VM上での実行を推奨します。

mkdir hcibox && cd hcibox
git clone https://github.com/microsoft/azure_arc.git

6. パラメーターファイルの編集

クローンしたリポジトリ内の以下のファイルを編集します。

azure_arc/azure_jumpstart_hcibox/bicep/main.parameters.json

編集が必要な主な項目は以下のとおりです。

パラメーター内容
spnClientIdサービスプリンシパルのappId
spnClientSecretサービスプリンシパルのpassword
spnTenantIdテナントID
windowsAdminUsernameWindowsの管理者ユーザー名
windowsAdminPasswordWindowsの管理者パスワード

7. リソースグループの作成とデプロイ

az group create --name "arc-hcibox" --location "eastus"

az deployment group create \
  --resource-group "arc-hcibox" \
  --template-file "./azure_arc/azure_jumpstart_hcibox/bicep/main.bicep" \
  --parameters "./azure_arc/azure_jumpstart_hcibox/bicep/main.parameters.json"

Bicepテンプレートによるデプロイが開始されます。完了まで数十分かかります。


展開完了後の接続と確認

クライアントVMへのRDP接続

展開後、HCIBoxクライアントと呼ばれるベースのAzure VMにRDPで接続します。デフォルト状態ではRDP(ポート3389)がブロックされているため、以下のいずれかの方法で接続します。

  • Just-in-Timeアクセス(推奨):Microsoft Defender for Cloudの機能を使用
  • NSGのインバウンドルール追加:一時的に自分のIPアドレスからの3389番ポートを許可

接続後、ログオンスクリプトが自動的に起動し、以下の処理が順次実行されます。

  1. ストレージプールとデータディスクの構成
  2. Azure CLIでのサービスプリンシパルログイン
  3. Azure Stack HCIクラスターの作成とAzureへの登録
  4. AKSのデプロイ
  5. Azure Arc Resource Bridgeの展開
  6. カスタムロケーションの構成

Hyper-Vマネージャーで確認

Server Manager → ツール → Hyper-Vマネージャーを開くと、ネストされたVM構成を確認できます。クライアントVM内にさらにHyper-VホストのVMがあり、その中でAzure Stack HCIノードが稼働している様子が確認できます。

AzureポータルからVMを展開する

Resource BridgeとカスタムロケーションによってAzureポータルからオンプレミス(Azure Stack HCI上)の仮想マシンを作成できます。

  1. Azureポータルでクラスターの「仮想マシン」メニューを開く
  2. 「仮想マシンの作成」を選択
  3. 事前に用意されているギャラリーイメージ(Windows Server 2019、Linuxなど)を選択して作成

Windows Admin Centerでの管理

展開後、Windows Admin CenterのVMにアクセスすることでクラスターの管理が行えます。Azure Stack HCIクラスターとしての認識、サーバー2台の表示、ボリューム、仮想マシン管理などが確認できます。

認証情報は以下のとおりです。

  • ユーザー名:arcdemo@jumpstart.local(ドメインユーザー形式)
  • パスワード:パラメーターファイルで設定した値

GitOpsによるサンプルアプリのデプロイ

AKS環境に対して、付属のスクリプトを使ってGitOpsでサンプルアプリケーションをデプロイできます。

C:\HCIBox\DeployGitOps.ps1

このスクリプトを実行すると、サービスプリンシパルでAzureにログインし、AKSクラスターに対してGitOpsの構成が適用されます。Nginx経由でアクセス可能な「Hello Arc」アプリが自動的に展開されます。

Azure Monitorによる監視の有効化

クラスターの「機能」メニューから「ログ」と「インサイト」を有効にします。

  • ワークスペースとして、HCIBoxが事前に作成したhcibox-workspaceを選択
  • 有効化後しばらく待つと、メトリクスやログが収集されはじめます

設定のカスタマイズ

HCIBoxの詳細な設定を変更したい場合は、以下のファイルを編集します。

C:\HCIBox\HCIBox-Config.psd1

このファイルにはホストの一覧、VHDXのパス、メモリ設定、ドメイン名、NAT設定などが定義されています。カスタマイズする場合はリポジトリをフォークして変更することが推奨されています。


コストについて

HCIBoxで使用するStandard_D48s_v5の費用は、東日本リージョン以外での目安として1日あたり約1〜2万円程度かかります。

検証が終わったら、リソースグループを削除してください。

az group delete --name "arc-hcibox" --yes

まとめ

Jumpstart HCIBoxは、Azure Stack HCI環境をAzure上に全自動で展開できる非常に便利なツールです。通常は数週間かかるような環境構築が、Bicepテンプレートの展開とパラメーターファイルの編集だけで完了します。

AKS、Azure Arc Resource Bridge、Windows Admin Center、Azure Monitor連携まで含まれており、PoC・トレーニング・統合テストなど幅広い用途で活用できます。

注意点として、リポジトリのサイズが大きいためCloud Shellでのクローンは容量不足になる可能性があること、および利用可能なリージョンがEast US・West US・North Europeに限られていることを覚えておきましょう。

実際の物理サーバーを用意しなくてもこれだけの環境が手軽に試せるのは非常に魅力的です。Azure Stack HCIに興味のある方はぜひ試してみてください。