Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
Azure TIPS

Azure TIPS

VM Depotを利用して素早く開発環境を構築するには?

2014年10月24日

LAMP環境やRuby Stackなどの多数のイメージが用意されている「VM Depot」を利用して、Linuxなどの仮想マシン環境を手軽に構築する方法を説明する。

Microsoft Student Partners Fellow 谷口 慈行
  • このエントリーをはてなブックマークに追加

 仮想マシンを利用する際、特に、Linuxを仮想マシンで利用する際には、LAMP環境やRubyの環境を用意してから利用することが多いだろう。また、特定の開発環境を仮想マシンで用意することは、Microsoft Azureのよくある利用ケースの1つである。

 しかし、OSイメージを展開し、一から環境を整えるのは手間である。インフラ構築の自動化が行えるChefなどを利用して環境を整えるのも1つの解決策であるが、本稿ではVM Depotを利用してすでに環境の整ったイメージを展開して仮想マシンを用意する手法を紹介する。

VM Depot

 VM Depotとは、コミュニティ駆動のOSイメージカタログであり、ユーザーがOSイメージを投稿したり、Azureへのデプロイ用スクリプトを取得したりできる。VM Depotには、(冒頭でも紹介した)LAMP環境やRuby Stackをはじめ、FeeBSDやWordPress、Drupalなど、多数のイメージがあるため、多くの場合で必要な環境を素早く整えることが可能だ。

準備

 VM Depotでは、イメージから仮想マシンを作成する際にはAzure Cross-Platform Command-Line Interface(以下、Azure CLIと表記する)の利用を強く勧める。Azure CLIは、Azureをコマンドラインから操作できるコマンドラインツールである。

 Azure CLIはNode.jsで動作するため、導入の前にNode.js環境をAzure利用者のPCクライアント側に用意しておく必要がある(本稿の趣旨から外れるので、インストール方法の説明は割愛する)。これには、次のコードをターミナル(Mac)やコマンドプロンプト(Windows)で実行すればよい。

コンソール
$ npm install -g azure-cli
$ azure -v
0.8.10
リスト1 Azure CLIのインストールと、インストール後のバージョンチェック

2014年10月現在での最新バージョンは0.8.10である。

 Azure CLIを利用するには、Azureのサブスクリプション情報をインポートする必要がある。サブスクリプションファイルは、Azureポータルサイトからダウンロードできる。次のコマンドで、ダイレクトにダウンロードページが表示され、そこからダウンロードできる。

コンソール
$ azure account download
リスト2 サブスクリプションファイルのダウンロード

表示されたポータルサイトからサブスクリプションを選択し、ダウンロードする。

 次に、ダウンロードしたサブスクリプションファイルをインポートする(リスト3)。

コンソール
$ azure account import <ダウンロードしたサブスクリプションファイルのパス>
リスト3 サブスクリプションファイルのインポート

 これでAzure CLIを利用する準備が整う。

VM Depotでイメージを検索

 さて、Azure CLI環境が整ったところで、VM Depotで使用したいVMイメージを探す。

 今回は、Rubyの環境を整えるため、サイト上の検索ボックスに「Ruby」と入力し、検索する(図1)。

図1 VM Depotサイト上でVMイメージを検索

赤枠で示した検索ボックスに「ruby」と入力し、検索する。

 検索後、結果として、Rubyがインストールされたイメージファイルがリストアップされる。今回はBitnami氏が公開している、Ubuntu 14.04RubyRuby on RailsPhusion Passengerなどがインストールされた「Ruby Stack 2.1.3-0-dev-r01 (Ubuntu 14.04)」イメージを利用する。

 イメージを選択すると、背景がグレーになり、[DEPROYMENT SCRIPT]ボタンがクリックできるようになる(図2)。

図2 検索結果ページで、使いたいVMイメージを選択して、デプロイスクリプトを取得
  • 1 [Ruby Stack 2.1.3-0-dev-r01 (Ubuntu 14.04)]を選択する。
  • 2 [DEPLOYMENT SCRIPT]ボタンをクリックする。
図3 免責事項

[DEPLOYMENT SCRIPT]ボタンをクリックすると、Microsoft Open Technologies, Inc.によるライセンスによって提供されている旨とSLA可用性が得られない可能性がある旨についての免責事項が表示される。同意できる場合は、[I Agree]ボタンをクリックして了承する。

図4 デプロイスクリプトの取得
  • 1 デプロイ先のリージョンを選択する。
  • 2 デプロイスクリプトをコピーする。

 テキストボックス内のスクリプトをコピーし、シェルで実行する(リスト4)。DNS_PREFIX(=Azure仮想マシンの名前にもなる。本稿の例では「iwate-ruby」とした)、USER_NAME(=仮想マシンで新規作成されるユーザーの名前)、PASSWORD(=新規作成されるユーザーパスワード。ユーザー名と合わせて忘れないようにしておく)には、任意ものを入力する。--sshオプションを付けて、SSH用の22番ポートを解放する。なお、図4にある[other_options](=その他のオプション)の指定を今回は省略するが、指定可能なオプションについてはこちらのページを参照してほしい。

