Azure Cobalt 200 Arm-based VMプレビュー解説:Dpsv7・Epsv7・Mpsv4・Lpsv5の変更点と移行注意点

Azure Cobalt 200 Arm-based Virtual Machinesは、Azure VMでArmベースの選択肢を広げる重要なプレビューです。結論から言うと、Dpsv7、Dplsv7、Epsv7に加え、高メモリ向けのMpsv4、ローカルストレージ密度を重視したLpsv5が加わり、Linuxベースのクラウドネイティブワークロード、Web/API、キャッシュ、データ処理、AKSのArm64ノード検証に向いています。

ただし、すぐに本番VMを置き換える発表ではありません。Azure Updates上の「In development」は、選定された顧客向けの非本番・テスト用途という位置付けであり、公開範囲・リージョン・仕様が変わる可能性があります。管理者や開発者は、まずArm64対応、リージョン、クォータ、OSイメージ、コンテナイメージ、監視・セキュリティエージェント、IaCのSKU指定を確認するのが現実的です。(Microsoft Azure)

目次

Azure Cobalt 200 Arm-based Virtual Machinesとは

Azure Cobalt 200 Arm-based Virtual Machinesは、Microsoftが発表した第2世代ArmベースCPU「Azure Cobalt 200」を利用する新しいAzure VM群です。Microsoftは、Cobalt 200 VMをLinuxベースのagentic AI、スケールアウト、クラウドネイティブ用途向けの早期アクセスプレビューとして説明しており、Cobalt 100世代と比べた性能向上も示しています。(Microsoft Azure)

今回の対象は、主に以下の5系統です。

VMシリーズ位置付け主な用途
Dplsv7 / Dpldsv7汎用・低メモリ寄りマイクロサービス、小規模DB、キャッシュ、ゲームサーバーなど
Dpsv7 / Dpdsv7汎用Webサーバー、アプリケーションサーバー、小〜中規模DB、キャッシュなど
Epsv7 / Epdsv7メモリ最適化大規模リレーショナルDB、NoSQL、RedisやMemcached、リアルタイム分析など
Mpsv4 / Mpdsv4高メモリ最適化大規模インメモリDB、ERP、大規模キャッシュ、メモリ集約型分析など
Lpsv5高密度ローカルストレージデータ前処理、ステージング、ローカルストレージを必要とするDB、ビッグデータ、検索・インデックス用途など

Microsoftの公式ブログでは、Dplsv7/Dpldsv7、Dpsv7/Dpdsv7、Epsv7/Epdsv7は最大128 vCPU、Mpsv4/Mpdsv4は最大84 vCPU、Lpsv5は最大128 vCPUと説明されています。Lpsv5は全サイズでローカルNVMeストレージを持ち、最大23TBのローカルNVMe構成が示されています。(Microsoft Azure)

何が変わるのか

ArmベースVMの用途が「汎用・メモリ最適化」から広がる

Cobalt 100世代では、主にDplsv6、Dpsv6、Epsv6などの汎用・メモリ最適化系が中心でした。Microsoft Learnでも、Cobalt 100ベースVMはスケールアウト、クラウドネイティブLinuxワークロード、データ分析、Web/API、オープンソースDB、キャッシュなどを対象にしていたことが説明されています。(Microsoft Learn)

Cobalt 200では、従来の汎用・メモリ最適化に加えて、Mpsv4の高メモリ系、Lpsv5の高密度ローカルストレージ系が加わります。これにより、ArmベースVMの検討対象が「Webサーバーや軽量なマイクロサービス」だけでなく、キャッシュ基盤、分析基盤、検索基盤、ローカルNVMeを使う一時処理基盤まで広がります。

CPU、ストレージ、ネットワークの性能向上が示されている

Microsoftは、Cobalt 200 VMについて、Cobalt 100世代と比べて最大50%のCPU性能向上、NVMe利用時のリモートストレージIOPS最大20%向上、リモートストレージスループット最大10%向上、ネットワーク帯域最大15%向上を説明しています。ただし、いずれも「最大」であり、実際の効果はワークロードによって変わります。(Microsoft Azure)

実務では、公式値をそのまま移行判断に使うのではなく、自社のアプリケーションで以下を測る必要があります。

