今回はアプリケーション開発だけでなく、Azureの試用にも便利な「Azure DevTes Labs」(DevTes Labs)について、紹介します。

DevTest Labsとは

DevTest Labsは、アプリケーション開発やテストのためにAzureのIaaS機能を活用できるカスタムラボ環境をAzure上に構築するサービスです。DevTest Labsのサービスを利用するために、追加のコストは必要なく、無料で利用できます(ラボ環境内で実行するAzure仮想マシンと関連リソースの使用については、通常のAzure仮想マシンと同じように課金されます)。

  • Azure“超”入門 第17回

    DevTest Labsは、追加コストなしで利用できるAzure IaaSの開発/テスト利用シナリオ向けサービス

なお、現在は「Azure Lab Services」という教育/トレーニング向けのラボ環境を提供するサービスがプレビュー提供中です。

プレビュー機能のため詳しくは説明しませんが、こちらはAzure DevTest Labsのカスタムラボ環境に対して、ラボの作成からクリーンアップまでが自動化されたマネージドラボ環境です。将来的に、DevTest LabsはAzure Lab Servicesの一部として統合される予定です。

Azureサブスクリプションの管理者(サインアップしたユーザー)やAzureサブスクリプションに付属する、または追加したAzure Active Directory(Azure AD)に作成した、必要なロール(役割)を持つユーザーはAzureポータルやAzure PowerShell、Azure CLIを使用してAzure IaaSを含むAzureのサービスのフル機能を利用することができます。

例えば、特定のユーザーやグループに、Azure IaaS上での仮想マシンのデプロイや実行、削除を許可することができます。

しかしながら、必要以上の許可を与えてしまわないように、適切にアクセス許可を構成するのは複雑な管理タスクですし、一部のユーザーが不適切あるは意図せず無駄にAzureのリソースを消費してしまい、コストがかさむことがないように、監視する必要もあります。

DevTest Labsを使用すると、Azureサブスクリプション管理者は開発やテストチーム、あるいは個人ユーザーごとにラボ環境を準備、提供することができ、割り当てられたユーザーは管理者に許可された範囲内でMarketplaceやカスタムイメージからの仮想マシンのデプロイ、実行、割り当て解除、削除といった操作をセルフサービスで実行することができます。

なお、ユーザーは自分が所有する(作成または要求した)仮想マシンを自由に操作でき、同じラボ内の他のユーザーの仮想マシンは参照できません。

  • Azure“超”入門 第17回

    DevTest Labsのラボ環境のイメージ

ラボを作成すると、ラボ環境ごとにクローズドな仮想ネットワークが自動構成され(オープンな構成も可能)、ユーザーがデプロイした仮想マシンはその仮想ネットワークに接続されます。

ユーザーは、このクローズドな仮想ネットワークに接続されたWindowsやLinux仮想マシンでアプリケーション開発(PaaSアプリケーションを含む)を行ったり、一時的に多数の仮想マシンをデプロイして、作成したアプリの負荷テストを実施したりできます。

Azureサブスクリプション管理者は、ラボ環境ごとに、ユーザーに作成を許可する仮想マシンのシリーズやサイズ、同時に存在可能な仮想マシンの最大数、ラボあたりの仮想マシンの最大数を指定したり、自動シャットダウンや自動開始のポリシーを強制したり、Azure Marketplaceへのアクセスを制限したり(すべて許可または指定したイメージのみを許可)できます。

カスタムイメージをアップロードしてラボ内、あるいはラボ間で共有させることもできます。仮想マシンの構成のテンプレート(事前設定された仮想マシンのプロパティ、DevTest Labsでは「数式」と呼ばれます)を作成しておけば、ユーザーは数クリックで適切な構成の仮想マシンをすばやくデプロイすることができます。

また、同一構成の仮想マシンを一括で事前に割り当て解除状態で作成してプールしておき、ユーザーが要求したときにデプロイし、解除したときにプールに戻すといったこともできます。

ラボ環境のユーザーにはMicrosoftアカウントの使用も可能

Azureサブスクリプション管理者は、Azure ADユーザーに「DevTest Labsユーザー」のロール(役割)を与えることで、ラボ環境の利用をそのユーザーに許可することができます。

