Azure TIPS
VM Depotを利用して素早く開発環境を構築するには?
LAMP環境やRuby Stackなどの多数のイメージが用意されている「VM Depot」を利用して、Linuxなどの仮想マシン環境を手軽に構築する方法を説明する。
仮想マシンを利用する際、特に、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
|
2014年10月現在での最新バージョンは0.8.10である。
Azure CLIを利用するには、Azureのサブスクリプション情報をインポートする必要がある。サブスクリプションファイルは、Azureポータルサイトからダウンロードできる。次のコマンドで、ダイレクトにダウンロードページが表示され、そこからダウンロードできる。
$ azure account download
|
表示されたポータルサイトからサブスクリプションを選択し、ダウンロードする。
次に、ダウンロードしたサブスクリプションファイルをインポートする(リスト3)。
$ azure account import <ダウンロードしたサブスクリプションファイルのパス>
|
これでAzure CLIを利用する準備が整う。
VM Depotでイメージを検索
さて、Azure CLI環境が整ったところで、VM Depotで使用したいVMイメージを探す。
今回は、Rubyの環境を整えるため、サイト上の検索ボックスに「Ruby」と入力し、検索する(図1)。
検索後、結果として、Rubyがインストールされたイメージファイルがリストアップされる。今回はBitnami氏が公開している、Ubuntu 14.04にRubyやRuby on Rails、Phusion Passengerなどがインストールされた「Ruby Stack 2.1.3-0-dev-r01 (Ubuntu 14.04)」イメージを利用する。
イメージを選択すると、背景がグレーになり、[DEPROYMENT SCRIPT]ボタンがクリックできるようになる(図2)。
- 1 [Ruby Stack 2.1.3-0-dev-r01 (Ubuntu 14.04)]を選択する。
- 2 [DEPLOYMENT SCRIPT]ボタンをクリックする。
[DEPLOYMENT SCRIPT]ボタンをクリックすると、Microsoft Open Technologies, Inc.によるライセンスによって提供されている旨とSLA可用性が得られない可能性がある旨についての免責事項が表示される。同意できる場合は、[I Agree]ボタンをクリックして了承する。
テキストボックス内のスクリプトをコピーし、シェルで実行する(リスト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
|
先ほどコピーしたデプロイスクリプトを実行する。DNS_PREFIX
、USER_NAME
、PASSWORD
には任意のものを入力する。
デプロイ完了後、azure vm list
コマンドで仮想マシンの一覧(※表形式で出力される)を取得し、デプロイした仮想マシンの状態を確認する。その[Status]列が「ReadyRole」であれば、その仮想マシンは利用できる状態になっている。
ReadyRoleになった後、[DNS Name]列の値で示される接続先(本稿の例なら「iwate-ruby.cloudapp.net」)に、先ほど入力したユーザー名とパスワードを用いて、SSHクライアント(Macならターミナル、WindowsならRLoginなど)からログインすると、Ruby環境が整ったUbuntuが作成されていることが確かめられる(図5)。このようにVM Depotを使えば、すぐに作業が始められる。
補足
本稿で紹介したようにAzure CLIを使わず、現行のポータルサイトや新ポータルサイト上でも、VM Depotのイメージを利用して仮想マシンを作成することは可能だ。特に新ポータルサイトでは、仮想マシンのギャラリーにVM Depotのイメージが並ぶ(図6)。しかし、今のところ、両ポータルサイトでは検索を行えないため、VM DepotのWebページから利用する方が、望むイメージが早く見つかる。
[Virtual machines]のギャラリー(=デフォルトでは左下に配置されている[Azure gallery]パネルをクリックすると表示できる)には、[VM Depot]のイメージ一覧が表示される。
現行のポータルサイトからもVM Depotのイメージを取得することができる。具体的には、左のメニューから[仮想マシン]を開いて、中央ページ上部の[イメージ]タブをクリックし、その下に表示されるページで[VM DEPOT の参照]リンクをクリックすればよい。
まとめ
すでに用意されたOSイメージを利用することで、必要な開発環境をすぐに用意できる。特にVM Depotには、Ruby StackやLAMP環境、CouchDBなどさまざまなOSイメージが登録されているため、開発環境の構築には便利である。
また、VM DepotにはユーザーがOSイメージをアップロードすることもできるため、もしよく利用する構成があれば、アップロードしてシェアするのがよいだろう。
※以下では、本稿の前後を合わせて5回分(第4回~第8回)のみ表示しています。
連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。
4. Azure Webサイトにカスタムドメインを設定するには?
Microsoft Azure Web Sitesで独自ドメイン名を適用する方法を説明する。CNAMEレコードだけでなく、wwwなしのネイキッドドメインが実現可能なAレコード(IPアドレス)も指定できる。
5. Azure Webサイトをバックアップするには?
Azure Webサイトでは、Webサイトとデータベースをバックアップ/復元するための機能が提供されている。その機能の基本的な使い方を解説する。
6. 【現在、表示中】≫ VM Depotを利用して素早く開発環境を構築するには?
LAMP環境やRuby Stackなどの多数のイメージが用意されている「VM Depot」を利用して、Linuxなどの仮想マシン環境を手軽に構築する方法を説明する。
7. Traffic Managerを利用してAzure Webサイトへの負荷を分散するには?
Traffic Managerを使えば、単体のWebサイトのインスタンス数を増やす方法よりも高度な負荷分散が実現できる。3種類の負荷分散方法のうち「パフォーマンス」の方法を説明。
8. Azure WebsitesのWebホスティングプランを変更するには?(+使い分け指針)
Azure Websitesの無料/共有/基本/標準というホスティングプランはどれを選択すればよいのか? またその選択方法を説明する。