評価項目見るべき指標判断のポイント
Web/APIp95・p99レイテンシ、RPS、CPU使用率同じリクエスト量でCPU余力が増えるか
DB・キャッシュIOPS、スループット、待機時間、メモリ使用量CPUではなくI/Oやメモリがボトルネックになっていないか
バッチ・データ処理処理時間、読み書き量、一時領域使用量Lpsv5のローカルNVMeが効く処理か
AKSPod起動時間、ノード使用率、再スケジュール時間Arm64ノードへ安全に分散できるか
コスト1リクエストあたりのコスト、1ジョブあたりのコスト単価ではなく処理量あたりで比較する

Azure Boost、メモリ暗号化、ローカルNVMeの扱いが重要になる

Cobalt 200 VMではAzure Boost統合により、リモートストレージやネットワーク性能の改善が説明されています。また、Cobalt 200ではメモリ暗号化が既定で有効になるとされています。これはセキュリティの底上げとして有益ですが、アプリケーション側の認証、Key Vault、ディスク暗号化、ネットワーク制御が不要になるわけではありません。(Microsoft Azure)

注意したいのはローカルNVMeです。ローカルストレージは高速ですが、永続データの保存先として扱うべきではありません。Azureのローカル一時ストレージは、キャッシュ、バッファ、一時ファイルのように失われても復旧できる用途に向き、VMの割り当て解除や削除で失われると説明されています。(Microsoft Learn)

たとえば、Lpsv5を検索インデックスや一時的なETL処理に使うのは検討しやすい一方、唯一のDB保存先として使うのは危険です。永続データはManaged Disk、データベースのレプリケーション、バックアップ、別リージョンへの保護設計と組み合わせて考える必要があります。

対象者と影響範囲

Azure VM管理者

Azure VMを直接管理している場合、最初に確認すべきなのは「既存VMをそのままリサイズできるか」ではありません。Azure VMのサイズ変更は、実行中VMの再起動を伴う破壊的な操作として扱うべきであり、場合によってはVMの割り当て解除が必要になります。特にステートフルなワークロードでは、単純なサイズ変更ではなく、別VMまたは別VMSSへの段階的移行を前提にした方が安全です。(Microsoft Learn)

管理者が確認すべき項目は次の通りです。

確認項目確認内容失敗しやすいポイント
リージョン対象リージョンにSKUがあるか日本リージョンで使える前提で設計してしまう
クォータArm系VMファミリのvCPU上限SKUは見えるが作成時にクォータで失敗する
OSイメージArm64対応のLinuxイメージかx64用カスタムイメージを流用しようとする
拡張機能監視、EDR、バックアップ、構成管理エージェントArm64版が未提供、または制限付き
ディスクローカルNVMeとManaged Diskの役割分担一時領域に永続データを置く
IaCBicep、ARM Template、TerraformのSKU指定SKU名を固定しすぎてリージョン展開に失敗する

AKS管理者

AKSで利用する場合は、Arm64ノードプールを既存クラスタに追加して検証する流れが現実的です。Microsoft Learnでは、AKSにArm64 VMを追加でき、IntelとArmのアーキテクチャを同一クラスタ内で混在させられると説明されています。一方で、WindowsノードプールではArm64 VMはサポートされず、既存ノードプールをArm64 VMへ更新することもできません。(Microsoft Learn)

つまり、既存のx86ノードプールをその場でArm化するのではなく、新しいArm64ノードプールを追加し、ラベル、taint、nodeSelector、affinityを使って対象Podだけを段階的に移す設計が必要です。

AKSでは、次のような切り分けが有効です。

ワークロードArm64移行の進め方
ステートレスAPIArm64ノードプールに一部Podをカナリア配置
バッチ処理ジョブ単位でArm64ノードへ振り分け、処理時間と失敗率を比較
キャッシュレプリカ構成を前提に一部ノードで検証
DB系Podストレージ、バックアップ、復旧手順を検証してから限定的に実施
Windowsコンテナ今回のArm64ノード検証対象から外す

また、AKSの複数ノードプールでは、作成後にノードプールのVMサイズを変更できない制限があります。サイズ選定を誤るとノードプールの作り直しが必要になるため、検証用ノードプールは小さく始め、メトリックを見て作り直せる前提で設計すると安全です。(Microsoft Learn)

開発者・アプリケーション担当者

開発者にとって最も大きい確認点は、アプリケーションがArm64で正しく動くかです。Java、.NET、Python、Rust、C++などの主要な開発言語ではArmネイティブ対応が進んでいますが、アプリケーション全体が自動的にArm64対応になるわけではありません。Microsoftは、主要な開発プラットフォームや言語でArmネイティブ版が提供され、AKSやコンテナイメージのArm対応も広がっていると説明しています。(Microsoft Azure)

特に次の依存関係は見落とされやすいポイントです。

