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>
実行後に表示されるappId、password、tenantを控えておきます(パラメーターファイルへの記入に使用します)。
5. リポジトリのクローン
注意:リポジトリのサイズが約2GBと大きいため、Cloud Shellでは容量不足になる場合があります。ローカル環境またはAzure VM上での実行を推奨します。
mkdir hcibox && cd hcibox
git clone https://github.com/microsoft/azure_arc.git
6. パラメーターファイルの編集
クローンしたリポジトリ内の以下のファイルを編集します。
編集が必要な主な項目は以下のとおりです。
| パラメーター | 内容 |
|---|---|
spnClientId | サービスプリンシパルのappId |
spnClientSecret | サービスプリンシパルのpassword |
spnTenantId | テナントID |
windowsAdminUsername | Windowsの管理者ユーザー名 |
windowsAdminPassword | Windowsの管理者パスワード |
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番ポートを許可
接続後、ログオンスクリプトが自動的に起動し、以下の処理が順次実行されます。
- ストレージプールとデータディスクの構成
- Azure CLIでのサービスプリンシパルログイン
- Azure Stack HCIクラスターの作成とAzureへの登録
- AKSのデプロイ
- Azure Arc Resource Bridgeの展開
- カスタムロケーションの構成
Hyper-Vマネージャーで確認
Server Manager → ツール → Hyper-Vマネージャーを開くと、ネストされたVM構成を確認できます。クライアントVM内にさらにHyper-VホストのVMがあり、その中でAzure Stack HCIノードが稼働している様子が確認できます。
AzureポータルからVMを展開する
Resource BridgeとカスタムロケーションによってAzureポータルからオンプレミス(Azure Stack HCI上)の仮想マシンを作成できます。
- Azureポータルでクラスターの「仮想マシン」メニューを開く
- 「仮想マシンの作成」を選択
- 事前に用意されているギャラリーイメージ(Windows Server 2019、Linuxなど)を選択して作成
Windows Admin Centerでの管理
展開後、Windows Admin CenterのVMにアクセスすることでクラスターの管理が行えます。Azure Stack HCIクラスターとしての認識、サーバー2台の表示、ボリューム、仮想マシン管理などが確認できます。
認証情報は以下のとおりです。
- ユーザー名:
arcdemo@jumpstart.local(ドメインユーザー形式) - パスワード:パラメーターファイルで設定した値
GitOpsによるサンプルアプリのデプロイ
AKS環境に対して、付属のスクリプトを使ってGitOpsでサンプルアプリケーションをデプロイできます。
このスクリプトを実行すると、サービスプリンシパルでAzureにログインし、AKSクラスターに対してGitOpsの構成が適用されます。Nginx経由でアクセス可能な「Hello Arc」アプリが自動的に展開されます。
Azure Monitorによる監視の有効化
クラスターの「機能」メニューから「ログ」と「インサイト」を有効にします。
- ワークスペースとして、HCIBoxが事前に作成した
hcibox-workspaceを選択 - 有効化後しばらく待つと、メトリクスやログが収集されはじめます
設定のカスタマイズ
HCIBoxの詳細な設定を変更したい場合は、以下のファイルを編集します。
このファイルにはホストの一覧、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に興味のある方はぜひ試してみてください。