性能の異なる仮想マシン上で稼動する第1および第2のデータベースを備え、外部からの指示に応じて、システムが利用している仮想マシンを入れ替え、システムの性能をスケールアップ及びスケールダウンさせる方法であって、前記システムが、前記データベースが備えるストリーム型レプリケーション機能を用いて前記データベースのデータ同期をとる第1のステップと、データ同期確立後に、SQL文を転送する仮想マシンを他の仮想マシンに切り替える第2のステップと、を備えることを特徴とするスケールアップ及びスケールダウン方法。性能の異なる仮想マシン上で稼動する第1および第2のデータベースを備え、外部からの指示に応じて、システムが利用している仮想マシンを入れ替え、システムの性能をスケールアップ及びスケールダウンさせるデータベースシステムであって、前記データベースが備えるストリーム型レプリケーション機能を用いて前記データベースのデータ同期をとる第1の手段と、データ同期確立後に、SQL文を転送する仮想マシンを他の仮想マシンに切り替える第2の手段と、を備えることを特徴とするデータベースシステム。本発明は上記のような問題に鑑みなされたもので、その目的は、IaaSなどで提供される仮想マシンインスタンス上等で動作する、ストリーム型レプリケーション機能を持つRDBMSのスケールアップ及びダウンを、そのストリーム型レプリケーション機能を活用し、Webサービスを止めることなく動的に、かつ低コストでインスタンスの入れ替えを行うことで実現する方法及びシステムを提供することにある。上記目的を達成するために、本発明に係る方法は、性能の異なる仮想マシン上で稼動する第1および第2のデータベースを備え、外部からの指示に応じて、システムが利用している仮想マシンを入れ替え、システムの性能をスケールアップ及びスケールダウンさせる方法であって、前記システムが、前記データベースが備えるストリーム型レプリケーション機能を用いて前記データベースのデータ同期をとる第1のステップと、データ同期確立後に、SQL文を転送する仮想マシンを他の仮想マシンに切り替える第2のステップと、を備えることを特徴とする。また、本発明に係るシステムは、性能の異なる仮想マシン上で稼動する第1および第2のデータベースを備え、外部からの指示に応じて、システムが利用している仮想マシンを入れ替え、システムの性能をスケールアップ及びスケールダウンさせるデータベースシステムであって、前記データベースが備えるストリーム型レプリケーション機能を用いて前記データベースのデータ同期をとる第1の手段と、データ同期確立後に、SQL文を転送する仮想マシンを他の仮想マシンに切り替える第2の手段とを備えることを特徴とする。本発明によれば、RDBMSが持つストリーム型レプリケーション機能を用いてDBデータ同期を行い、同期が出来次第プロキシがSQL文を転送するRDBMSを変更することによりインスタンスを入れ替えるため、Webサービス等で利用されているRDBMSを、Webアプリケーションケーション及びそれにより提供されるサービスを止めることなく、動的に、かつ短時間及び低コストでスケールアップ及びダウンすることができる。以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。図1は、本発明の実施の形態を示すシステム構成図である。本実施形態のシステムは、IaaS100上の仮想マシンサービスを用いたインスタンス群とストレージサービスを用いたストレージ群で構成される。IaaS100上には、Webアプリケーション用インスタンス110、コントロールプロキシ用インスタンス120、DBシステムA130を構成するDBMS用インスタンスA140とデータを保管するストレージA150、DBシステムB160を構成するDBMS用インスタンスB170とデータを保管するストレージB180が配置されている。Webアプリケーション用インスタンス110には、Webアプリケーション111及びそれを動作させる一連のプログラムが配置されている。このWebアプリケーション111は、RDBMSの代わりに後述のコントロールプロキシ用インスタンス120上の制御プロキシ部122にSQL文を発行し、その結果を受け取る。コントロールプロキシ用インスタンス120には、コントロール部121及び制御プロキシ部122が配置されている。コントロール部121は、RDBMSのスケールUP/DOWNを行う管理者の要求に応じ、スケールUP/DOWNに必要となるインスタンスの起動停止や、インスタンス上のRDBMSの起動停止、制御プロキシ部122のコントロール等を行う。制御プロキシ部122は、Webアプリケーション111から受けたSQL文を、Webアプリケーション111の代わりに後述するDBシステムA130やDBシステムB160に転送し、その結果を受けてWebアプリケーション111に返したり、コントロール部121の要求に応じて、DBシステムA130やDBシステムB160へのSQL文転送を一時中断したり、SQL文を転送するDBシステムを切り替えたりする。DBシステムA130及びDBシステムB160は、入れ替え元及び入れ替え先となるDBシステムである。どちらも同じ構成となっており、DBMS用インスタンスA140及びDBMS用インスタンスB170には、ストリーム型複製処理部142及び172を内蔵し、ストリーム型レプリケーション機能を持つRDBMS-A141、RDBMS-B171が各々配置されている。また、ストレージA150及びストレージB180には、RDBMS-A141及びRDBMS-B171が各々利用するDBデータA151及びDBデータB181が配置されている。以下では、入れ替え開始時点で利用されている入れ替え元をDBシステムA130、入れ替え終了時に利用されている入れ替え先をDBシステムB160として説明する。ここで、入れ替え処理を説明する前に、入れ替え開始前の状態を図2で説明する。入れ替え開始前の状態では、DBシステムA130が利用され、DBMS用インスタンスB170は稼動していない。入れ替え開始前の状態では、Webアプリケーション111が発行したSQL文は、黒矢印201で示すように、コントロールプロキシ用インスタンス120の制御プロキシ部122に送られる。制御プロキシ部122は、黒矢印202で示すように、全てのSQL文を、DBMS用インスタンスA140のRDBMS-A141に転送する。RDBMS-A141はストレージA150のDBデータA151を用いてSQL文を処理し、その結果を、制御プロキシ部122を経由して、Webアプリケーション111に返答する。また、詳細は後述するが、制御プロキシ部122では、Webアプリケーション111からの接続セッションにおいて、トランザクション開始及び終了を識別する。次に、入れ替え処理の概要フローを図3に示す。入れ替え処理は、コントロール部121がRDBMSのスケールUP/DOWNを行う管理者から要求を受けた後、入れ替え準備処理ステップ301、DBシステム切り替え処理ステップ302、入れ替え後処理ステップ303の3つのフェーズで行う。以後、この順序で詳細な処理を説明する。入れ替え準備処理ステップ301の詳細な処理を図4のフローチャートに示す。まず、コントロールプロキシ用インスタンス120上のコントロール部121は、ストレージB180に接続した状態で、DBMS用インスタンスB170を起動するステップ401。そして、RDBMS-A141及びDBMS用インスタンスB170を操作し、DBMS用インスタンスB170上に、ストリーミング型レプリケーション機能を有効にした形で、RDBMS-B171を起動するステップ402。これは、既存技術であり、たとえばpostgreSQL90以降では、前記の非特許文献2に示される方法で実現できる。これにより、図5の501の矢印で示されるようにDBデータの同期が開始されるステップ403。ここで、DBデータB181には、以前の入れ替え時前までのDBデータが残っているため、以前の入れ替え時以降に行われた更新データのみ反映させれば良く、全てのDBデータをコピーする必要は無い。また、この同期は、ストリーミング型レプリケーション機能を用いているため、データ同期中に、黒矢印202で更新系のSQL文が発行され、DBデータA151が更新された場合でも、一定のタイムラグの後、自動的にDBデータB181に反映される。最後に、制御プロキシ部122にDB切り替え要求を行うステップ404。次に、DBシステム切り替え処理ステップ302の説明を行う前に、制御プロキシ部122の動作概要を図6で説明する。制御プロキシ部122は、一般的なプロキシと同様に、管理を行うメイン処理部601と、接続セッション毎のSQL文プロキシ処理を行う複数のセッション処理部602から構成される。メイン処理部601は、接続要求を受け、その接続に対応するセッション処理部602を割り当てる処理や、後述するDB切り替え処理におけるメイン処理を行うものである。セッション処理部602は、Webアプリケーションケーション111からの接続セッションで処理要求されたSQL文を、後述する処理フローに従い、メイン処理部601で定められたRDBMSに転送し、その結果を受けてWebアプリケーションケーション111に返すものである。次に、DBシステム切り替え処理ステップ302におけるメイン処理部601の処理フローを図7に示す。また、DBシステム切り替え処理ステップ302時を含むすべての場合のセッション処理部602の処理フローで図8に示す。メイン処理部601は、ステップ404でコントロール部121からDB切り替え要求を受けると、全てのセッション処理部602に対して、処理中断指示を行うステップ701。そして、後述するセッション処理部602の処理フロー図8により、各セッション処理部602から処理中断したことの報告を受け、全てのセッション処理部602で処理中断されたかをチェックするステップ702。全てのセッション処理部602で処理中断されていない場合は、一定期間、例えば数秒の中断待ちを行いステップ703、再度ステップ702のチェックを行う。ステップ702において、全てのセッション処理部602で処理中断が確認できた場合は、次にRDBMS-A141及びRDBMS-B171の機能を用いてデータ同期が終了しているか、同期されていないSQL文処理が無いかを確認するステップ704。postgreSQLの場合、例えば非特許文献2に示されている方法で、ストリーミングレプリケーション機能の状態確認を行ことで同期を確認できる。ステップ704においてデータ同期が終了していない場合は、一定期間、例えば数秒の同期待ちを行い、再度ステップ704のチェックを行う。ステップ704において、データ同期が終了していた場合は、各セッション処理部602がSQLを転送するRDBMSを、RDBMS-A141からRDBMS-B171に変更するステップ706。そして、各セッション処理部602に処理再開指示を行うステップ707。次に、DBシステム切り替え処理を含むすべての場合のセッション処理部602の処理を、図8を用いて説明する。メイン処理部601から各々の接続セッションに割り当てられたセッション処理部602は、まずWebアプリケーションケーション111からの要求が、接続セッションの終了要求かどうかをチェックするステップ801。もし、接続セッションの終了要求であれば、そのまま処理を終了する。しかし、接続セッションの終了要求でなければ、SQL文を受信するステップ802。次に、メイン処理部601から図7のステップ701の中断指示が来ているかどうかをチェックするステップ803。ステップ803で中断指示されていた場合は、一定期間、例えば数ミリ秒程度の再開指示待ちを行いステップ804、メイン処理部601から図7のステップ707の再開指示が来ているかをチェックするステップ805。ステップ805において、再開指示されていなければ、ステップ804に戻り、再度再開指示待ちを行う。ステップ805において再開指示されていた場合、もしくは、ステップ803で中断指示されていなかった場合は、ステップ802で受けたSQL文がトランザクション開始要求かどうかをチェックするステップ806。トランザクション開始要求でなければ、そのSQL文をメイン処理部601で定められたRDBMSに転送し、その結果Webアプリケーションケーション111に返答するステップ807。その後、ステップ801に戻る。ステップ806において、トランザクション開始要求である場合は、ステップ802で受けたSQL文に対し、ステップ807と同様の処理を行うステップ808。ステップ808の後、Webアプリケーションケーション111から、トランザクションに含まれるSQL文を受信しステップ809、そのSQL文に対しステップ807と同様の処理を行うステップ810。ステップ810の後、ステップ809で受信したSQL文がトランザクション終了要求かどうかをチェックするステップ811。トランザクション終了要求でなければ、ステップ809に戻り、トランザクション内のSQL文処理を行う。しかし、トランザクション終了要求の場合は、ステップ801に戻る。これにより、トランザクション中は、ステップ809からステップ811をループするため、中断及び転送するDB切り替えも行われない。このため、トランザクションの処理の一貫性が失われることはない。また、トランザクション終了直後を含め、トランザクション中でない場合は、ステップ803の中断指示の判定処理の結果に応じて、メイン処理部601によって転送するDB切り替えが行われる。DBシステム切り替え処理ステップ302の後のシステム状況を図9に示す。DBシステム切り替え処理により、黒矢印901に示されるようにSQL文が転送されるRDBMSがRDBMS-A141からRDBMS-B171に切り替わっている。次に、入れ替え後処理ステップ303の詳細な処理フローを図10に示す。まず、コントロール部121は、DBMS用インスタンスA140上で稼働しているRDBMS-A141を停止するステップ1001。RDBMS-A141は、DBシステム切り替え処理ステップ302により、SQL文が転送されてくることはないため、停止してもシステム全体の影響は無い。次に、DBMS用インスタンスA140から、ストレージA150を切り離し、DBMS用インスタンスA140を停止するステップ1002。ステップ1001により、RDBMS-A141は停止しているため、DBMS用インスタンスA140を停止してもシステム全体に影響はない。また、ストレージA150上のDBデータA151には、DBシステム切り替え処理ステップ302で切り替えが行われる以前までのDBデータが、保管されることとなる。入れ替え後処理ステップ303の後のシステム状態を図11に示す。図2に示した入れ替え開始前の状態と比較すると、入れ替え元をDBシステムA130と、入れ替え先をDBシステムB160が完全に入れ替わっており、DBの入れ替え処理が終了していることが分かる。本発明では、再度入れ替えを行うことも可能である。また、Webアプリケーション111からのSQL文は、どの時点でも同期されたデータを持つDBシステムA130もしくはDBシステムB160で処理されるため、動的な入れ替えも実現できている。さらに、ストレージA150上のDBデータA151には、切り替えが行われる以前までのDBデータが、保管されているため、ステップ403で開始されるデータ同期では、前回の切り替えからの差分データのみ同期すればよい。このため、特許文献1のように全てのデータをコピーする必要はない。以上により、IaaSで提供される異なる性能のインスタンスを、上記のシステムで入れ替えることにより、動的なスケールUP及びDOWNが実現できる。