<p><meta-data category="Infrastructure As Code" date="2024-07-25" scope="Confidential" service="Azure HPC/AI" status="WIP" type="security-draft"><tags compliance="PCI-DSS/ISO 27001 baseline" deployment="Bicep" framework="Well-Architected" language="Ja" level="Senior Architect"></tags></meta-data></p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
</blockquote>
<h1 class="wp-block-heading">AIイノベーションを加速する「トークン工場」向けAzure HPC/AI基盤設計:ND H100 v5を活用した超大規模トレーニング環境</h1>
<p><strong>【導入】</strong>
大規模言語モデル(LLM)の学習と推論に必要な、ペタバイト級のデータ処理と超高速インターコネクトを要求される、スケーラブルでコスト効率の高いHPCインフラストラクチャの構築が課題です。</p>
<h2 class="wp-block-heading">【アーキテクチャ設計】</h2>
<p>本設計は、Microsoftが巨額投資を継続している最新のHPC/AIインフラストラクチャを最大限に活用し、特に低遅延・高スループットのGPU間通信(InfiniBand)を必要とする超大規模な分散トレーニングワークロードに特化しています。中心となるのは、Azure Machine Learning (AML) ワークスペースと、最新のNVIDIA H100 Tensor Core GPUを搭載したCompute Clusterです。</p>
<p>コンポーネント間の関係性を解説します。
開発者や管理者はEntra ID(旧 Azure AD)を通じて認証され、AMLワークスペースのコントロールプレーンにアクセスします。AMLワークスペースは、Private Endpointを通じてVNet内に閉じ込められており、データ流出を防止します。トレーニングデータは、高スループットと低レイテンシを提供するAzure NetApp Files(ANF)に格納され、Compute Cluster(ND H100 v5)にマウントされます。このCompute Clusterは、低遅延を実現するInfiniBandネットワークによってノード間が結合されており、大規模な分散学習に最適化されています。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
subgraph Security Boundary (VNet)
A["Azure Machine Learning Workspace"] -- Private Endpoint --> B("Azure Private Link")
B -- Management/API --> C("Subnet: Control Plane")
C --> D["AML Compute Cluster(\"ND H100 v5\")"]
D -- High Throughput --> E["Azure NetApp Files (ANF)"]
D -- Checkpoints/Logs --> F["Azure Storage(\"Premium Block Blob\")"]
A --> G["Azure Key Vault"]
end
H["Developer/Data Scientist"] -->|Entra ID Auth| A
G --> D
D -- InfiniBand Interconnect --> D
F --> |Monitoring| I["Log Analytics Workspace"]
</pre></div>
<h3 class="wp-block-heading">採用コンポーネントと最新SKU</h3>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">コンポーネント</th>
<th style="text-align:left;">目的</th>
<th style="text-align:left;">推奨SKU/サービスレベル</th>
<th style="text-align:left;">特記事項</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;"><strong>コンピュート</strong></td>
<td style="text-align:left;">LLMトレーニング/推論</td>
<td style="text-align:left;">Standard_NDm32ls_H100_v5</td>
<td style="text-align:left;">3.2Tb/sのInfiniBand(RoCE v2)でノード間接続。大規模並列処理の鍵。</td>
</tr>
<tr>
<td style="text-align:left;"><strong>ストレージ</strong></td>
<td style="text-align:left;">トレーニングデータセット</td>
<td style="text-align:left;">Azure NetApp Files (Ultra Service Level)</td>
<td style="text-align:left;">高IOPS/低レイテンシでペタバイト級のデータに高速アクセス。</td>
</tr>
<tr>
<td style="text-align:left;"><strong>ストレージ (チェックポイント)</strong></td>
<td style="text-align:left;">モデル重み・ログ</td>
<td style="text-align:left;">Azure Storage (Premium Block Blob)</td>
<td style="text-align:left;">コスト効率と耐久性を両立し、チェックポイントを保存。</td>
</tr>
<tr>
<td style="text-align:left;"><strong>ネットワーク</strong></td>
<td style="text-align:left;">VNet、Private Link</td>
<td style="text-align:left;">Accelerated Networking (有効化必須)</td>
<td style="text-align:left;">コントロールプレーンとデータプレーン間の通信を保護・高速化。</td>
</tr>
<tr>
<td style="text-align:left;"><strong>オーケストレーション</strong></td>
<td style="text-align:left;">ワークロード管理</td>
<td style="text-align:left;">Azure Machine Learning Workspace</td>
<td style="text-align:left;">コンピュート、データ、実験のライフサイクルを一元管理。</td>
</tr>
</tbody>
</table></figure>
<h2 class="wp-block-heading">【実装・デプロイ手順】</h2>
<p>この高集積度HPC基盤は、依存関係が複雑なため、Azure Bicepによる宣言的なIaC(Infrastructure as Code)でデプロイすることを強く推奨します。以下は、VNet内に閉じ込められたAMLワークスペースとH100 Compute Clusterの定義スニペットです。</p>
<h3 class="wp-block-heading">1. VNetとPrivate Endpointの準備(Bicepスニペット)</h3>
<p>まず、AMLとストレージ用のVNet、サブネット、Private Endpointを設定します。</p>
<pre data-enlighter-language="generic">// 1. VNetの定義
resource vnet 'Microsoft.Network/virtualNetworks@2023-04-01' = {
name: 'hpc-ai-vnet'
location: resourceGroup().location
properties: {
addressSpace: {
addressPrefixes: ['10.0.0.0/16']
}
subnets: [
{
name: 'compute-subnet'
addressPrefix: '10.0.1.0/24'
// AML Compute ClusterにはDelegationが不要
}
{
name: 'service-endpoint-subnet'
addressPrefix: '10.0.2.0/24'
// Private Link用のサブネットはネットワークポリシーを無効化
privateLinkServiceNetworkPolicies: 'Disabled'
}
]
}
}
// 2. Azure Machine Learning ワークスペースの定義
resource aml 'Microsoft.MachineLearningServices/workspaces@2023-08-01' = {
name: 'ai-token-factory-aml'
location: resourceGroup().location
identity: {
type: 'SystemAssigned'
}
properties: {
applicationInsights: ai.id
keyVault: kv.id
storageAccount: storage.id
hbiWorkspace: true // 機密性の高いビジネス情報(HBI)フラグを有効化
publicNetworkAccess: 'Disabled' // パブリックアクセスを完全に無効化
}
}
// 3. AML Private Endpointの作成
resource privateEndpoint 'Microsoft.Network/privateEndpoints@2023-04-01' = {
name: '${aml.name}-pe'
location: resourceGroup().location
properties: {
subnet: {
id: vnet.properties.subnets[1].id
}
privateLinkServiceConnections: [
{
name: 'aml-privatelink'
properties: {
privateLinkServiceId: aml.id
groupIds: ['amlworkspace']
}
}
]
}
}
</pre>
<h3 class="wp-block-heading">2. H100 Compute Clusterのデプロイ(Azure CLI)</h3>
<p>AMLワークスペース内で、H100 SKU(<code>Standard_NDm32ls_H100_v5</code>)を指定してCompute Clusterを作成します。</p>
<div class="codehilite">
<pre data-enlighter-language="generic"># AML Compute Cluster のデプロイ
RESOURCE_GROUP="rg-ai-hpc"
AML_WORKSPACE="ai-token-factory-aml"
COMPUTE_NAME="H100-InfiniBand-Cluster"
LOCATION="eastus2" # H100が利用可能なリージョンを選択
az ml compute create --name $COMPUTE_NAME \
--workspace-name $AML_WORKSPACE \
--resource-group $RESOURCE_GROUP \
--type AmlCompute \
--vm-size Standard_NDm32ls_H100_v5 \
--min-instances 0 \
--max-instances 16 \
--idle-seconds-before-scale-down 1800 \
--vnet-name hpc-ai-vnet \
--subnet compute-subnet \
--location $LOCATION
echo "H100 Compute Cluster ($COMPUTE_NAME) のデプロイを開始しました。"
# 注意: ND H100 v5 シリーズはデプロイに時間がかかる場合があります。
</pre>
</div>
<h2 class="wp-block-heading">【アイデンティティとセキュリティ】</h2>
<p>HPC/AI環境のセキュリティ設計は、データとモデルの機密性を保ちつつ、HPC環境特有の厳しいパフォーマンス要件を満たす必要があります。</p>
<h3 class="wp-block-heading">1. ゼロトラストアプローチの徹底</h3>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">要素</th>
<th style="text-align:left;">設計原則</th>
<th style="text-align:left;">詳細</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;"><strong>アクセス制御 (ID)</strong></td>
<td style="text-align:left;">Entra ID (RBAC) & Managed Identity</td>
<td style="text-align:left;">開発者・運用者には最小権限を適用。Compute ClusterがANFやStorageにアクセスする際は、AMLの<strong>システム割り当てマネージドID</strong>を使用。アクセスキーは禁止。</td>
</tr>
<tr>
<td style="text-align:left;"><strong>ネットワーク分離</strong></td>
<td style="text-align:left;">Private Endpoint/VNet Isolation</td>
<td style="text-align:left;">AML、Storage、Key VaultのすべてをVNet内に隔離。パブリックインターネットからのアクセスを完全に禁止し、データ流出を防止(AMLの <code>publicNetworkAccess: 'Disabled'</code>)。</td>
</tr>
<tr>
<td style="text-align:left;"><strong>シークレット管理</strong></td>
<td style="text-align:left;">Azure Key Vault</td>
<td style="text-align:left;">トレーニングに使用するAPIキー、サービスプリンシパル、ストレージ接続文字列などの機密情報をすべてKVに格納。Compute ClusterはManaged ID経由でKVにアクセス。</td>
</tr>
<tr>
<td style="text-align:left;"><strong>データ暗号化</strong></td>
<td style="text-align:left;">Azure Storage/ANF Encryption</td>
<td style="text-align:left;">保存データ(At Rest)はAES-256で暗号化。ANFのボリュームも暗号化を適用し、機密データを保護。</td>
</tr>
</tbody>
</table></figure>
<h3 class="wp-block-heading">2. Azure Policyによる統制</h3>
<p>Azure Policyを使用して、許可されていないVMサイズや設定ミスを防ぎます。</p>
<ul class="wp-block-list">
<li><p><strong>許可されたVM SKUの制限</strong>: H100シリーズのみを許可し、コスト高な誤ったデプロイを防止。</p></li>
<li><p><strong>Private Linkの強制</strong>: AMLワークスペースのデプロイ時に、必ず <code>publicNetworkAccess: Disabled</code> が設定されていることを検証。</p></li>
<li><p><strong>機密データ保護の強制</strong>: AMLワークスペースの <code>hbiWorkspace</code> フラグ(High Business Impact)が <code>true</code> であることを強制し、追加のロギングと監査を有効化。</p></li>
</ul>
<h2 class="wp-block-heading">【運用・コスト最適化】</h2>
<p>AIワークロードは非常に高コストになりやすいため、初期設計段階での最適化が必須です。</p>
<h3 class="wp-block-heading">1. コスト管理:予約インスタンス(Reserved Instances)の活用</h3>
<ul class="wp-block-list">
<li><p><strong>コミットメント</strong>: H100などのハイエンドGPUリソースは市場価格が高く、需要が非常に高いため、1年または3年の<strong>Azure 予約インスタンス (RI)</strong>を購入することがコスト最適化の最重要戦略です(最大65%削減)。</p></li>
<li><p><strong>動的スケーリング</strong>: AML Compute Clusterの最小インスタンス数を <code>0</code> に設定し、利用がない時はGPUリソースをゼロにスケールダウンさせます。アイドル時間のコストを最小限に抑えます。</p></li>
</ul>
<h3 class="wp-block-heading">2. 可観測性(Observability)</h3>
<p>AMLの実行メトリクスとインフラストラクチャメトリクスを統合することで、効率的な運用を実現します。</p>
<ul class="wp-block-list">
<li><p><strong>AML Run Metrics</strong>:</p>
<ul>
<li><p><strong>GPU利用率/メモリ</strong>: トレーニングジョブ中に各GPUが適切に利用されているか(95%以上推奨)を監視し、ボトルネック(データローディング遅延、InfiniBandの飽和など)を特定。</p></li>
<li><p><strong>チェックポイント頻度</strong>: 長時間ジョブの進捗と回復力を確保するために監視。</p></li>
</ul></li>
<li><p><strong>Azure Monitor/Log Analytics</strong>:</p>
<ul>
<li><p>Compute ClusterのInfiniBandメトリクス、ANFのレイテンシとスループットを収集。特に、ANFのI/O能力がトレーニングのボトルネックになっていないかを検証します。</p></li>
<li><p>Kubernetes (AKS/AML) イベントログを集約し、ノード障害やスケールイベントを追跡します。</p></li>
</ul></li>
</ul>
<h2 class="wp-block-heading">【まとめ】</h2>
<p>AI需要に対応する超大規模HPC基盤を導入する際の3つの重要な要点と落とし穴は以下の通りです。</p>
<ol class="wp-block-list">
<li><p><strong>InfiniBandの確保と最適化</strong>: H100 v5シリーズの最大の価値は、ノード間を結合する超高速なInfiniBandネットワークです。分散学習フレームワーク(PyTorch DDP, DeepSpeedなど)がこのInfiniBandを最大限に利用できるように、データローディングパイプライン(ANFからのデータ供給)のボトルネックを解消することが成功の鍵です。</p></li>
<li><p><strong>コストガバナンスの早期適用</strong>: H100/A100 VMは時間あたり数千円に達するため、Azure PolicyによるSKU制限、RIの購入、およびアイドル時のゼロスケールダウン設定を導入初期から必須とします。</p></li>
<li><p><strong>セキュリティ境界の徹底</strong>: 機密性の高い学習データとモデル重みを保護するため、AMLワークスペース、ストレージ、Key VaultのすべてをPrivate Endpoint経由でVNet内に完全に分離(パブリックアクセス無効化)することが必須のベストプラクティスです。これは、データ流出防止の観点から最も重要な落とし穴回避策となります。</p></li>
</ol>
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証) です。
AIイノベーションを加速する「トークン工場」向けAzure HPC/AI基盤設計:ND H100 v5を活用した超大規模トレーニング環境
【導入】
大規模言語モデル(LLM)の学習と推論に必要な、ペタバイト級のデータ処理と超高速インターコネクトを要求される、スケーラブルでコスト効率の高いHPCインフラストラクチャの構築が課題です。
【アーキテクチャ設計】
本設計は、Microsoftが巨額投資を継続している最新のHPC/AIインフラストラクチャを最大限に活用し、特に低遅延・高スループットのGPU間通信(InfiniBand)を必要とする超大規模な分散トレーニングワークロードに特化しています。中心となるのは、Azure Machine Learning (AML) ワークスペースと、最新のNVIDIA H100 Tensor Core GPUを搭載したCompute Clusterです。
コンポーネント間の関係性を解説します。
開発者や管理者はEntra ID(旧 Azure AD)を通じて認証され、AMLワークスペースのコントロールプレーンにアクセスします。AMLワークスペースは、Private Endpointを通じてVNet内に閉じ込められており、データ流出を防止します。トレーニングデータは、高スループットと低レイテンシを提供するAzure NetApp Files(ANF)に格納され、Compute Cluster(ND H100 v5)にマウントされます。このCompute Clusterは、低遅延を実現するInfiniBandネットワークによってノード間が結合されており、大規模な分散学習に最適化されています。
graph TD
subgraph Security Boundary (VNet)
A["Azure Machine Learning Workspace"] -- Private Endpoint --> B("Azure Private Link")
B -- Management/API --> C("Subnet: Control Plane")
C --> D["AML Compute Cluster(\"ND H100 v5\")"]
D -- High Throughput --> E["Azure NetApp Files (ANF)"]
D -- Checkpoints/Logs --> F["Azure Storage(\"Premium Block Blob\")"]
A --> G["Azure Key Vault"]
end
H["Developer/Data Scientist"] -->|Entra ID Auth| A
G --> D
D -- InfiniBand Interconnect --> D
F --> |Monitoring| I["Log Analytics Workspace"]
採用コンポーネントと最新SKU
コンポーネント
目的
推奨SKU/サービスレベル
特記事項
コンピュート
LLMトレーニング/推論
Standard_NDm32ls_H100_v5
3.2Tb/sのInfiniBand(RoCE v2)でノード間接続。大規模並列処理の鍵。
ストレージ
トレーニングデータセット
Azure NetApp Files (Ultra Service Level)
高IOPS/低レイテンシでペタバイト級のデータに高速アクセス。
ストレージ (チェックポイント)
モデル重み・ログ
Azure Storage (Premium Block Blob)
コスト効率と耐久性を両立し、チェックポイントを保存。
ネットワーク
VNet、Private Link
Accelerated Networking (有効化必須)
コントロールプレーンとデータプレーン間の通信を保護・高速化。
オーケストレーション
ワークロード管理
Azure Machine Learning Workspace
コンピュート、データ、実験のライフサイクルを一元管理。
【実装・デプロイ手順】
この高集積度HPC基盤は、依存関係が複雑なため、Azure Bicepによる宣言的なIaC(Infrastructure as Code)でデプロイすることを強く推奨します。以下は、VNet内に閉じ込められたAMLワークスペースとH100 Compute Clusterの定義スニペットです。
1. VNetとPrivate Endpointの準備(Bicepスニペット)
まず、AMLとストレージ用のVNet、サブネット、Private Endpointを設定します。
// 1. VNetの定義
resource vnet 'Microsoft.Network/virtualNetworks@2023-04-01' = {
name: 'hpc-ai-vnet'
location: resourceGroup().location
properties: {
addressSpace: {
addressPrefixes: ['10.0.0.0/16']
}
subnets: [
{
name: 'compute-subnet'
addressPrefix: '10.0.1.0/24'
// AML Compute ClusterにはDelegationが不要
}
{
name: 'service-endpoint-subnet'
addressPrefix: '10.0.2.0/24'
// Private Link用のサブネットはネットワークポリシーを無効化
privateLinkServiceNetworkPolicies: 'Disabled'
}
]
}
}
// 2. Azure Machine Learning ワークスペースの定義
resource aml 'Microsoft.MachineLearningServices/workspaces@2023-08-01' = {
name: 'ai-token-factory-aml'
location: resourceGroup().location
identity: {
type: 'SystemAssigned'
}
properties: {
applicationInsights: ai.id
keyVault: kv.id
storageAccount: storage.id
hbiWorkspace: true // 機密性の高いビジネス情報(HBI)フラグを有効化
publicNetworkAccess: 'Disabled' // パブリックアクセスを完全に無効化
}
}
// 3. AML Private Endpointの作成
resource privateEndpoint 'Microsoft.Network/privateEndpoints@2023-04-01' = {
name: '${aml.name}-pe'
location: resourceGroup().location
properties: {
subnet: {
id: vnet.properties.subnets[1].id
}
privateLinkServiceConnections: [
{
name: 'aml-privatelink'
properties: {
privateLinkServiceId: aml.id
groupIds: ['amlworkspace']
}
}
]
}
}
2. H100 Compute Clusterのデプロイ(Azure CLI)
AMLワークスペース内で、H100 SKU(Standard_NDm32ls_H100_v5)を指定してCompute Clusterを作成します。
# AML Compute Cluster のデプロイ
RESOURCE_GROUP="rg-ai-hpc"
AML_WORKSPACE="ai-token-factory-aml"
COMPUTE_NAME="H100-InfiniBand-Cluster"
LOCATION="eastus2" # H100が利用可能なリージョンを選択
az ml compute create --name $COMPUTE_NAME \
--workspace-name $AML_WORKSPACE \
--resource-group $RESOURCE_GROUP \
--type AmlCompute \
--vm-size Standard_NDm32ls_H100_v5 \
--min-instances 0 \
--max-instances 16 \
--idle-seconds-before-scale-down 1800 \
--vnet-name hpc-ai-vnet \
--subnet compute-subnet \
--location $LOCATION
echo "H100 Compute Cluster ($COMPUTE_NAME) のデプロイを開始しました。"
# 注意: ND H100 v5 シリーズはデプロイに時間がかかる場合があります。
【アイデンティティとセキュリティ】
HPC/AI環境のセキュリティ設計は、データとモデルの機密性を保ちつつ、HPC環境特有の厳しいパフォーマンス要件を満たす必要があります。
1. ゼロトラストアプローチの徹底
要素
設計原則
詳細
アクセス制御 (ID)
Entra ID (RBAC) & Managed Identity
開発者・運用者には最小権限を適用。Compute ClusterがANFやStorageにアクセスする際は、AMLのシステム割り当てマネージドID を使用。アクセスキーは禁止。
ネットワーク分離
Private Endpoint/VNet Isolation
AML、Storage、Key VaultのすべてをVNet内に隔離。パブリックインターネットからのアクセスを完全に禁止し、データ流出を防止(AMLの publicNetworkAccess: 'Disabled')。
シークレット管理
Azure Key Vault
トレーニングに使用するAPIキー、サービスプリンシパル、ストレージ接続文字列などの機密情報をすべてKVに格納。Compute ClusterはManaged ID経由でKVにアクセス。
データ暗号化
Azure Storage/ANF Encryption
保存データ(At Rest)はAES-256で暗号化。ANFのボリュームも暗号化を適用し、機密データを保護。
2. Azure Policyによる統制
Azure Policyを使用して、許可されていないVMサイズや設定ミスを防ぎます。
許可されたVM SKUの制限 : H100シリーズのみを許可し、コスト高な誤ったデプロイを防止。
Private Linkの強制 : AMLワークスペースのデプロイ時に、必ず publicNetworkAccess: Disabled が設定されていることを検証。
機密データ保護の強制 : AMLワークスペースの hbiWorkspace フラグ(High Business Impact)が true であることを強制し、追加のロギングと監査を有効化。
【運用・コスト最適化】
AIワークロードは非常に高コストになりやすいため、初期設計段階での最適化が必須です。
1. コスト管理:予約インスタンス(Reserved Instances)の活用
コミットメント : H100などのハイエンドGPUリソースは市場価格が高く、需要が非常に高いため、1年または3年のAzure 予約インスタンス (RI) を購入することがコスト最適化の最重要戦略です(最大65%削減)。
動的スケーリング : AML Compute Clusterの最小インスタンス数を 0 に設定し、利用がない時はGPUリソースをゼロにスケールダウンさせます。アイドル時間のコストを最小限に抑えます。
2. 可観測性(Observability)
AMLの実行メトリクスとインフラストラクチャメトリクスを統合することで、効率的な運用を実現します。
【まとめ】
AI需要に対応する超大規模HPC基盤を導入する際の3つの重要な要点と落とし穴は以下の通りです。
InfiniBandの確保と最適化 : H100 v5シリーズの最大の価値は、ノード間を結合する超高速なInfiniBandネットワークです。分散学習フレームワーク(PyTorch DDP, DeepSpeedなど)がこのInfiniBandを最大限に利用できるように、データローディングパイプライン(ANFからのデータ供給)のボトルネックを解消することが成功の鍵です。
コストガバナンスの早期適用 : H100/A100 VMは時間あたり数千円に達するため、Azure PolicyによるSKU制限、RIの購入、およびアイドル時のゼロスケールダウン設定を導入初期から必須とします。
セキュリティ境界の徹底 : 機密性の高い学習データとモデル重みを保護するため、AMLワークスペース、ストレージ、Key VaultのすべてをPrivate Endpoint経由でVNet内に完全に分離(パブリックアクセス無効化)することが必須のベストプラクティスです。これは、データ流出防止の観点から最も重要な落とし穴回避策となります。
コメント