領域確認例
Pythonarm64対応wheelがあるか、ネイティブ拡張をソースビルドできるか
Node.jsnpmパッケージにネイティブバイナリ依存がないか
JavaJNI、暗号化ライブラリ、圧縮ライブラリがarm64対応か
.NETRuntime Identifier、ネイティブAOT、外部DLL依存を確認
Go / RustCGO、外部Cライブラリ、ビルドターゲットを確認
コンテナlinux/arm64イメージを提供しているか
監視APMエージェント、ログ収集、メトリック収集のArm64対応

「コンテナが起動した」だけでは移行完了とは言えません。暗号化処理、圧縮処理、画像処理、PDF生成、データベースドライバ、機械学習ライブラリなど、CPUアーキテクチャ依存のある処理を重点的にテストしてください。

利用可能リージョンと日本リージョンでの注意点

Microsoftの公式ブログでは、Cobalt 200 Arm-based VMのプレビュー提供リージョンとして、West US3、East US2、Central US、Sweden Central、East US、West US2、Spain Central、Indonesia Centralが挙げられています。追加リージョンは今後発表予定とされていますが、このリストにはJapan EastやJapan Westは含まれていません。(Microsoft Azure)

日本の組織が検証する場合は、次の点に注意が必要です。

条件判断
個人情報や機密データを扱う日本リージョン外に出せない場合は、本番データを使わない
レイテンシが重要日本から遠いリージョンでの結果を本番性能として扱わない
DRやBCP要件があるプレビュー対象リージョンだけで可用性設計を確定しない
社内規定でプレビュー利用に制限がある非本番・検証用途に限定し、承認を取る
将来的に日本リージョンで使いたいIaCでリージョンとSKUをパラメータ化しておく

現時点では、「日本リージョンの本番ワークロードをすぐ移す」よりも、「Arm64対応の検証、ベンチマーク、コンテナイメージ整備、IaC修正を先に進める」段階と考えるのが妥当です。

管理者が確認すべき設定項目

SKUとリージョンを確認する

プレビューアクセスが有効になったら、まず対象リージョンでSKUが見えるか確認します。SKU名や提供範囲はプレビュー中に変わる可能性があるため、IaCに固定値を埋め込む前にCLIで確認するのが安全です。

az vm list-skus \
  --location eastus2 \
  --resource-type virtualMachines \
  --all \
  --query "[?contains(name, 'ps_v7') || contains(name, 'pls_v7') || contains(name, 'ps_v4') || contains(name, 'ps_v5')].{name:name, zones:locationInfo[0].zones, restrictions:restrictions}" \
  -o table

SKUが表示されない場合は、主に次の可能性があります。

状況考えられる原因
SKUが出てこないプレビューアクセスが未承認、対象リージョン外、CLI/API側の反映前
SKUは出るが作成できないクォータ不足、サブスクリプション制限、リージョン制限
一部サイズだけ使えないゾーン制限、容量制限、プレビュー提供範囲の違い
IaCだけ失敗するAPIバージョン、SKU名、イメージ、ゾーン指定の不整合

クォータと容量を確認する

新しいVMシリーズでは、既存のD/E/M/L系クォータとは別に制限が見えることがあります。検証前に、対象リージョンのvCPU使用状況を確認します。

az vm list-usage \
  --location eastus2 \
  -o table

本番移行を見据える場合は、検証環境で1台作れたかどうかでは不十分です。VM Scale Sets、AKSノードプール、ゾーン分散、ローリング更新時の一時的な増加分まで含めて必要vCPUを見積もってください。

OSイメージとカスタムイメージを確認する

Arm64 VMでは、x64向けのOSイメージやカスタムイメージをそのまま使えません。Marketplaceイメージを使う場合はArm64対応のLinuxイメージを選び、カスタムイメージを使う場合はビルドパイプラインから見直します。

確認すべき項目は次の通りです。

項目確認内容
OSArm64対応のLinuxディストリビューションか
ブート方式Gen2前提の構成に対応しているか
パッケージarm64リポジトリから取得できるか
カーネルモジュール独自ドライバやセキュリティ製品が対応しているか
初期化処理cloud-init、拡張機能、構成管理がarm64で動くか
ゴールデンイメージx64前提のスクリプトやバイナリを含んでいないか

コンテナイメージをArm64対応にする

AKSやコンテナベースのアプリケーションでは、マルチアーキテクチャ対応が重要です。linux/amd64だけのイメージでは、Arm64ノード上で動かない、または意図しないエミュレーションに依存する可能性があります。

