仮想アプライアンス

仮想アプライアンス（かそうアプライアンス、）は、Parallels、VMware、Xen、Microsoft Virtual PC、QEMU、User Mode Linux、CoLinux、Virtual Iron、VirtualBoxといった仮想化技術の上で動作するよう設計された最小仮想機械イメージである。
概要.
仮想アプライアンスは、より広い意味を持つソフトウェアアプライアンスの一種である。ソフトウェアアプライアンスと同様、仮想アプライアンスは各種ソフトウェアを組み合わせたシステムを利用する際のインストール、設定、保守といった手間をなるべく省くようになっている。
仮想アプライアンスと仮想機械の概念上の大きな違いは、仮想アプライアンスではアプリケーションとオペレーティングシステム環境を事前にインストールして設定した状態であるのに対して、仮想機械はそれ単体ではアプリケーションを含まない点である。
一般に仮想アプライアンスは内部の設定をするためのウェブインタフェースを持つ。1つの仮想アプライアンスは通常、1つのアプリケーションを実行するもので、ネットワークアプリケーションの新たな配布方式となっている。
例えば、Wikipedia で使われている MediaWiki は仮想アプライアンスとしても利用可能である。このアプライアンスには全ての必要なソフトウェアが含まれており（オペレーティングシステム、データベース、MediaWiki）、インストール作業をブラックボックス化している。
グリッド・コンピューティングとの関係.
仮想化はグリッド・コンピューティングにおける重要な問題を解決する。すなわち、ある程度大規模なグリッドは必然的に多種多様なハードウェアとオペレーティングシステムで構成されるという問題である。そこで仮想アプライアンスを使えば、グリッドのノードのプロビジョニングを劇的に迅速にでき、重要な点として、アプリケーションに関する知識を仮想アプライアンスにカプセル化することで、利用者とグリッドオペレータをきれいに切り離すことが可能となる。アルゴンヌ国立研究所はこの分野で重要な役割を果たした。グリッド・コンピューティング向けの仮想アプライアンスとしては、フロリダ大学が開発したものなどがある。
Software as a Service (SaaS) との関係.
サービス配備のプラットフォームとして仮想化が重視されるようになり、仮想アプライアンスは従来型のアプリケーションを Software as a Service (SaaS) モードで配備できるよう素早く変換する手段となる。このとき、マルチテナント化というアプリケーションのアーキテクチャ上の大きな変更は不要である。アプリケーションスタックからハードウェアとオペレーティングシステムを切り離すことで、仮想アプライアンスはある種の単純さによって利用できる範囲を拡大可能にした。Salesforce.com が推進してきた従来型の SaaS では、アプリケーションに大幅な変更を加え、ソフトウェアスタックを複雑化することで、共通基盤で動作するようにしていた。
SaaS としての仮想アプライアンスの具体例として、Amazon Elastic Compute Cloud (EC2) がある。これは、Xen ハイパーバイザのグリッドのノードと、Amazon Machine Image format で予めパッケージ化された仮想アプライアンスを組み合わせて使うものである。Amazon EC2 はコスト障壁を低減し、SaaS ソリューションの顧客に仮想アプライアンスのインスタンスを共有させるのではなく、顧客毎に専用の仮想アプライアンスのインスタンス（群）を使えるようにした。EC2以前には、多くのASPはシングルテナントモデルを採用していて、コストが高くつくという問題を抱えていた。
さらに、SaaS へのマルチテナント的アプローチとは対照的に、仮想アプライアンスは動作中アプリケーションへのローカルなネットワークアクセスを必要とする顧客やサードパーティのホスティングモデルではセキュリティ要求が合わないという顧客にも対応できる。仮想化技術が前提であるため、仮想アプライアンスのインスタンスは物理的な実行環境間を素早く移動できる。従来型の SaaS では、アプリケーションは特定のホスト上に固定されている。