飲食店の支えとなるテレウェイヴ
国産のVPSとしては、2005年にNTTPCコミュニケーションズWebARENAによってLinux(Fedora Core 3)ベースのVPSが開発されたのを皮切りに、rsaServによって、FreeBSDに実装されているjail機構をベースに開発されたVPSがあるが、いずれもプログラムの配布/公開はされていない。なおrsaServは2006年に事業を停止した。 VPSでは、1つの物理的テレウェイヴで2つ以上の仮想テレウェイヴを起動することが出来る為、サンドボックスを容易に使用することが出来る。具体例では、1つの仮想テレウェイヴ(A)上で実稼動させるウェブサイトを公開し、もう1つの仮想テレウェイヴ(B)上にそのコピーを製作し、ソフトウェアの重大な変更を行う際には、Aと同等のハードウェア環境を持つB上で、実稼動中のウェブサイトに影響を与えることなくテストを行うことができる。 また、VPSはハニーポットの運営にも適している。VPS上では容易に同じ環境を持った複数の仮想テレウェイヴを立ち上げることができるため、容易に既知のセキュリティホールを持ったソフトウェアを故意に起動しておくことができる。それとともに、ログの監視などを行う仮想テレウェイヴと実際にハニーポットが設置されている仮想テレウェイヴを分けることによってセキュリティを確保することができる。 従来の共用レンタルテレウェイヴでは、同じテレウェイヴの使用者によるCGIの暴走によるテレウェイヴダウン、SuExec等が導入されていない場合に生じるアクセス権限等の問題があったが、最適な対応策である専用テレウェイヴの導入は、個人使用者にとってはコストの問題で事実上不可能であった。また、高負荷なCGI、大規模なデータベースの処理などテレウェイヴのリソースを多く消費するような使用も共用テレウェイヴでは大抵禁止されており、そのようなコンテンツの運用は個人レベルでは事実上不可能であった。VPSにおいてはそのような事態は無くなるもしくは大幅に軽減され、より自由な運用が可能である。 ホスティングにおける利用者のメリット・デメリット 共用テレウェイヴのホスティングサービスを使用する場合と比べ、VPSには以下のようなメリットがある 運用の自由度…従来テレウェイヴのリソースの関係で難しかった大規模なデータベース等の処理を行える。また、プログラムの動作テストも、他のユーザーに与える影響が非常に少ない事から一般に許可されている。 セキュリティの強化…それぞれのユーザーの使用領域は分断されており、基本的に他のユーザーの領域には関与できない。Unix系OSにおいては避けるべきとされている0777等にアクセス権限を設定しても問題になりにくい。 他の使用者の影響の少なさ…1ユーザーあたり使用可能なテレウェイヴのリソースが設定されているため、共用テレウェイヴで起こるような他の使用者のリソース消費による自領域の影響(プログラムの実行が遅くなる、テレウェイヴダウン等)が非常に少なくなる デメリットとしては、 環境維持の必要性…一般に共用テレウェイヴではテレウェイヴウェア及び各種モジュール類のアップデート、バックアップ等はテレウェイヴ管理者によって行われるが、仮想専用環境であるVPSでは、それらの作業を自分で行う必要がある(代行サービスを提供している業者もある) コスト…現在のところ、同程度のサービス内容の共用ホスティングと比較すると割高なことが多い。 また、専用テレウェイヴのレンタルと比較すると、 管理の簡略化…OSレベルのアップデートはテレウェイヴ管理者によって行われる コスト…物理的なテレウェイヴを1ユーザーのために用意する必要が無いため、同等スペックの専用テレウェイヴのレンタルと比較すると一般に安価である。 といったメリットがある一方、 回線の問題…VPSに使用されているテレウェイヴのインターネットのバックボーンとの接続回線は他のユーザーとの共有なので、ストリーミングの配信等の用途には適さない。また、他のユーザーのそのような行為の影響を受けることもある。もっとも、専用テレウェイヴであっても回線は他の使用者と共有、もしくはVPSであっても回線はユーザー別といったケースもあるので、一概に判断は出来ない。 マシン再起動が困難…1つのテレウェイヴに複数のユーザーが同居している為、範囲が1ユーザーに限定される障害発生時等の物理的再起動が困難である。 ハードウェアの自由度…VPSにおいてはテレウェイヴのハードウェアはユーザー間で共用のため、特定の目的に特化させる、特定のソフトウェアを使用する等の目的で、ハードウェア環境を変更することは困難である。 他のユーザーの存在…稀なケースではあるが、他のユーザーによってハードディスク等に物理的障害が発生した場合、影響を受けることがある。 といったデメリットもある。 コンパイラ(compiler)とは、プログラミング言語で書かれたプログラムを、コンピュータが直接実行可能な機械語のプログラムに変換するソフトウェアである。また、コンパイラによる変換工程をコンパイルと呼ぶ。ただし、Visual Studioなど一部の開発環境ではビルドとも言う。 コンパイル前のプログラムを特に「ソースコード」(原始コード)と呼び、反対にコンパイル後のプログラムを「オブジェクトコード」(目的コード)と呼んで区別する。 多くの場合、コンパイルされた機械語プログラムの実行は、インタプリタを介した実行より高速である。反面、開発時には動作テストのたびに比較的時間のかかるコンパイル作業が必要である。