確認例は以下です。

docker manifest inspect <image-name>:<tag>

CI/CDでは、少なくとも次の2つを分けて管理してください。

種類用途
linux/amd64既存x86環境向け
linux/arm64Cobalt 200やArm64 AKSノード向け

実務では、タグ名だけで判断せず、デプロイ時に実際のノードアーキテクチャとイメージアーキテクチャが一致しているかを確認します。

kubectl get nodes -o wide
kubectl describe node <node-name> | grep -i architecture

IaCのSKU指定を見直す

Bicep、ARM Template、TerraformなどでVMサイズを固定している場合、Cobalt 200検証用にパラメータ化しておくと安全です。

避けたい書き方は、環境ごとにSKU名を直接ベタ書きすることです。代わりに、以下のように環境別パラメータで切り替えられる形にします。

パラメータ
locationeastus2westus3など
vmSizeStandard_D...形式のSKU
imageArchitectureArm64相当の選定条件
useLocalNvmeローカルNVMeを前提にするか
workloadProfileweb、cache、batch、searchなど

プレビュー中は、SKU名、サイズ、リージョン、制限が変更される可能性があります。TerraformのplanやBicepのwhat-ifだけで安心せず、実際の作成、再デプロイ、削除、スケール、ロールバックまで確認しておくべきです。

移行・検証の進め方

まず移行候補を絞る

最初の候補は、ステートレスで水平スケールしやすいLinuxワークロードです。Web/API、キュー処理、バッチ、キャッシュ、検索インデックス生成、CIランナーなどは検証しやすい領域です。

一方で、以下のワークロードは慎重に扱います。

ワークロード慎重にすべき理由
商用ソフトウェアArm64版のライセンス・サポート条件が不明な場合がある
独自ドライバ依存x64カーネルモジュールを流用できない
Windows Server前提今回の主対象はLinuxベースのArm VM
単一構成のDBローカルディスクや停止時の影響が大きい
低レイテンシ本番系プレビューリージョンが日本から遠い可能性がある

検証環境を本番と分離する

In development / Private Preview相当の機能は、検証専用のサブスクリプションまたはリソースグループで扱うのが安全です。タグ、予算アラート、権限、ネットワーク境界を本番と分けてください。

推奨する検証単位は次の通りです。

フェーズ目的成果物
互換性確認起動・ビルド・テストが通るかArm64対応リスト
小規模性能検証同一条件でx86/Cobalt 100と比較ベンチマーク結果
運用検証監視、ログ、バックアップ、パッチ適用運用手順
障害検証再起動、再作成、ノード障害、ロールバック復旧手順
限定カナリア一部トラフィックで実測移行可否判断

比較基準を決めてからベンチマークする

Cobalt 200の公式説明には大きな性能向上が示されていますが、ワークロードごとの差があります。検証では「速くなったか」ではなく、「何がどれだけ改善したら採用するか」を先に決めてください。

たとえば、次のような基準です。

採用基準
性能p95レイテンシが10%以上改善、または同等性能でCPU使用率が下がる
コスト1,000リクエストあたりのコストが下がる
安定性24〜72時間の連続負荷でエラー率が増えない
運用性監視、ログ、脆弱性管理、バックアップが既存運用に乗る
可搬性x86環境へ即時ロールバックできる

「CPU性能は上がったが、アプリのボトルネックは外部DBだった」という結果はよくあります。その場合、VM単体の性能ではなく、システム全体のボトルネックを再評価する必要があります。

展開時の注意点

本番置換ではなくブルーグリーンまたはカナリアで進める

既存VMを直接リサイズする移行は、再起動や割り当て解除の影響を受けやすく、切り戻しも複雑になります。特にx86からArm64への移行では、別環境を作って段階的にトラフィックを流す方が安全です。

おすすめは次の流れです。

手順内容
新環境作成Cobalt 200 VMまたはArm64ノードプールを別に作る
同一構成化OS、ミドルウェア、設定、シークレット、監視を揃える
テスト流量投入内部トラフィックまたは一部ユーザーだけ流す
メトリック比較レイテンシ、エラー率、CPU、メモリ、I/Oを比較
段階拡大5%、25%、50%のように増やす
ロールバックDNS、Load Balancer、Ingress、スケール設定で戻す

ローカルNVMeを「速い永続ディスク」と誤解しない

Lpsv5やd付きサイズのローカルNVMeは魅力的ですが、永続化が必要なデータの唯一の保存先には向きません。ローカル一時ストレージは、失われても再生成できるデータに使うべきです。(Microsoft Learn)