コンソール
$ azure vm create DNS_PREFIX -o vmdepot-46807-1-64 -l "Japan East" USER_NAME PASSWORD --ssh
$ azure vm list
info:    Executing command vm list
+ Getting virtual machines
data:   Name        Status     Location    DNS Name                 IP Address
data:   ----------  ---------  ----------  -----------------------  ------------
data:   iwate-ruby  ReadyRole  Japan East  iwate-ruby.cloudapp.net  100.72.68.28
info:   vm list command OK
リスト4 仮想マシンの作成

先ほどコピーしたデプロイスクリプトを実行する。DNS_PREFIXUSER_NAMEPASSWORDには任意のものを入力する。

 デプロイ完了後、azure vm listコマンドで仮想マシンの一覧(表形式で出力される)を取得し、デプロイした仮想マシンの状態を確認する。その[Status]列が「ReadyRole」であれば、その仮想マシンは利用できる状態になっている。

 ReadyRoleになった後、[DNS Name]列の値で示される接続先(本稿の例なら「iwate-ruby.cloudapp.net」)に、先ほど入力したユーザー名とパスワードを用いて、SSHクライアント(Macならターミナル、WindowsならRLoginなど)からログインすると、Ruby環境が整ったUbuntuが作成されていることが確かめられる(図5)。このようにVM Depotを使えば、すぐに作業が始められる。

図5 作成した仮想マシンへのSSHログイン

Ruby Stackを展開した仮想マシンであるため、Ruby on Railsの開発すぐに始められる。

補足

 本稿で紹介したようにAzure CLIを使わず、現行のポータルサイト新ポータルサイト上でも、VM Depotのイメージを利用して仮想マシンを作成することは可能だ。特に新ポータルサイトでは、仮想マシンのギャラリーにVM Depotのイメージが並ぶ(図6)。しかし、今のところ、両ポータルサイトでは検索を行えないため、VM DepotのWebページから利用する方が、望むイメージが早く見つかる。

図6 新ポータルサイト

[Virtual machines]のギャラリー(=デフォルトでは左下に配置されている[Azure gallery]パネルをクリックすると表示できる)には、[VM Depot]のイメージ一覧が表示される。

図7 現行ポータルサイト

現行のポータルサイトからもVM Depotのイメージを取得することができる。具体的には、左のメニューから[仮想マシン]を開いて、中央ページ上部の[イメージ]タブをクリックし、その下に表示されるページで[VM DEPOT の参照]リンクをクリックすればよい。

まとめ

 すでに用意されたOSイメージを利用することで、必要な開発環境をすぐに用意できる。特にVM Depotには、Ruby StackやLAMP環境、CouchDBなどさまざまなOSイメージが登録されているため、開発環境の構築には便利である。

 また、VM DepotにはユーザーがOSイメージをアップロードすることもできるため、もしよく利用する構成があれば、アップロードしてシェアするのがよいだろう。

※以下では、本稿の前後を合わせて5回分(第4回~第8回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

Azure TIPS
4. Azure Webサイトにカスタムドメインを設定するには?

Microsoft Azure Web Sitesで独自ドメイン名を適用する方法を説明する。CNAMEレコードだけでなく、wwwなしのネイキッドドメインが実現可能なAレコード(IPアドレス)も指定できる。

Azure TIPS
5. Azure Webサイトをバックアップするには?

Azure Webサイトでは、Webサイトとデータベースをバックアップ/復元するための機能が提供されている。その機能の基本的な使い方を解説する。

Azure TIPS
6. 【現在、表示中】≫ VM Depotを利用して素早く開発環境を構築するには?

LAMP環境やRuby Stackなどの多数のイメージが用意されている「VM Depot」を利用して、Linuxなどの仮想マシン環境を手軽に構築する方法を説明する。

Azure TIPS
7. Traffic Managerを利用してAzure Webサイトへの負荷を分散するには?

Traffic Managerを使えば、単体のWebサイトのインスタンス数を増やす方法よりも高度な負荷分散が実現できる。3種類の負荷分散方法のうち「パフォーマンス」の方法を説明。

Azure TIPS
8. Azure WebsitesのWebホスティングプランを変更するには?(+使い分け指針)

Azure Websitesの無料/共有/基本/標準というホスティングプランはどれを選択すればよいのか? またその選択方法を説明する。

サイトからのお知らせ

Twitterでつぶやこう!