Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microsoft Dev Box 概要 v0.2.24.1004

Microsoft Dev Box 概要 v0.2.24.1004

Microsoft Dev Box 概要説明資料です

Ayumu Inaba

October 04, 2024
Tweet

More Decks by Ayumu Inaba

Other Decks in Technology

Transcript

  1. Agenda 開発端末における課題 Microsoft Dev Box 概要 開発者による Dev Box の利用方法

    プロジェクト管理者による構築・管理・運用 IT 管理者から見た Dev Box Appendix 2
  2. 従来の開発端末の問題 ソースコード リポジトリではソース コードは共有できても開発・実行環 境は共有できない ① 各プロジェクトに応じて IDE や SDK

    などの開発 に必要なソフトウェア群を端末にインストールする必要 があり、配布に時間がかかる ② 企業の IT 環境では開発端末が一元管理されて いるが、配布の時期、所属部署、過去のプロジェクト参 画等によって構成が微妙に異なることも多い ③ 開発に必要なソフトウェア構成は個々のプロジェク トの要件や状況に応じて変動するが、複数プロジェクト を担当することで構成に ④ 開発したアプリケーションをデプロイする先とソフト ウェア構成が一致させられないことも多く、デプロイの 失敗やバグのリプロや調査の妨げになる(特にPaaS で顕著) 4 ソフトウェアや 環境設定の衝突 配布時期や開発ツール(IDE/SDK)の差異 Project A の ソースコード Project B の ソースコード 実行環境との 構成差異
  3. ソフトウェア構成の分離 5 Visual Studio Code Dev Container • コンテナテクノロジによる分離 •

    仮想マシンよりも軽量 • ソースコードとしてソフトウェア構成を共有 • VS Code Extension を活用した開発 • Windows / Mac / Linux 端末に対応 GitHub Codespaces + Dev Contaienr • (VS Code Dev Containerに加えて) • クラウドリソースのオンデマンド活用 • インフラは GitHub が管理 • 端末には VS Code もしくはブラウザのみ 仮想マシン(Hyper-V 等) • 作業環境への要求スペックが高い • ソフトウェア構成が共有が難しい Microsoft Dev Box • Azure VM イメージによる構成管理 • クラウドリソースのオンデマンド活用 • インフラは Microsoft が管理 • 端末にはリモートデスクトップかブラウザのみ 主に①~③の課題に対応 コンテナ 仮想マシン クラウド ローカル 本資料の範囲
  4. ホストサーバー ホストサーバー ハイパーバイザー Docker エンジン ホストOS ホストカーネル ゲスト OS ゲスト

    OS ゲスト OS ライブラリ ミドルウェア ライブラリ ミドルウェア ライブラリ ミドルウェア アプリ アプリ アプリ ライブラリ ミドルウェア ライブラリ ミドルウェア ライブラリ ミドルウェア アプリ アプリ アプリ Containers 仮想マシンと Docker コンテナによる分離
  5. ソフトウェア構成の共有 7 Windows 10/11 Runtime / SDK IDE マスターイメージ Dev

    Box (仮想マシン) ソースコード リポジトリ Linux Runtime / SDK VS Code Extension 共有 共有 占有 占有 VS Code Docker Container VS Code 占有 GitHub Codespaces ブラウザ or RDClient ブラウザ or RDClient ブラウザ or RDClient 占有 占有 占有 ブラウザ 主に①~③の課題に対応 Dev Container Microsoft Dev Box .devcontainer / Dockerfile ソフトウェア構成定義 Azure VM イメージ ソースコード リポジトリ 開発者間の共有 Azure Compute Gallery Web ブラウザ もしくは Visual Studio Code (GitHub Codespaces を使用する場合) 端末ローカルに 必要なソフトウェア Web ブラウザ もしくは リモート デスクトップ アプリ Visual Studio Code + Docker Desktop ローカル実行 不可 Linux のみ 開発対象アプリ Windows / Linux (WSL or Container) 本資料の範囲
  6. カタログ 実行環境の差異の吸収 PaaS はプラットフォームとして各種の“工夫”がされており、独自の互換 環境を用意することが難しいことが多い ソフトウェア スタック程度は再現できるケースが多いが、インフラで提供されている部分などは難しい面もある 各種の互換エミュレーターが提供されているケースもあるが、それを開発環境に組み込んでいくのは面倒 この工夫をすぐに活用できるのが PaaS

    活用のメリットではあるが・・・ 開発時にも本物の Azure 環境を使って開発やテストしてしまえばよい 実行環境もオンデマンドで払い出す仕組み Azure Deployment Environment を活用する 仮想マシンイメージではなく、IaC の機能を活用することで各種サービスをデプロイできる 8 主に④の課題に対応 開発端末 Windows 10/11 Runtime / SDK IDE src src src
  7. Microsoft Dev Box 10 Ready to code 特定のプロジェクトやタスク用に事前構成された、すぐにコーディングを開始 できるセルフサービスのワークステーションで開発者の生産性を最大化 Flexible,

    but controlled 組織標準を遵守しながら、開発者が現在のプロジェクト向けに ワークステーションをカスタマイズ可能 Managed and secured さまざまな場所で実行されているワークステーションのガバナンスを 一元化して、セキュリティ、コンプライアンス、およびコスト効率を向上 Enable self-service development with Windows 365
  8. Dev Box アーキテクチャ Dev Box は Windows 365 を拡張して構築されており、内部アー キテクチャは同じ(つまり構成やネットワーク要件も同じ)

    Windows 365 アーキテクチャ | Microsoft Learn Windows 365 のネットワーク要件 | Microsoft Learn Dev Box (クラウド PC)は MS 管理 Dev Box を Azure VNET と接続するこ とで、ネットワーク制御、各種 Azure サー ビスやオンプレミスとの連携が可能 Dev Box (クラウドPC)も ネットワークも MS 管理 簡易 管理
  9. Dev Box への接続のアーキテクチャ Windows 365 は Azure Virtual Desktop 上に構築されている

    ため、セッションホストへの接続の仕組みも同じ クライアント端末からは RD Gateway への 送信接続が必要(TLS 443) セッションホストへの直接接続は必須ではなく、 インターネットへの通信が出来ればよい 直接接続できる経路がある場合は RDP Shortpath によって通信を効率化することもできる セッションホストからは RD Gateway への 送信接続が必要(TLS 443) TLS 送信接続した”トンネル”を経由して RDP を 処理する(リバース接続トランスポート) 外部から着信接続を受けるわけではないので、 ポート開放や Public IP などは不要 認証や管理のため Azure AD や Intune への 接続経路も必要 12 Azure Virtual Desktop のネットワーク接続について
  10. Dev Box の料金 ソフトウェア ライセンス Dev Box では Windows や

    Endpoint Manager 等を利用している(詳細は次項) ユーザー単位ライセンスのため、Dev Box を利用する開発者人数分を購入 Azure サブスクリプション 仮想マシンの起動時間に応じた従量課金 確保したストレージ容量に応じた月額課金 実際に利用した時間に応じて発生 13 Microsoft Dev Box - 価格 | Microsoft Azure Compute 80h + Storage
  11. 開発者に必要なライセンス Dev Box を使用する開発者には下記のソフトウェアライセン スが付与されている必要がある Azure のサービスではあるが、Azure サブスクリプションだけがあれば使えるわけではない 14 必要なライセンス

    - Windows 11 Enterprise または Windows 10 Enterprise - Microsoft Endpoint Manager (Microsoft Intune) - Microsoft Entra ID P1 (Azure Active Directory P1) もしくは上記を含むスイート製品 - Microsoft 365 F3 / E3 / E5 / A3 / A5 - Microsoft 365 Business Premium / Microsoft 365 Education Student Use Benefit サブスクリプション ※ Dev Box にインストールして利用する各種ソフトウェアのライセンスは別途必要(Visual Studio IDE, Office 製品、各種 3rd Party 製品など)
  12. Microsoft リモート デスクトップ アプリ 接続元端末の OS 用の リモート デスクトップ アプリをインストールして接続

    Windows は Microsoft Store から、Android は Google Play から、MacOS の場合は App Store から このアプリは Dev Box 専用ではなく、サインインすると Azure Virtual Desktop や Windows 365 にも接続可能 開発者ポータルから “Open in browser” をクリックして、そのままブラウザ上から利用してもよい 17 https://learn.microsoft.com/ja-jp/azure/dev-box/tutorial-connect-to-dev-box- with-remote-desktop-app?tabs=windows Workspace URL を入力 (開発者ポータルのヘルプメニューで確認) 開発者ポータルと同じアカウント でサインイン Dev Box 仮想マシンが表示される ( AVD / W365 も表示される)
  13. Dev Home & Windows App (Preview) Dev Home アプリを利用することで手元の Windows

    端末から直 接 Dev Box の管理や接続が可能 Dev Home ではローカル PC 上で動作する WSL や Hyper-V と同じ「環境」として管理される 複数のユーザーアカウント / Entra ID テナントに所属する環境を使い分けることが出来る Dev Home から起動する場合は Windows App を使用して接続することになる 18 Windows アプリとは - Windows App | Microsoft Learn Windows 開発者向けの Dev Home | Microsoft Learn
  14. Configuration as Code (カスタマイズ) Dev Box 作成時に構成ファイル(YAML)をアップロードすることで開 発者個別のカスタマイズを行うことが出来る 任意の構成が可能なわけではなく、管理者によって登録されたカタログに含まれるタスクのみが実行できる 開発や個別の設定、マスターイメージの更新を待たずに追加の構成をしたいケースで利用できる

    設定内容によっては Dev Box 作成時に指定したマスターイメージと整合性を取る必要があることに注意 21 $schema: 1.0 tasks: - name: winget parameters: package: Microsoft.VisualStudioCode runAsUser: true - name: git-clone description: Clone this repository into C:¥Workspaces parameters: repositoryUrl: https://github.com/OrchardCMS/OrchardCore.git directory: C:¥Workspaces 構成ファイル winget タスク カタログ git-clone タスク task.yaml task.yaml 開発者は自身の端末に必要な構成(=登録済みタスクの組み合わせ)を記述 管理者は許可するカスタマイズを タスクとして登録
  15. 開発者のコスト意識も重要 Dev Box は仮想マシンとディスクに対してコストが発生する 仮想マシンは起動〜終了までの“時間”に、ディスクは作成から削除までの“期間”に対してコストが発生する 管理者側で自動シャットダウンを設定することもできるが、開発者自身も積極的に停止・削除を行うことが大事 現在 Preview 段階だが頻繁に利用する時期は Hybernate(休止状態)にすることでコストを抑えられる

    22 管理側で設定され た自動シャットダウ ンポリシー 使わない時は積極的 にシャットダウン 不要になったら削除 作成 ディスクのコストが発生 削除 VM のコ ストが発生 VM のコ ストが発生 停止 起動 停止 https://azure.microsoft.com/ja-jp/pricing/details/dev-box/ 最小サイズの Dev Box のスペックと料金(参考) - 8 vCPU / 32 GB RAM / 256 GB - コンピューティング : ¥278.64 /hour - ストレージ : ¥3,553,12 /month - 最大料金 : ¥25,844.27 /month 月当たり約 80 時間程度で月額最大料金に到達
  16. Dev Box はステートレスに Dev Box は「必要な時にいつでも使える」のがメリット、使わ ない期間が長いなら削除してしまう方がお勧め 使わずに停止状態なら Compute 料金は発生しないが、Storage

    料金は発生し続ける 停止状態でも NIC が常に VNET に接続しているため、プールのアドレス空間を消費する Dev Box 定義が更新されても、作成済みの Dev Box がアップデートされることはない Dev Box 内にオリジナルのデータを保持せず、極力ステート レスに保つべき いつでも気軽に削除できるように、最新のデータは外部のサービス保存するように心がける 例)ソースコード はリポジトリに、ドキュメントは OneDrive に、共有ファイルは Sharepointに スクリプトや CaC などでインストールや設定を積極的に自動化して再構築を容易にしておく 23
  17. Dev Box における役割分担 開発者が利用する Dev Box の「管理者」は 2 種類 インフラ管理者

    用途が特殊な開発端末とはいえ、その他の通常端末と同様に社内のネットワークやセキュリティポリシーに準拠していて欲しい プロジェクト管理者 開発プロジェクトの状況に即した構成を素早く開発者に展開したいが、開発予算として適切にコントロールしたい 25 IT / Dev インフラ管理者 Intune と Microsoft エンド ポイント マネージャーによる開 発ボックスの管理 プロジェクト管理者 開発者のプロジェクトやタ スクに合わせた開発ボッ クスのプールを作成 セキュリティポリシーの設定と管理 Network configurations Security settings Organizational policies 各プロジェクトの開発ボックス構成 Dev experience settings Cost controls Toolset customization Dev Box SKU 開発ポータルからのデプロイ Dev Box 1: high-compute workspace Dev Box 2: data engineer workspace 開発者 現在のタスクやプロジェク トに取り組むために必要な 開発ボックスを展開 Dev Portal
  18. Dev Box 関連リソースの全体構成 プロジェクト管理者は下記のような Azure リソースを構成する 開発者が作成した Dev Box は

    Intune 管理デバイスとなりインフラ管理者の制御下に入る 開発者は Azure を意識せずに VDI サービスとして利用可能 26 Dev Center 定義 定義 定義 VNET VNET 接続 接続 Project プール Project プール プール 異なるソフトウェア構成の Dev Box を利用 複数プロジェクトを 掛け持ち 複数端末の利用 プロジェクト管理者 開発者 Intune インフラ管理者 Compute Gallery イメージ イメージ イメージ
  19. Dev Center 構築作業の流れ Dev Box 環境の構築作業は大きく 3 つ ① Dev

    Box が接続する VNET を作成する(既存環境に追加する場合は接続先を決める) ② 全体を管理する Dev Center、VNET 接続、Dev Box 定義を作成 ③ プロジェクトを作成し Dev Box プールを作成、開発者にアクセス権を付与する 27 VNET 接続を作成 Dev Box 定義を作成 VNET / Subnet Project Dev Box プール(定義+接続)を作成 開発者にアクセス権を付与 クイックスタート: Microsoft Dev Box を構成する Project Dev Box プール(定義+接続)を作成 開発者にアクセス権を付与 Project Dev Box プール(定義+接続)を作成 開発者にアクセス権を付与 ① ② ③ ※ ネットワーク接続や Dev Box 定義はプロジェクト間で共通のリソース
  20. 構築① : Dev Box を配置する VNET まずは Dev Box が接続するための仮想ネットワークを準備

    開発に必要な資源やサービスにアクセス可能な VNET を準備する Dev Box からは 同一 VNET 内やピアリングされた VNET 内のリソースと通信が可能 Express Route や VPN を構成することでオンプレミスとの通信も可能 NSG や UDR で通信制御が可能だが、 前述のネットワーク要件を満たすようにすること 28 開発者 ネットワーク Dev Box Portal RD Gateway Entra ID Dev Center HTTPS over Internet Dev Box VNET Azure Subscription VNET
  21. 構築② : Dev Center を作成 Dev Box 環境を管理するための Dev Center

    リソースを作成する Portal や CLI で構築する場合は細かい設定は Dev Center リソースに対して設定していくことになるため、こ の段階ではあまり設定項目が無い 後述の Deployment Environment と共通のリソースだが、Dev Box のためだけに利用してももちろんよい 29 Dev Center を配置するリージョンは、Dev Box を配 置するリージョン(= VNET のリージョン)と必ずしも一 致していなくてよい Dev Center
  22. 構築② : 仮想ネットワーク接続を作成する Dev Center と Dev Box を配置する VNET

    をつなぐための「ネット ワーク接続」を構成する Dev Box が配置されるリージョンは、ここで接続された VNET によって決定する ネットワーク接続を複数構成することで、複数のサブネットや複数のリージョンに対して Dev Box を配置できる 30 Azure AD Join ないしは Hybrid Azure AD Join を使用して Dev Box を IT 管理下に入れる Dev Box 用に用意しておいた VNET および Subnet を選択 「ネットワーク接続」リソースをデプロイ Dev Center のネットワークに追加 作成しておいた ネットワーク接 続を追加すると、有効性のチェッ クが行われる Connection 1:N ※ Microsoft ホステッドネットワークを使用する場合はこの作業は不要
  23. 構築② : Dev Box 定義を作成する Dev Box 定義 = VM

    のマスターイメージ + マシンスペック マスターイメージは既定で利用可能なものが用意されている Azure Compute Gallery に登録したカスタムのマスターイメージを利用することもできる Dev Box の要件を満たすイメージを構築するように注意すること マシンスペックは利用可能なものが決まっている 通常の Azure VM のように自由に VM SKU を指定することは出来ない Dev Box 定義は複数登録しておくことが可能なので、全部のせマシンイメージを作る必要はない 31 既定で用意されているイメージ Compute Gallery を構成するとカスタムイメージも選択可能になる 選択可能なマシンスペック 上記以外のコア数やメモリ / GPU 付き / 低優先度 / バースト可能などの SKUを選ぶことは出来ない (今後拡充される可能性はあるが・・・) Dev Box 定義 1:N
  24. 構築①② : ここまでのまとめ ネットワーク接続や Dev Box 定義は開発・保守の状況に合わせて定期的にメ ンテナンスが必要 Dev Box

    定義は「開発に必要な ソフトウェア スタック」を定義しているため、定期的にアップデートが必要になる リージョンや VNET が増えるなど開発環境の構成が変わるケースでは VNET 接続を増やすケースも考えられる この辺りは後述の「プロジェクト」の状況とセットで考える必要が出てくる 32 Dev Center VNET 接続を作成 Dev Box 定義を作成 VNET / Subnet • 当初想定していなかったソフトウェアが必要になった • 保守フェーズでランタイムや SDK のバージョンが上がった • 利用していたマシンスペックが不足した • etc… • 追加の開発・検証環境が必要になった • 社外メンバーが参画することになり異なるネットワーク制御が必要 • 海外メンバーなど所在地に近いネットワークが必要になった • Etc…
  25. 構築③ : プロジェクトの作成 Dev Center 配下にプロジェクトを作成 開発者に対してプロジェクトへの RBAC ロールを付与する Dev

    Center Dev Box User Dev Box を作成して利用できるメンバーに必要な権限 開発者ポータルでプロジェクトが表示されるようになる Dev Center Project Admin 後述の Dev Box プールの管理を行うために必要な権限 プロジェクトは複数登録できるので実情に合わせて権限を委譲できる 開発者ごとの Dev Box 利用台数の上限を設定 開発者が任意のタイミングで様々な作業端末をセルフサービスでデプ ロイできるのが特徴だが、無尽蔵に作られて放置されがち 想定される必要台数+α 程度に設定しておくとよい(マシンイメージの 入れ替えに伴う Dev Box の再作成中に何もできなくなるため) 33 1:N プロジェクト
  26. 構築③ : Dev Box プールを作成 プロジェクトに Dev Box プールを作成 Dev

    Center 側で定義された Dev Box 定義とネットワーク接続 の組み合わせ(どこに 何をデプロイするか) Dev Box にログイン後の Windows ユーザーに管理者特権を割 り当てるか否かを制御する プール内に作成される Dev Box の自動停止する時刻を設定する ことが出来る(開発者の停止し忘れによる無駄なコストを抑制) プールも複数作成することが出来るため、要件に合わせていくつか 作成していく 開発者がポータルで選ぶ際に分かりやすい プロジェクト名とプール名をつけること 34 1:N Dev Box プール 「XX 開発用」など用途を表す名前を付け るとよい ネットワーク接続先のリージョンやスペックは 自動的に表示される
  27. Dev Center 定義 定義 定義 VNET VNET 接続 接続 Project

    プール Project プール プール プロジェクト管理者 Compute Gallery イメージ イメージ イメージ まとめ : Dev Box 関連リソースの全体構成(再掲) Dev Box 環境の全体構成を把握して効率的な開発環境として運 用できるように設計する 35 異なるソフトウェア構成の Dev Box を利用 複数プロジェクトを 掛け持ち 複数端末の利用 開発者 Intune インフラ管理者
  28. ユーザーライセンスとアクセス制御 開発者は Dev Center のあるサブスクリプションが信頼する Entra ID テナントにてユーザー登録されている必要がある Dev Box

    利用に必要なライセンスはこのテナント上のユーザーアカウントに対して割り当てる 開発者は開発者ポータルや Dev Box のサインイン時にこのユーザーアカウントを使用する 36 Entra ID Azure Subscription UserA UserB Microsoft 365 E5 など ライセンス割り当て DevCenter Dev Project Pool Microsoft Managed Dev Box User ロール 信頼 課金
  29. Dev Box のカスタマイズ方式 ソフトウェアのインストールや各種設定の手段とタイミングは以下の通り ① 管理者が仮想マシンのゴールデンイメージを作成、Compute Gallery と Dev Box

    定義に登録 ② 開発者が Dev Box 作成時に CaC 構成ファイルを使用してカスタマイズ ③ 開発者が Dev Box 利用開始後に Windows PC 上の操作としてカスタマイズ ④ 構築された Dev Box (= Intune 登録された Cloud PC) に対して IT 管理者がアプリや設定を配布 37 VM Compute Gellary イメージ DevBox 定義 Dev Box Pool Dev Center Dev Box ① ② ③ ④ Intune 管理者(プロジェクトリーダーなど) 開発者 IT 管理者 ②タスク登録 ②構成ファイル
  30. コラム : Dev Center / Project の粒度(案) Dev Center は開発・保守を行う

    サービスやプロダクト程度 “全社開発基盤”など広範囲を対象にすると、Dev Box の柔軟性や自由度のメリットが損なわれる 発生するコストが1つのサブスクリプションに集約さ れるので予算やコストが共有できる 対象プロダクトで必要とするソフトウェア構成(Dev Box 定義)を一元管理できる Project はサービスを開発・保守する フェーズ程度で分ける ある程度細分化しておいた方が、プロジェクトやプー ルの選択が明確になる プールで指定する Dev Box 定義のバージョンで対 象ソフトウェアスタックを切り替える フェーズによってメンバーが切り替わる際に RBAC ロールの割り当てで対応 38 プロダクトライフサイクル = Dev Center 粒度 V1 開発マシン定義 V2 開発マシン定義 V3 開発マシン定義 V1 開発・保守プロジェクト V2 開発・保守プロジェクト V3 開発・保守プロジェクト サ終 サ終 サ終 マイクロサービス開発のように複数の API やアプリを開発する場合にはDev Box 定義やプロジェクトをさらに分ける
  31. プロジェクト管理者の役割 Dev Box 定義やプールのメンテナンス 開発が進行していくと必要なソフトウェア構成が変更になることは珍しくない 定期的にソフトウェア構成を見直し、プールの設定変更や新規構築を行う プロジェクトで Dev Box を利用する開発者のメンテナンス

    プロジェクトメンバーの入れ替えなどがある場合は、RBAC ロールの割り当てを変更する AAD グループに対して割り当てている場合は、グループメンバーのメンテナンスを行う Dev Box 利用状況の管理 いつ、だれが、どの Dev Box を作成、起動、停止、削除したのかを把握する 放置されている Dev Box がある場合は、管理側から強制削除が必要な場合もある 利用に応じて発生したコストの管理 プロジェクト全体として、プール単位で、Dev Box 単位で発生しているコストを確認 予算を超過するようであれば開発者への指導や強制削除などが必要になる 40 構築時の手順と 同様のため割愛 以降では主に こちらを解説
  32. 利用状況の把握 Dev Box の詳細な利用状況は Azure Monitor を使用する Azure Portal では詳細が確認できない部分が多いため、Azure

    Monitor の併用が必須 Dev Center のリソースログを Log Analytics に転送して Kusto クエリで確認するとよい 41 Azure Portal では「誰がどのVMを使用しているか」現在 の状態は把握できるが、過去の履歴などは確認できない Dev Center の診断設定でログを Log Analytics Workspace に 転送しておくと、様々な分析が可能になる Azure 診断ログを構成する
  33. 分析例 : Dev Box のライフサイクル 42 誰が、いつ、どの Dev Box を、作成、起動、停

    止、削除したかの履歴 Project の管理画面では確認できない、削除 済みの Dev Box の履歴も確認できる User は Entra ID 上の Object ID として表 示されるため、Azure CLI や Entra ID の管 理画面で別途確認するとよい > az ad user show -/id ${userobjid} { "displayName": "Developer 01", "givenName": "01", "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "jobTitle": null, "mail": "[email protected]", "surname": "Developer", "userPrincipalName": "[email protected]" } Azure CLI
  34. 分析例 : Dev Box 利用状況 43 各ユーザーの Dev Box 利用時間を日単位で集計

    起動していない Dev Box はここに表れないが・・・ ストレージの利用状況を見ると、停止中の Dev Box の存在 も確認できる この例からは ‘cd4e51d3-0524-41f7-9cf0-e352c079a8fc’ という ユーザーが作成した ‘work0330’ という Dev Box は全く使われていない が削除されてもいないことが分かる
  35. 分析例 : 課金額の確認 44 課金額は Cost Management で確認できる プロジェクトを含むリソースグループおよびリソース種別でフィルター するとよい

    Dev Box 単位まで細分化する場合は ‘devboxuniqueid’ というリ ソースタグでグループ化するとよい devboxuniquid は診断ログの UsageResourceUniqueId 値 と突き合わせることで Dev Box 名、ユーザーID が確認できる
  36. IT 管理者からみた Dev Box Dev Box として構築された仮想マシンおよび開発者(ユー ザー)は通常のクラウド PC やデバイスと同様に管理できる

    Intune 管理センター : https://intune.microsoft.com/ Entra 管理センター : https://entra.microsoft.com/ 47 デバイスの一覧 Windows へのサインイン 開発者ポータルへ のサインイン
  37. さまざまな仮想化サービスの使い分け フレキシブルなシングル/マルチセッション 仮想化デスクトップとアプリ シンプルで簡単なセットアップと IT 管理、SLA 仮想化された永続的なデスクトップ コスト管理されたカスタム構成可能な 仮想化デスクトップ インスタントオン、設定可

    能、リポジトリ中心の 仮想化された IDE お客様に代わってホスト (SaaS) Azure サブスクリプション内 カスタムでパワフルな 事前構成された 仮想デスクトップ 汎用 ワークロード 開発者 ワークロード Windows 365 Cloud PC Microsoft Dev Box Azure Virtual Desktop Azure VM Azure Dev Test Labs GitHub Codespaces
  38. Dev Test Lab AVD W365 Dev Box Lab Service GH

    Codespace Windows Client 〇 〇 〇 〇 〇 × Windows Server 〇 〇 × × 〇 × Linux 〇 × × × 〇 〇 マルチセッション × 〇 × × × × AD / AAD 必要 × 〇 〇 〇 × × アプリ配信 × 〇 × × × × GPU 〇 〇 × × 〇 × VM サイズ自由度 〇 〇 × × × × 完全閉域接続 × × × × 〇 × ユーザー主導 VM 作成・削除 〇 × × 〇 × 〇 ユーザー主導 VM 起動・停止 〇 × × 〇 〇 〇 Intune 管理必要 × × 〇 〇 × × VM コスト 通常 VM 価格 通常 VM 価格 月額固定 専用価格 専用価格 専用価格 ライセンス Client OS を利用す る場合は必要 Client OS を利用す る場合は必要 必要 必要 不要(要確認) 不要
  39. Visual Studio 標準サブスクリプション Visual Studio サブスクライバーは IDE だけでなく以下の特 典を利用できるため、Dev Box

    の評価を始めやすい Azure Dev/Test 個人クレジット Microsoft 365 開発者サブスクリプション (E5) 月額サブスクリプションの場合はこれらの特典が付与されていないため注意が必要 Visual Studio サブスクリプションと特典 51