Azure ADにゲストユーザーとして登録することで、エンドユーザー個人のMicrosoftアカウントに対して「DevTest Labsユーザー」のロールを与えることも可能です。

これらのユーザーは、Azureサブスクリプション契約は必要なく、Azureポータルにサインインして「DevTest Labs」ブレードの自分のラボにアクセスすることができます。

そして、通常の「Virtual Machines」ブレードで操作するよりも、簡単な操作でMarketplace内のイメージ、数式(テンプレート)、カスタムイメージから仮想マシンをデプロイしたり、作成済み(割り当て解除)仮想マシンの所有を要求したりできます。

  • Azure“超”入門 第17回

    Azure ADにゲストユーザーとして登録することで、エンドユーザー個人のMicrosoftアカウントに対して「DevTest Labsユーザー」のロールを与えることも可能

Azure初心者のための学びの場としても最適

DevTest Labsのラボ環境での仮想マシンのデプロイ操作は、通常の方法で仮想マシンを展開するよりも少ないステップですばやく実行できます。

Azureサブスクリプション管理者はすべてのサイズ、すべてのAzure Marketplaceのイメージを許可することもできますが、これらを制限することで不必要に大きなサイズの指定による無駄なコスト増を抑制できる一方で、ユーザーは膨大な数のサイズやイメージから選択するのに悩む必要がなくなります。

何よりも、通常の仮想マシンのデプロイの場合はリソースグループやストレージアカウント、仮想ネットワークなどを考慮しながら構成する必要がありますが、DevTest Labsでは複雑な部分はユーザーから隠され、自動作成されるようになっていますし、削除時のクリーンアップも自動的に行われます。

また、指定した時刻になると自動シャットダウンするように強制できるので、必要がないのに実行したままでコスト増になってしまうリスクを回避することもできます。

DevTest Labsは、Azure IaaSを始めたばかりのユーザー個人(つまり、Azureサブスクリプション管理者自身)が、Azure IaaSに慣れるまでの実験場所として利用するのに最適かもしれません。

通常の方法ですぐにAzure IaaSを始めてしまうと、不要なリソースグループやストレージアカウントが大量に作成されてしまったり、不適切な削除操作でもはや使用されていないリソースが残留してしまったりします。

DevTest Labsでは、ラボ環境ごとに1つのリソースグループを必要としますが、ラボ環境内でのリソースグループの作成やリソースの作成、削除はすべて自動で行われるため、Azureサブスクリプションの環境をクリーンな状態に維持するのに役立つでしょう。

筆者はWindows ServerやWindows Enterpriseクライアント(MSDNサブスクリプションで利用可能)の新バージョンの評価や新旧バージョンの動作確認テストのために、DevTest Labsのラボ環境を活用しています。その理由はデプロイとクリーンアップが簡単なことにあります。

DevTest Labsのラボ環境で仮想マシンに対して実行できる操作や構成可能な機能は限られていますが、DevTest Labsのラボ環境にデプロイした仮想マシンは、通常の「Virtual Machines」ブレードからも完全に操作できるためDevTest Labsでカバーされない機能についても不自由することはそれほどありません。その点を含め、次回はDevTest Labsの機能について具体的に紹介します。

著者プロフィール

山市良
Web媒体、IT系雑誌、書籍を中心に執筆活動を行っているテクニカルフリーライター。主にマイクロソフトの製品やサービスの情報、新しいテクノロジを分かりやすく、正確に読者に伝えるとともに、利用現場で役立つ管理テクニックやトラブルシューティングを得意とする。2008年10月よりMicrosoft MVP - Cloud and Datacenter Management(旧カテゴリ: Hyper-V)を連続受賞。ブログはこちら。

主な著書・訳書
「インサイドWindows 第7版 上」(訳書、日経BP社、2018年)、「Windows Sysinternals徹底解説 改定新版」(訳書、日経BP社、2017年)、「Windows Server 2016テクノロジ入門 完全版」(日経BP社、2016年)、「Windows Server 2012 R2テクノロジ入門」(日経BP社、2014年)などがある。