Arc 対応サーバーとは
Azure の "外部"、企業ネットワーク上、または他のクラウド プロバイダー上でホストされている Windows や Linux の物理サーバーと仮想マシンを Arc 対応サーバーにすると、Azure でサーバーを管理ができ、様々な Azure 管理機能の利用できるようになります。
対象範囲:
- 物理サーバー
- VMware (Azure VMware Solution を含む) の VM
- Azure Stack HCI の VM
- その他のクラウド環境 の VM
注意点
- Linux の場合、Azure Arc プロセスの管理には systemd が必要
- Linux ホスト名または Windows コンピューター名で予約語または商標が使用されている場合は非サポート
- Amazon Linux の場合、以下の機能はサポートしない
- Azure Monitor VM 分析情報で使用される依存関係エージェント
- Azure Automation の Update Management
その他
- Connected Machine エージェント:Azure Arc 対応サーバーにインストールするエージェント
- このエージェントは Azure Monitor のエージェントとは別物
- 監視機能を利用するには、別途 Azure Monitor エージェントが必要
- 以下を行うには Azure Monitor エージェントが必要:
- OS とワークロードの監視
- Automation Runbook、または Update Management などのソリューションを使用して管理する
- Microsoft Defender for Cloud などの他の Azure サービスを使用する
前提条件
- 利用可能な Azure サブスクリプション
- Azure の権限
- マシンをオンボードするには、マシンが管理されるリソース グループに対する「Azure Connected Machine のオンボード」または「共同作成者」権限が必要
- マシンの読み取り、変更、削除を行うには、リソース グループに対する「Azure Connected Machine のリソース管理者」権限が必要
- 「スクリプトの生成」でドロップダウン リストからリソース グループを選択するには、そのリソース グループに対する「閲覧者権限」が必要
- マシンの管理者権限
- Linux:root
- Windows:Administrator グループ メンバー
- サブスクリプションに以下のリソース プロバイダー登録
- Microsoft.HybridCompute
- Microsoft.GuestConfiguration
- Microsoft.HybridConnectivity
- Connected Machine エージェンの前提条件
- ソフトウェア要件
- Windows:
- .NET Framework 4.6 以降
- Windows PowerShell 5.1
- Linux:
- systemd
- wget (インストール スクリプトをダウンロードするため)
- Connected Machine エージェンのネットワーク要件
- インターネット経由でアクセスする場合:エージェントは 443 アウトマウントの通信が必要
- プロキシサーバー経由も可能
- ファイアウォールの設定
- TLS 1.2 推奨
- プライベート(ExpressRoute/VPN)通信のみの場合:Azure Arc プライベート リンク スコープ
Acr 対応サーバー構築
前提
- Acr 対応サーバーは Azure VM を使う
- デフォルトでは、Azure VM は利用できないので、準備が必要
- OS:ubuntu server 22.04 LTS - Gen 2 (Azure Marketplace)
Azure の VM で検証するための準備
今回は Azure VM を Arc 対応サーバーにして、試していきますが、Azure VM はデフォルトでエージェントなどでAzure に管理されているため、デフォルトの Azure VM を Arc 対応サーバーにすることはできません。
ただ、以下のことを事前に実施すれば、Azure VM でも Arc 対応サーバーにすることができるようになります。
- Azure VM にデプロイされている VM 拡張機能 (Log Analytics エージェントなど) を削除します。
- Azure Windows または Linux ゲスト エージェントを無効にします。
- Azure Instance Metadata Service (IMDS) へのアクセスを拒否するセキュリティ規則を作成します。
今回は Linux の Azure VM の場合の実施内容を以下で纏めます。
- Azure ポータルにて、「対象の仮想マシン」→
「拡張機能とアプリケーション」
に移動し、拡張機能が存在する場合、アンインストールする -
VM にログインし、以下のコマンドを実行する
# Azure VM ゲスト エージェントを無効にする current_hostname=$(hostname) sudo service walinuxagent stop sudo waagent -deprovision -force sudo rm -rf /var/lib/waagent sudo hostnamectl set-hostname $current_hostname
-
Azure IMDS エンドポイントへのアクセスをブロックする
# Uncomplicated Firewall (UFW) で、Azure IMDS エンドポイントをブロックする # ubuntu の場合、以下のコマンドを実行する sudo ufw --force enable sudo ufw deny out from any to 169.254.169.254 sudo ufw default allow incoming # iptables でも問題ないが、再起動するたびに実施する必要がある # iptables -A OUTPUT -d 169.254.169.254 -j DROP
インストール スクリプトを生成する
- Azure ポータルにログインし、検索で「サーバー」または「Azure Arc」を入手し、「サーバー - Azure Arc」を選択する
- 「サーバー」項目を選択し、「+追加」をクリックする
- 「単一サーバーの追加」の「スクリプトの生成」をクリックする
- 「Azure Arc を使用してサーバーを追加」-「前提条件」で、「次へ」をクリックする
- 「Azure Arc を使用してサーバーを追加」-「リソースの詳細」で、情報を入力して「次へ」をクリックする
- 「Azure Arc を使用してサーバーを追加」-「タグ」で、必要に応じて、情報を入力して「次へ」をクリックする
- 「Azure Arc を使用してサーバーを追加」-「スクリプトのダウンロードと実行」で、「ダウンロード」をクリックする
- ダウンロードしたスクリプトを Acr 対応サーバーにコピーする
- スクリプトファイル名:
OnboardingScript.sh
- スクリプトファイル名:
- サーバーにログインし、以下のコマンドを実行する
- 途中で認証要求が表示されるので、指示に従って、認証してください。
# スクリプトを ~ ディレクトリにコピーした場合 bash ~/OnboardingScript.sh
- 途中で認証要求が表示されるので、指示に従って、認証してください。
- 完了したら、「サーバー - Azure Arc」-「サーバー」でサーバーを確認可能
コメント