仮想化環境で開発するときに知るべきことは何か?
Xenによる複数の開発環境構築
Xenによるサーバ仮想化の恩恵は、既存のサーバの統合だけにみられるわけではありません。例えば開発環境の構築においてもXenはその力を発揮し ます。もちろん、Xenのような仮想化技術を使わずとも複数のサーバを用意したり、リムーバブルHDDケースのようなものを利用してHDDを差替える…と いった方法でも複数の開発環境を持つことはできますが、Xenを利用することによる手軽さは比較するまでもないでしょう。
さて、Xenを利用する場合、仮想サーバのディスクをLogical Volume Manager(LVM)やディスクイメージの形で設定することが多いと思います。パフォーマンスの面からもLVMを利用した仮想ディスクでの運用をお勧 めします。どちらにしても簡単に仮想ディスクのコピーをとることができる点が特徴です。
これはバックアップが簡単に取れるということだけでなく、同じ環境を簡単に作ることができるということでもあります。従来にない使い勝手のよい開発環境を用意することができます。
もちろん、Xenを使えばすべての問題が解決するというわけではありません。WindowsやGUIを必要とするような開発環境はそもそもXenに は向きません。それ以外にも、ある程度のリソースが必要となるような場合、特にメモリに対する要求がきびしい場合には仮想化をするメリットはあまりないで しょう。また、テスト環境として利用するにはいろいろな条件をそろえるのが大変な場合もあるかもしれません。
WindowsやGUIを必要とするような開発の場合には、XenではなくVMwareのような仮想化ソリューションを選択することが可能ですが、ここではXenを利用した開発環境構築について説明したいと思います。
複数の開発環境を構築する上での注意点
まずは複数の開発環境を構築する上での注意点をあげたいと思います。それは下記の3つがあげられます。
- サーバのリソース管理
- IPアドレスの割り振りのルール
- 開発体制の整備
サーバのリソース管理をどのようにして行うか
必ず決めておかなければならない基本的なこととして、「サーバのリソース管理をどのようにして行うか」ということがあげられます。メモリやディスク 容量などの割り振りには注意しないと、いざというときにメモリ不足で仮想サーバが追加できない…ということにもなりかねません。
もっとも、現在のPCスペックだとXenを利用可能なスペックのサーバは比較的簡単に用意することができるでしょう。開発するアプリケーションの規 模にもよりますが、ほとんどの場合1台の仮想サーバにはメモリは256MB、ディスク容量は4GB程度の割り当てで十分ではないかと思います。
このスペックでも1台のサーバに7つの仮想サーバ(2GBメモリのサーバを利用した場合)を利用可能です(ディスク容量はディスクイメージをそのままDVDにバックアップが取れる4GB程度にするのがお勧めです)。
IPの割り振りも含めたルール
Webアプリケーションの開発ではIPの割り振りも含めたルール作りが必要となりますので、DHCPを利用した動的なIP割り当てや、グループごと に利用可能なIPアドレスを割り振ったりといったことが必要になります。またイントラネット外からのアクセスが必要な場合にはプロキシの利用も視野に入れ なければならないかもしれません。
分散化を考慮した開発体制の整備
そして最も大切なのが分散化を考慮した開発体制の整備です。Subversionを利用した履歴管理や最近話題のTracを利用した進捗管理も有用 でしょう。また比較的負荷の高いデータベースに関しては、共用利用のデータベースサーバを用意することで大量のデータや同時アクセス時の検証なども行いや すくなります。
Xenを利用することで仮想サーバは簡単に増設することができますが、開発体制やIPアドレスの問題はなかなか解決することが難しいので、できる限り早い段階でポリシーを決めておいたほうがよいでしょう。