向いている用途は以下です。

向いている向いていない
キャッシュ唯一のDBデータ
一時ファイル監査ログの唯一の保存先
ETLの中間データバックアップなしの検索インデックス
再生成可能なインデックス顧客データの原本
ビルド・テストの作業領域復旧不能なセッション情報

セキュリティ製品と監視エージェントのArm64対応を確認する

VMが起動してアプリが動いても、監視やセキュリティが抜け落ちると本番運用には進めません。以下は必ず確認してください。

項目確認ポイント
Microsoft Defender系対象OS・アーキテクチャ・拡張機能の対応
Azure Monitor Agentインストール、ログ収集、メトリック収集
APMarm64対応パッケージ、サンプリング、トレース
脆弱性管理スキャンエージェントやSBOM生成
バックアップVM単位で必要か、アプリ側で保護するか
パッチ管理OS更新、再起動、カーネル更新の流れ

Cobalt 200のメモリ暗号化は有益な基盤機能ですが、アプリケーションや運用のセキュリティ設計を代替するものではありません。通信の暗号化、秘密情報管理、IDベースのアクセス制御、ログ監査は従来通り必要です。

すぐに確認すべきチェックリスト

チェック確認内容
プレビュー利用条件自社・自チームでIn development / Private Previewを使えるか
リージョン対象リージョンが社内規定、データ所在地、レイテンシ要件に合うか
SKUDpsv7、Dplsv7、Epsv7、Mpsv4、Lpsv5のどれが用途に合うか
クォータ検証台数だけでなく、スケール時のvCPUを確保できるか
OSArm64対応Linuxイメージを使えるか
アプリネイティブ依存、ライブラリ、コンテナがarm64対応か
AKS既存ノードプール更新ではなく、新規Arm64ノードプール追加で設計しているか
ストレージローカルNVMeに永続データを置かない設計か
監視ログ、メトリック、APM、アラートが取れるか
ロールバックx86または既存VMへ戻す手順があるか
IaCSKU、リージョン、イメージをパラメータ化しているか
コストVM単価ではなく、処理量あたりのコストで比較する準備があるか

どのシリーズを選ぶべきか

迷った場合は、既存ワークロードのボトルネックから選びます。シリーズ名だけで選ぶのではなく、CPU、メモリ、I/O、ローカルストレージのどれが効くかを確認してください。

状況候補理由
Web/API、一般的なLinuxサーバーDpsv7CPUとメモリのバランスが取りやすい
メモリ消費が小さい大量のマイクロサービスDplsv7メモリ比率を抑えたスケールアウトに向く
Redis、Memcached、分析、DBEpsv7メモリ比率が高く、キャッシュやDBに向く
大規模インメモリ処理、ERP、巨大キャッシュMpsv4高メモリ比率が必要な処理向け
ローカルNVMeを使うデータ前処理・検索Lpsv5高密度ローカルストレージを活用しやすい

実務では、最初から大きいサイズを選ばず、小さめのサイズでアプリ互換性を確認し、その後にCPU・メモリ・I/Oのメトリックを見てサイズを上げる方が失敗しにくくなります。

現時点でのおすすめアクション

Azure Cobalt 200 Arm-based Virtual Machinesは、将来的にAzure上のArmワークロードを広げる有力な選択肢です。特に、Linuxベースのスケールアウトアプリ、AKS、キャッシュ、データ処理、検索基盤では、早めにArm64対応を進めておく価値があります。

一方で、現時点ではIn development / Private Preview相当の扱いであり、本番移行を急ぐ段階ではありません。まずは次の順序で進めるのが安全です。

  1. 対象ワークロードをステートレスなLinuxアプリから選ぶ
  2. Arm64対応のOS、依存ライブラリ、コンテナイメージを確認する
  3. 対象リージョンとクォータを確認する
  4. IaCのSKU・リージョン・イメージ指定をパラメータ化する
  5. Cobalt 100または既存x86環境と同じ条件でベンチマークする
  6. AKSでは新規Arm64ノードプールを追加し、カナリアで検証する
  7. ローカルNVMeは一時データ専用として設計する
  8. 監視、セキュリティ、バックアップ、ロールバック手順まで確認する

この発表の本質は、「新しいVMサイズが増えた」ことだけではありません。Azure上でArm64を前提にした設計、ビルド、運用を現実的に検証するタイミングが来たことです。まずは本番移行ではなく、Arm64対応の棚卸しと小規模な検証環境の構築から始めるのが、最もリスクの低い進め方です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次