(57)【要約】ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法は、計算デバイス上で実行するホスト型仮想サーバサービスにインターフェースを提供するステップを含む。方法は、インターフェースの入力手段を介して、ユーザが、第２のユーザによって作成される少なくとも１つの仮想サーバ構成を含む、複数の仮想サーバ構成の中から、仮想サーバ構成を選択することを可能にするステップを含む。方法は、インターフェースの入力手段を介して、ユーザが、仮想サーバを動的にインスタンス化するための方針であって、少なくとも１つの条件を含む方針を設定することを可能にするステップを含む。方法は、少なくとも１つの条件が満たされていることを決定するステップを含む。方法は、選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、ホスト型仮想サーバサービスに伝送するステップを含む。【特許請求の範囲】
【請求項１】
ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法であって、該方法は、
計算デバイス上で実行するホスト型仮想サーバサービスにインターフェースを提供することであって、該インターフェースは、
ｉ．ユーザが、第２のユーザによって作成される少なくとも１つの仮想サーバ構成を含む、複数の仮想サーバ構成の中から、１つの仮想サーバ構成を選択するための入力手段と、
ｉｉ．ユーザが、仮想サーバを動的にインスタンス化するための方針であって、該方針は少なくとも１つの条件を含む方針を設定するための入力手段と
を含む、ことと、
該少なくとも１つの条件が満たされていることを決定することと、
該選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、該ホスト型仮想サーバサービスに伝送することと
を含む、方法。
【請求項２】
前記インターフェースはさらに、ユーザが少なくとも１人の他のユーザと作成された仮想サーバ構成を共有することを可能にする、入力手段を含む、請求項１に記載の方法。
【請求項３】
インターフェースを提供することは、複数のホスト型仮想サーバサービスにインターフェースを提供することを含み、該インターフェースは、
ｉ．ユーザが、第２のユーザによって作成される少なくとも１つの仮想サーバ構成を含む、複数の仮想サーバ構成の中から、１つの仮想サーバ構成を選択するための入力手段と、
ｉｉ．ユーザが、仮想サーバを動的にインスタンス化するための方針であって、該方針は少なくとも１つの条件を含む方針を設定するための入力手段と、
ｉｉｉ．ユーザが、該複数のホスト型仮想サーバサービスのうちの１つを選択するための入力手段と
を含む、請求項１に記載の方法。
【請求項４】
命令を伝送することは、前記選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、前記選択されたホスト型仮想サーバサービスに伝送することを含む、請求項３に記載の方法。
【請求項５】
複数のホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法であって、該方法は、
ａ．複数のホスト型仮想サーバサービスにインターフェースを提供することであって、該インターフェースは、
ｉ．ユーザが、複数の仮想サーバ構成の中から１つの仮想サーバ構成を選択するための入力手段と、
ｉｉ．ユーザが、該複数のホスト型仮想サーバサービスの中から選択するための第１の方針を設定するための入力手段と、
ｉｉｉ．ユーザが、仮想サーバを動的にインスタンス化するための第２の方針であって、該方針は少なくとも１つの条件を含む方針を設定するための入力手段と、
を含む、ことと、
ｂ．該少なくとも１つの条件が満たされていることを決定することと、
ｃ．該第１の方針に従って該複数のホスト型仮想サーバサービスのうちの１つを選択することと、
ｄ．該選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、該選択されたホスト型仮想サーバサービスに伝送することと
を含む、方法。
【請求項６】
前記第１の方針および前記第２の方針のうちの少なくとも１つによって、価格、性能、地理的場所、管轄権、第２のサービスへの近接性、および技術的能力のうちの少なくとも１つを特定することをさらに含む、請求項５に記載の方法。
【請求項７】
ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するためのシステムであって、
ホスト型仮想サーバサービスにインターフェースを提供する、ウェブサーバであって、該インターフェースは、
ｉ．ユーザが、複数の仮想サーバ構成の中から１つの仮想サーバ構成を選択するための入力手段と、
ｉｉ．ユーザが、仮想サーバを動的にインスタンス化するための方針であって、該方針は少なくとも１つの条件を含む方針を設定するための入力手段と、
ｉｉｉ．ユーザが他のユーザと作成された仮想サーバ構成を共有することを可能にする、入力手段と、
を含む、ウェブサーバと、
該少なくとも１つの条件が満たされていることを決定し、該選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、該ホスト型仮想サーバサービスに伝送する、該ウェブサーバと通信している計算デバイスと
を含む、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
（背景）
ホスト型仮想サーバサービスは、顧客が仮想サーバインスタンスの基礎となるハードウェアを所有または管理することを要求することなく、ユーザによって特定されるソフトウェアを実行する仮想サーバを、ユーザがインスタンス化することを可能にする。例えば、Ａｍａｚｏｎ  ＥＣ２を含む、仮想サーバサービスは、ユーザが、必要性に合致するように種々の異なる構成の多数の仮想サーバをインスタンス化することを可能にしてもよい。
【０００２】
多くの仮想サーバサービスは、ユーザによって提供されるブート可能なイメージから、仮想サーバのインスタンス化を可能にする。これらのイメージは、ユーザの所望のサーバソフトウェアのセットを含有してもよい。いくつかの仮想サーバサービスは、公開ＡＰＩまたはウェブインターフェース等を通して、ユーザによって提供されるブート可能なイメージから、仮想サーバの遠隔インスタンス化を可能にする。遠隔インスタンス化能力は、原則として、変更要求または他の要因に基づいて、ユーザが、インスタンス化された仮想サーバの数を率に応じてスケールアップまたはスケールダウンさせることを可能にする。しかしながら、通常は、個人的にサーバを監視し、追加サーバを起動する時を決定し、それらを手動で構成することは実用的ではない。
【発明の概要】
【課題を解決するための手段】
【０００３】
（概要）
本開示は、ホスト型仮想サーバサービスにおける仮想サーバ構成を配備し、管理する、より迅速で効率的な方法を提供するステップに関する。広義には、ウェブインターフェースは、特定の種類の仮想サーバが第三者ホスト型仮想サーバサービス上でインスタンス化または終了される条件を、ユーザが設定することを可能にする。例えば、ユーザは、既存の仮想サーバ上の負荷が所定の閾値を超える度に、新規仮想サーバをインスタンス化することを希望してもよい。ウェブインターフェースはまた、ユーザが複数のホスト型仮想サーバサービスの中から選ぶことを可能にしてもよい。ウェブインターフェースはさらに、ユーザが、動的変数をインスタンス化された仮想サーバの構成に組み込むことを可能にしてもよい。
【０００４】
一局面では、本開示は、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法に関する。一実施形態では、方法は、ホスト型仮想サーバサービスにインターフェースを提供するステップであって、インターフェースは、ユーザが複数の仮想サーバ構成の中から仮想サーバ構成を選択するための入力と、ユーザが、仮想サーバを動的にインスタンス化するための方針であって、少なくとも１つの条件を含む方針を設定するための入力とを含む、ステップと、少なくとも１つの条件が満たされていることを決定するステップと、選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、ホスト型仮想サーバサービスに伝送するステップとを含む。いくつかの実施形態では、方法は、ユーザ指定変数の値をインスタンス化された仮想サーバに伝送するステップを含んでもよい。いくつかの実施形態では、方法は、測定に応じて、１つ以上の仮想サーバを終了するステップを含んでもよい。いくつかの実施形態では、方法は、ユーザ定義の方針に基づいて仮想サーバをインスタンス化するように、多数のホスト型仮想サーバサービスの中から選択するステップを含んでもよい。
【０００５】
別の局面では、本開示は、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するためのシステムに関する。一実施形態では、システムは、ホスト型仮想サーバサービスにインターフェースを提供する、ウェブサーバであって、インターフェースは、ユーザが複数の仮想サーバ構成の中から仮想サーバ構成を選択するための入力手段と、ユーザが、仮想サーバを動的にインスタンス化するための方針であって、少なくとも１つの条件を含む方針を設定するための入力手段とを含む、ウェブサーバと、少なくとも１つの条件が満たされていることを決定し、選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、ホスト型仮想サーバサービスに伝送する、ウェブサーバと通信している計算デバイスとを含む。
【図面の簡単な説明】
【０００６】
本開示の先述および他の目的、局面、特徴、および利点は、添付図面と併せて解釈される以下の説明を参照することによって、より明白となり、より良く理解されてもよい。
【図１Ａ】図１Ａは、仮想サーバの管理を可能にする、ネットワーク設定の一実施形態のブロック図である。
【図１Ｂ】図１Ｂは、マシンイメージから構成可能な仮想サーバインスタンスの作成を可能にする、ネットワーク設定の一実施形態のブロック図である。
【図２Ａ】図２Ａおよび２Ｂは、クライアント計算デバイスおよびサーバ計算デバイスとして有用である、通常のコンピュータ２００のブロック図である。
【図２Ｂ】図２Ａおよび２Ｂは、クライアント計算デバイスおよびサーバ計算デバイスとして有用である、通常のコンピュータ２００のブロック図である。
【図３】図３は、マシンイメージからの構成可能な仮想サーバインスタンスの作成を促進するための方法を示す、フロー図である。
【図４】図４は、マシンイメージから構成可能な仮想サーバインスタンスを作成するのに要する時間を削減するための方法の一実施形態のフロー図である。
【図５Ａ】図５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｆ、および５Ｇは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。
【図５Ｂ】図５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｆ、および５Ｇは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。
【図５Ｃ】図５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｆ、および５Ｇは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。
【図５Ｄ】図５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｆ、および５Ｇは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。
【図５Ｅ】図５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｆ、および５Ｇは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。
【図５Ｆ】図５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｆ、および５Ｇは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。
【図５Ｇ】図５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｆ、および５Ｇは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。
【図６Ａ】図６Ａは、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法の第１の実施形態のフロー図である。
【図６Ｂ】図６Ｂは、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法の第２の実施形態のフロー図である。
【図７】図７は、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法の第３の実施形態のフロー図である。
【発明を実施するための形態】
【０００７】
（詳細な説明）
ここで図１Ａを参照すると、仮想サーバの管理を可能にする、ネットワーク設定の一実施形態のブロック図が示されている。概要すると、ユーザ局１０２が、ユーザにウェブインターフェースを表示し、ユーザから仮想サーバマネージャ１００（本明細書では単純に「マネージャ」とも呼ばれる）に構成情報を伝送する。仮想サーバマネージャ１００は、仮想サーバインスタンス１１０ａ、１１０ｂ、１１０ｃ（概して１１０）のインスタンス化、構成、および終了を管理する。マネージャ１００は、インスタンス１１０またはホスト型仮想サーバサービス１２０から受信される任意のデータを監視してもよい。
【０００８】
ここではさらに詳細に、依然として図１Ａを参照すると、仮想サーバマネージャ１００は、１つ以上の仮想サーバイメージおよび付随構成情報を受信することが可能である、任意のコンピュータデバイスを含んでもよい。いくつかの実施形態では、仮想サーバマネージャは、単一のサーバを含んでもよく、他の実施形態では、仮想サーバマネージャ１００は、サーバクラスタを含んでもよい。いくつかの実施形態では、マネージャ１００は、構成情報および／または仮想サーバイメージを記憶するための１つ以上の関連データベースを有してもよい。マネージャ１００の異なるユーザが、他のユーザによって記憶されたイメージに干渉することなく、種々のイメージを記憶することができるように、これらのデータベースは、ユーザによって分離されてもよい。いくつかの実施形態では、ユーザは、マネージャ１００上に記憶されたイメージおよび／または構成情報を共有できるようになってもよい。
【０００９】
いくつかの実施形態では、仮想サーバマネージャ１００は、定期的に操作されてもよい。例えば、企業は、ユーザがマネージャ上に１つ以上のイメージを記憶すること、およびホスト型サービス上の１つ以上のサーバをインスタンス化するためにマネージャを使用することに課金してもよい。いくつかの実施形態では、仮想サーバマネージャ１００は、仮想サーバサービスから独立した実体によって操作されてもよい。いくつかの実施形態では、ユーザ局は、ウェブインターフェースを介してマネージャ１００と通信してもよい。例えば、マネージャ１００は、多数の企業に対するウェブインターフェースを提供して、ホスト型仮想サーバサービス上の仮想サーバ配備を管理してもよい。例えば、マネージャ１００を実行する企業は、企業が仮想サーバを始動する際にマネージャ１００のサービスを使用することに、均一料金を請求してもよい。または、例えば、マネージャ１００を実行する企業は、マネージャ１００を使用して、いくつのベースイメージまたは構成プロファイルが作成および／または記憶されるかに基づいて、比例配分料金を請求してもよい。または、例えば、マネージャ１００を実行する企業は、仮想サーバを操作し、インスタンス化する際にマネージャによって提供される制御機能の使用に対して、月額料金を請求してもよい。または、例えば、マネージャ１００を実行する企業は、管理された任意の仮想サーバが実行されてきた時間量に基づいて、料金を請求してもよい。
【００１０】
仮想サーバサービス１２０は、仮想サーバサービス１２０がホストするリソース上の仮想サーバを、１人以上のユーザがインスタンス化することを可能にする、任意のサービスを含んでもよい。仮想サーバサービスの例は、Ａｍａｚｏｎ，Ｉｎｃ．提供のＥＣ２サービス、およびＸＣａｌｉｂｒｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｌｔｄ．提供のＦＬＥＸＩＳＣＡＬＥを含む。いくつかの実施形態では、マネージャ１００は、単一の仮想サーバサービスと連動するように特異的に設計されてもよい。他の実施形態では、マネージャ１００は、複数の仮想サーバサービスにインターフェースを提供してもよい。
【００１１】
ここで図１Ｂを参照すると、マシンイメージから構成可能な仮想サーバインスタンスの作成を可能にする、ネットワーク設定の一実施形態が示されている。概要すると、ユーザ局１０２が、ブートストラップサーバ１１５上に作成されるブートイメージを特定する、ユーザから入力を受け取る。次いで、ベースサーバイメージが仮想サーバマネージャ１００に送信される。別の時に、構成情報が、ユーザ局１０２または異なるユーザ局１０２から受信されてもよい。仮想サーバマネージャ１００は、仮想サーバサービス１２０に、ブートイメージのインスタンスをインスタンス化する命令を送信する。インスタンス１１０の準備ができていると決定した後、マネージャ１００は、受信した構成情報を仮想サーバインスタンスに送信する。このように、仮想サーバインスタンスの構成は、サーバイメージを構築する過程から分断される。
【００１２】
ここではさらに詳細に、依然として図１Ｂを参照すると、ユーザ局１０２は、ユーザが仮想サーバのブートイメージを作成するための任意の機能性を提供してもよい。いくつかの実施形態では、ユーザ局１０２は、仮想サーバイメージをコンパイルあるいは生成する、ブートストラップサーバ１１５と連結されてもよい。他の実施形態では、仮想サーバイメージは、ユーザ局１０２自体の上で作成されてもよい。ユーザ局１０２およびブートストラップサーバ１１５の両方は、任意の計算デバイスを含んでもよい。
【００１３】
ユーザ局、マネージャ１００、および仮想サーバサービス１２０は、任意の方式で、かつ任意の１つまたは複数のネットワークを介して接続されてもよい。接続および接続に含まれるネットワークは、インターネット、ローカルネットワーク、ウェブサーバ、ファイルサーバ、ルータ、データベース、コンピュータ、サーバ、ネットワークアプライアンス、または情報を送受信することが可能な任意の他の計算デバイスを含んでもよい。ネットワークは、ケーブル、赤外線ポート、無線信号、または複数の計算デバイスを接続する任意の他の手段を介して接続される、計算デバイスを含んでもよい。ネットワークおよびネットワークに接続される任意のデバイスは、ＳＳＬ、ＢｉｔＴｏｒｒｅｎｔ、ＨＴＭＬ、ＸＭＬ、ＲＤＰ、ＩＣＡ、ＦＴＰ、ＨＴＴＰ、ＳＩＰ、ＸＭＰＰ（Ｊａｂｂｅｒとしても知られている）、ＴＣＰ、ＩＰ、ＵＤＰ、ＩＰＸ、ＳＰＸ、ＮｅｔＢＩＯＳ、ＮｅｔＢＥＵＩ、ＳＭＢ、ＳＭＴＰ、Ｅｔｈｅｒｎｅｔ（登録商標）、ＡＲＣＮＥＴ、ファイバ分散データインターフェース（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ／ＦＤＤＩ）、ＲＳ２３２、ＩＥＥＥ  ８０２．１１、ＩＥＥＥ  ８０２．１１ａ、ＩＥＥＥ  ８０２．１１ｂ、ＩＥＥＥ  ８０２．１１ｇ、ＩＥＥＥ  ８０２．１１ｎ、ＷｉＭａｘ、および直接非同期接続、またはこれらの任意の組み合わせおよび／または拡張を無制限に含む、計算デバイス間または計算デバイス内で通信するために使用される任意の通信プロトコルを介して、通信してもよい。ネットワークは、ＡＭＰＳ、ＴＤＭＡ、ＣＤＭＡ、ＧＳＭ、ＧＰＲＳ、またはＵＭＴＳを含む、携帯デバイス間で通信するために使用される任意の１つまたは複数のプロトコルを利用する、携帯電話ネットワークを含んでもよい。
【００１４】
図２Ａおよび２Ｂは、クライアント１０２またはサーバの実施形態を実践するために有用な計算デバイス２００のブロック図を描写する。クライアント１０２およびサーバは、任意の種類および形態のネットワーク上で通信し、本明細書で説明される動作を行うことが可能なコンピュータ、ネットワークデバイスまたはアプライアンス等の、任意の種類および形態の計算デバイスとして配備され、および／またはその上で実行されてもよい。図２Ａおよび２Ｂに示されるように、各計算デバイス２００は、中央処理装置２２１と、メインメモリユニット２２２とを含む。図２Ａに示されるように、計算デバイス２００は、視覚表示デバイス２２４、キーボード２２６、および／またはマウス等のポインティングデバイス２２７を含んでもよい。図２Ｂに示されるように、各計算デバイス２００はまた、１つ以上の入力／出力デバイス２３０ａ−２３０ｂ（概して、数字２３０を使用して参照される）、および中央処理装置２２１と通信しているキャッシュメモリ２４０等の、追加オプション要素を含んでもよい。
【００１５】
中央処理装置２２１は、メインメモリユニット２２２からフェッチされた命令に応答し、それらを処理する、任意の論理回路である。多くの実施形態では、中央処理装置は、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｍｏｕｎｔａｉｎ  Ｖｉｅｗ，Ｃａｌｉｆｏｒｎｉａ）製造のもの、Ｍｏｔｏｒｏｌａ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｓｃｈａｕｍｂｕｒｇ，Ｉｌｌｉｎｏｉｓ）製造のもの、Ｔｒａｎｓｍｅｔａ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｓａｎｔａ  Ｃｌａｒａ，Ｃａｌｉｆｏｒｎｉａ）製造のもの、ＲＳ／６０００プロセッサであって、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ（Ｗｈｉｔｅ  Ｐｌａｉｎｓ，Ｎｅｗ  Ｙｏｒｋ）製造のもの、またはＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ（Ｓｕｎｎｙｖａｌｅ，Ｃａｌｉｆｏｒｎｉａ）製造のもの等の、マイクロプロセッサユニットによって提供される。計算デバイス２００は、これらのプロセッサのうちのいずれか、または本明細書で説明されるように動作することが可能な任意の他のプロセッサに基づいてもよい。
【００１６】
メインメモリユニット２２２は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、バーストＳＲＡＭまたは同期バーストＳＲＡＭ（ＢＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、高速ページモードＤＲＡＭ（ＦＰＭ  ＤＲＡＭ）、強化ＤＲＡＭ（ＥＤＲＡＭ）、拡張データ出力ＲＡＭ（ＥＤＯ  ＲＡＭ）、拡張データ出力ＤＲＡＭ（ＥＤＯ  ＤＲＡＭ）、バースト拡張データ出力ＤＲＡＭ（ＢＥＤＯ  ＤＲＡＭ）、強化ＤＲＡＭ（ＥＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ＪＥＤＥＣ  ＳＲＡＭ、ＰＣ２００  ＳＤＲＡＭ、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、強化ＳＤＲＡＭ（ＥＳＤＲＡＭ）、同期リンクＤＲＡＭ（ＳＬＤＲＡＭ）、Ｄｉｒｅｃｔ  Ｒａｍｂｕｓ  ＤＲＡＭ（ＤＲＤＲＡＭ）、または強誘電ＲＡＭ（ＦＲＡＭ）等の、データを記憶し、任意の記憶場所がマイクロプロセッサ２２１によって直接アクセスされることを可能にすることができる、１つ以上のメモリチップであってもよい。メインメモリ２２２は、上記のメモリチップのうちのいずれか、または本明細書で説明されるように動作することが可能である、任意の他の利用可能なメモリチップに基づいてもよい。図２Ａに示された実施形態では、プロセッサ２２１は、システムバス２５０を介してメインメモリ２２２と通信する（以下でより詳細に説明される）。図２Ｂは、プロセッサがメモリポート２０３を介してメインメモリ２２２と直接通信する、計算デバイス２００の実施形態を描写する。例えば、図２Ｂでは、メインメモリ２２２は、ＤＲＤＲＡＭであってもよい。
【００１７】
図２Ｂは、裏面バスと呼ばれることもある２次バスを介して、メインプロセッサ２２１がキャッシュメモリ２４０と通信する、実施形態を描写する。他の実施形態では、メインプロセッサ２２１は、システムバス２５０を使用して、キャッシュメモリ２４０と通信する。キャッシュメモリ２４０は、通常は、メインメモリ２２２よりも速い応答時間を有し、通常は、ＳＲＡＭ、ＢＳＲＡＭ、またはＥＤＲＡＭによって提供される。図２Ｂに示された実施形態では、プロセッサ２２１は、ローカルシステムバス２５０を介して、種々のＩ／Ｏデバイス２３０と通信する。中央処理装置２２１をＩ／Ｏデバイス２３０のうちのいずれかに接続するために、ＶＥＳＡ  ＶＬバス、ＩＳＡバス、ＥＩＳＡバス、マイクロチャネルアーキテクチャ（ＭｉｃｒｏＣｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ／ＭＣＡ）バス、ＰＣＩバス、ＰＣＩ−Ｘバス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、またはＮｕＢｕｓを含む、種々のバスが使用されてもよい。Ｉ／Ｏデバイスがビデオディスプレイ２２４である実施形態について、プロセッサ２２１は、ディスプレイ２２４と通信するために、アドバンストグラフィックスポート（Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ／ＡＧＰ）を使用してもよい。図２Ｂは、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ、Ｒａｐｉｄ  Ｉ／Ｏ、またはＩｎｆｉｎｉＢａｎｄを介して、メインプロセッサ２２１がＩ／Ｏデバイス２３０ｂと直接通信する、コンピュータ２００の実施形態を描写する。図２Ｂはまた、ローカルバスおよび直接通信が混合している実施形態も描写し、プロセッサ２２１は、Ｉ／Ｏデバイス２３０ｂと直接通信しながら、ローカル相互接続バスを使用してＩ／Ｏデバイス２３０ａと通信する。
【００１８】
計算デバイス２００は、３．５インチディスク、５．２５インチディスク、またはＺＩＰディスク等のフロッピー（登録商標）ディスクを受容するためのフロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭドライブ、ＣＤ−Ｒ／ＲＷドライブ、ＤＶＤ−ＲＯＭドライブ、種々の形式のテープドライブ、ＵＳＢデバイス、ハードドライブ、または、ソフトウェアおよびプログラムまたはその複数部分をインストールするために好適な任意の他のデバイス等の、任意の好適なインストールデバイス２１６をサポートしてもよい。計算デバイス２００はさらに、オペレーティングシステムおよび他の関連ソフトウェアを記憶するため、およびアプリケーションソフトウェアプログラムを記憶するために、１つ以上のハードディスクドライブまたは独立ディスク冗長アレイ、フラッシュメモリ、またはＥＥＰＲＯＭ等の記憶デバイスを含んでもよい。随意で、インストールデバイス２１６のうちのいずれかは、記憶デバイスとしても使用することができる。加えて、オペレーティングシステムおよびソフトウェアは、ブート可能な媒体、例えば、ｋｎｏｐｐｉｘ．ｎｅｔからＧＮＵ／Ｌｉｎｕｘ配布として入手可能なＧＮＵ／Ｌｉｎｕｘ用のブート可能なＣＤである、ＫＮＯＰＰＩＸ（登録商標）等のブート可能なＣＤから実行することができる。
【００１９】
さらに、計算デバイス２００は、標準電話回線、ＬＡＮまたはＷＡＮリンク（例えば、８０２．１１、Ｔ１、Ｔ３、５６ｋｂ、Ｘ．２５、ＳＮＡ、ＤＥＣＮＥＴ）、ブロードバンド接続（例えば、ＩＳＤＮ、フレームリレー、ＡＴＭ、Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）、Ｅｔｈｅｒｎｅｔ（登録商標）−ｏｖｅｒ−ＳＯＮＥＴ、ＡＤＳＬ、ＳＤＳＬ）、無線接続、あるいは上記のうちのいずれかまたは全ての何らかの組み合わせを含むがそれらに限定されない、種々の接続を通して、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、またはインターネットにインターフェース接続するネットワークインターフェース２１８を含んでもよい。接続は、種々の通信プロトコルを使用して確立することができる。一実施形態では、計算デバイス２００は、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）またはＴｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ（ＴＬＳ）、またはＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．（Ｆｔ．Ｌａｕｄｅｒｄａｌｅ，Ｆｌｏｒｉｄａ）製造のＣｉｔｒｉｘ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ等の、任意の種類および／または形態のゲートウェイまたはトンネリングプロトコルを介して他の計算デバイス２００と通信する。ネットワークインターフェース２１８は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、ＰＣＭＣＩＡネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、ＵＳＢネットワークアダプタ、モデム、または通信および本明細書で説明される動作を行うことが可能な任意の種類のネットワークに計算デバイス２００をインターフェース接続するために好適な任意の他のデバイスを含んでもよい。
【００２０】
多種多様なＩ／Ｏデバイス２３０ａ−２３０ｎが、計算デバイス２００に存在してもよい。入力デバイスは、キーボード、マウス、トラックパッド、トラックボール、マイクロホン、および描画タブレットを含む。出力デバイスは、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型プリンタを含む。Ｉ／Ｏデバイスは、図２Ａに示されるようなＩ／Ｏコントローラ２２３によって制御されてもよい。Ｉ／Ｏコントローラは、キーボード２２６およびポインティングデバイス２２７、例えば、マウスまたは光学ペン等の、１つ以上のＩ／Ｏデバイスを制御してもよい。さらに、Ｉ／Ｏデバイスはまた、計算デバイス２００用の記憶および／またはインストール媒体２１６を提供してもよい。さらに他の実施形態では、計算デバイス２００は、Ｔｗｉｎｔｅｃｈ  Ｉｎｄｕｓｔｒｙ，Ｉｎｃ．（Ｌｏｓ  Ａｌａｍｉｔｏｓ，Ｃａｌｉｆｏｒｎｉａ）製造のＵＳＢフラッシュドライブ系のデバイス等の、ハンドヘルドＵＳＢ記憶デバイスを受容するＵＳＢ接続を提供してもよい。
【００２１】
いくつかの実施形態では、計算デバイス２００は、それぞれ、同じまたは異なる種類および／または形態であってもよい、複数の表示デバイス２２４ａ−２２４ｎを含むか、またはそれらに接続されてもよい。そのようなものとして、Ｉ／Ｏデバイス２３０ａ−２３０ｎおよび／またはＩ／Ｏコントローラ２２３のうちのいずれかは、計算デバイス２００による複数の表示デバイス２２４ａ−２２４ｎの接続および使用をサポートし、可能にし、または提供するように、任意の種類および／または形態の好適なハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせを含んでもよい。例えば、計算デバイス２００は、表示デバイス２２４ａ−２２４ｎをインターフェース接続し、通信し、接続し、あるいは使用するように、任意の種類および／または形態のビデオアダプタ、ビデオカード、ドライバ、および／またはライブラリを含んでもよい。一実施形態では、ビデオアダプタは、複数の表示デバイス２２４ａ−２２４ｎにインターフェース接続するように、複数のコネクタを含んでもよい。他の実施形態では、計算デバイス２００は、複数のビデオアダプタを含んでもよく、各ビデオアダプタが表示デバイス２２４ａ−２２４ｎのうちの１つ以上に接続される。いくつかの実施形態では、計算デバイス２００のオペレーティングシステムの任意の部分が、複数の表示デバイス２２４ａ−２２４ｎを使用するために構成されてもよい。他の実施形態では、表示デバイス２２４ａ−２２４ｎのうちの１つ以上は、例えば、ネットワークを介して計算デバイス２００に接続される、計算デバイス２００ａおよび２００ｂ等の、１つ以上の他の計算デバイスによって提供されてもよい。これらの実施形態は、計算デバイス２００用の第２の表示デバイス２２４ａとして別のコンピュータの表示デバイスを使用するように設計および構築される、任意の種類のソフトウェアを含んでもよい。当業者であれば、計算デバイス２００が複数の表示デバイス２２４ａ−２２４ｎを有するように構成されてもよい、種々の方法および実施形態を認識し、理解するであろう。
【００２２】
さらなる実施形態では、Ｉ／Ｏデバイス２３０は、システムバス２５０と、ＵＳＢバス、Ａｐｐｌｅ  Ｄｅｓｋｔｏｐ  Ｂｕｓ、ＲＳ−２３２直列接続、ＳＣＳＩバス、Ｆｉｒｅ  Ｗｉｒｅバス、Ｆｉｒｅ  Ｗｉｒｅ  ８００バス、Ｅｔｈｅｒｎｅｔ（登録商標）バス、ＡｐｐｌｅＴａｌｋバス、Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）バス、非同期転送モード（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）バス、ＨＩＰＰＩバス、Ｓｕｐｅｒ  ＨＩＰＰＩバス、ＳｅｒｉａｌＰｌｕｓバス、ＳＣＩ／ＬＡＭＰバス、ＦｉｂｒｅＣｈａｎｎｅｌバス、またはシリアルアタッチド小型コンピュータシステムインターフェースバス等の外部通信バスとの間の橋渡しをしてもよい。
【００２３】
図２Ａおよび２Ｂで描写された種類の計算デバイス２００は、通常は、タスクのスケジューリングおよびシステムリソースへのアクセスを制御する、オペレーティングシステムの制御下で動作する。計算デバイス２００は、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのバージョンのうちのいずれか、Ｕｎｉｘ（登録商標）およびＬｉｎｕｘオペレーティングシステムの異なるリリース、Ｍａｃｉｎｔｏｓｈコンピュータ用のＭＡＣ  ＯＳの任意のバージョン、任意の組み込みオペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の専用オペレーティングシステム、携帯計算デバイス用の任意のオペレーティングシステム、または計算デバイス上で作動し、本明細書で説明される動作を行うことが可能な任意の他のオペレーティングシステム等の、任意のオペレーティングシステムを実行することができる。通常のオペレーティングシステムは、とりわけ、その全てがＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ，Ｗａｓｈｉｎｇｔｏｎ）製である、ＷＩＮＤＯＷＳ（登録商標）  ３．ｘ、ＷＩＮＤＯＷＳ（登録商標）  ９５、ＷＩＮＤＯＷＳ（登録商標）  ９８、ＷＩＮＤＯＷＳ（登録商標）  ２０００、ＷＩＮＤＯＷＳ（登録商標）  ＮＴ  ３．５１、ＷＩＮＤＯＷＳ（登録商標）  ＮＴ  ４．０、ＷＩＮＤＯＷＳ（登録商標）  ＣＥ、ＷＩＮＤＯＷＳ（登録商標）  ＸＰ、およびＷＩＮＤＯＷＳ（登録商標）  ＶＩＳＴＡ、Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）製のＭＡＣＯＳ、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ（Ａｒｍｏｎｋ，Ｎｅｗ  Ｙｏｒｋ）製のＯＳ／２、およびＣａｌｄｅｒａ  Ｃｏｒｐ．（Ｓａｌｔ  Ｌａｋｅ  Ｃｉｔｙ，Ｕｔａｈ）配布の無料で入手可能なオペレーティングシステムであるＬｉｎｕｘ、または任意の種類および／または形態のＵｎｉｘ（登録商標）オペレーティングシステムを含む。
【００２４】
コンピュータシステム２００は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、手持ち式コンピュータ、携帯電話または他の携帯用電気通信デバイス、メディア再生デバイス、ゲームシステム、携帯計算デバイス、または、通信が可能であり、かつ本明細書で説明される動作を行うのに十分なプロセッサ能力およびメモリ容量を有する、任意の他の種類および／または形態の計算、電気通信、またはメディアデバイスとなり得る。例えば、コンピュータシステム２００は、Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）製のＩＰＯＤ群デバイスの中のデバイス、Ｓｏｎｙ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｔｏｋｙｏ，Ｊａｐａｎ）製のＰＬＡＹＳＴＡＴＩＯＮ  ２、ＰＬＡＹＳＴＡＴＩＯＮ  ３、またはＰＥＲＳＯＮＡＬ  ＰＬＡＹＳＴＡＴＩＯＮ  ＰＯＲＴＡＢＬＥ（ＰＳＰ）デバイス、Ｎｉｎｔｅｎｄｏ  Ｃｏ．，Ｌｔｄ．（Ｋｙｏｔｏ，Ｊａｐａｎ）製のＮＩＮＴＥＮＤＯ  ＤＳ、ＮＩＮＴＥＮＤＯ  ＧＡＭＥＢＯＹ、ＮＩＮＴＥＮＤＯ  ＧＡＭＥＢＯＹ  ＡＤＶＡＮＣＥＤ、またはＮＩＮＴＥＮＤＯ  ＲＥＶＯＬＵＴＩＯＮデバイス、またはＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ，Ｗａｓｈｉｎｇｔｏｎ）製のＸＢＯＸまたはＸＢＯＸ  ３６０デバイスを含んでもよい。
【００２５】
携帯デバイスを含む実施形態について、デバイスは、その全てがＭｏｔｏｒｏｌａ  Ｃｏｒｐ．（Ｓｃｈａｕｍｂｕｒｇ，Ｉｌｌｉｎｏｉｓ）製である、ｉ５５ｓｒ、ｉ５８ｓｒ、ｉ８５ｓ、またはｉ８８ｓ、Ｋｙｏｃｅｒａ（Ｋｙｏｔｏ，Ｊａｐａｎ）製の６０３５または７１３５、またはＳａｍｓｕｎｇ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｃｏ．，Ｌｔｄ．（Ｓｅｏｕｌ，Ｋｏｒｅａ）製のｉ３００またはｉ３３０等の、ＪＡＶＡ（登録商標）使用可能携帯電話であってもよい。携帯デバイスを含む他の実施形態では、携帯デバイスは、その全てがｐａｌｍＯｎｅ，  Ｉｎｃ．（Ｍｉｌｐｉｔａｓ，Ｃａｌｉｆｏｒｎｉａ）製である、Ｔｕｎｇｓｔｅｎ  Ｗ、ＶＩＩ、ＶＩＩｘ、ｉ７０５等のＰａｌｍＯＳオペレーティングシステムの制御下で動作する、携帯情報端末（ＰＤＡ）であってもよい。さらなる実施形態では、クライアント１０２は、その全てがＨｅｗｌｅｔｔ−Ｐａｃｋａｒｄ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｐａｌｏ  Ａｌｔｏ，Ｃａｌｉｆｏｒｎｉａ）製である、ｉＰＡＱ  ４１５５、ｉＰＡＱ  ５５５５、ｉＰＡＱ  １９４５、ｉＰＡＱ  ２２１５、およびｉＰＡＱ  ４２５５、ＶｉｅｗＳｏｎｉｃ（Ｗａｌｎｕｔ，Ｃａｌｉｆｏｒｎｉａ）製のＶｉｅｗＳｏｎｉｃ  Ｖ３６、またはＴｏｓｈｉｂａ  Ａｍｅｒｉｃａ，Ｉｎｃ．（Ｎｅｗ  Ｙｏｒｋ，Ｎｅｗ  Ｙｏｒｋ）製のＴｏｓｈｉｂａ  ＰｏｃｋｅｔＰＣ  ｅ４０５等の、ＰｏｃｋｅｔＰＣオペレーティングシステムの制御下で動作する、携帯情報端末（ＰＤＡ）であってもよい。さらに他の実施形態では、携帯デバイスは、その全てがｐａｌｍＯｎｅ，  Ｉｎｃ．（Ｍｉｌｐｉｔａｓ，Ｃａｌｉｆｏｒｎｉａ）製である、Ｔｒｅｏ  １８０、Ｔｒｅｏ  ２７０、Ｔｒｅｏ  ６００、Ｔｒｅｏ  ６５０、Ｔｒｅｏ  ７００、またはＴｒｅｏ  ７００ｗ、またはＡｐｐｌｅ  Ｃｏｍｐｕｔｅｒ製のＩＰＨＯＮＥ群のデバイス等の、複合ＰＤＡ／電話デバイスである。さらに他の実施形態では、携帯デバイスは、Ｍｏｔｏｒｏｌａ  Ｃｏｒｐ．製のＭＰｘ２００等の、ＰｏｃｋｅｔＰＣオペレーティングシステムの制御下で動作する携帯電話である。さらに他の実施形態では、携帯デバイスは、無線通信能力を伴う携帯ゲームデバイスを含んでもよい。通常の携帯デバイスは、プロセッサおよびメインメモリを含む、図２Ａおよび２Ｂにおいて上記で説明される要素の多くを含んでもよい。
【００２６】
ここで図３を参照すると、マシンイメージからの構成可能な仮想サーバインスタンスの作成を促進するための方法を示す、フロー図が示されている。概要すると、方法は、ベースマシンイメージであって、所望の仮想サーバ能力のブート可能なサブセットと、構成マネージャとを含む、ベースマシンイメージを生成するステップ（ステップ３０１）と、少なくとも１つの仮想サーバ上でベースマシンイメージをインスタンス化する命令を伝送するステップ（ステップ３０３）と、インスタンス化された仮想サーバの構成マネージャが構成情報を受信する準備ができていることを決定するステップ（ステップ３０５）と、インスタンス化された仮想サーバの構成情報を構成マネージャに伝送するステップ（ステップ３０７）とを含む。
【００２７】
ここではさらに詳細に、依然として図３を参照すると、所望の仮想サーバ能力のブート可能なサブセットと、構成マネージャとを含む、ベースマシンイメージは、任意の方式で作成されてもよい（ステップ３０１）。ブート可能なサブセットは、オペレーティングシステム、ＨＴＴＰサーバ、ファイル解凍／開梱ユーティリティ、スクリプト言語サポート、および暗号化／暗号解読ユーティリティを無制限に含む、仮想サーバ能力の任意のサブセットを含んでもよい。いくつかの実施形態では、マシンイメージは、仮想サーバ能力を含む構築過程に構成マネージャを含むことによって、作成されてもよい。他の実施形態では、マシンイメージは、既存のマシンイメージを修正することによって作成されてもよい。これらの実施形態では、構成マネージャは、そのマシンイメージからブートされる実行中の仮想サーバ上に既に存在していてもよく、または、インストールされてもよく、次いで、新規マシンイメージが、実行中の仮想サーバから取り出されてもよい。構成マネージャは、インスタンス化の後に仮想サーバを構成するための任意のユーティリティを含んでもよい。いくつかの実施形態では、ユーザがマシンイメージ内に含むことを選択するために、単一の構成マネージャがマネージャ１００によって提供されてもよい。他の実施形態では、複数の構成マネージャが提供されてもよい。複数の構成マネージャは、古いバージョンを保持して、既存のサーバ構成が以前通りに稼働することを確実にしながら、構成マネージャへの機能強化をサポートするために使用されてもよい。複数の構成マネージャはまた、複数のオペレーティングシステム（例えば、Ｌｉｎｕｘ、ＦｒｅｅＢＳＤ、Ｓｏｌａｒｉｓ）をサポートするため、または１つのオペレーティングシステムの複数のバージョン（例えば、ＲｅｄＨａｔ  Ｌｉｎｕｘ、Ｄｅｂｉａｎ  Ｌｉｎｕｘ、およびＵｂｕｎｔｕ  Ｌｉｎｕｘ、またはＳｏｌａｒｉｓ  １０およびＯｐｅｎＳｏｌａｒｉｓ）をサポートするために使用されてもよい。
【００２８】
いくつかの実施形態では、ユーザは、多数の異なるマシンイメージを作成できるようになってもよい。例えば、ユーザは、それぞれ異なるオペレーティングシステムで、多数の仮想サーバベースマシンイメージを作成することを希望してもよい。次いで、ユーザは、オペレーティングシステムのそれぞれの上で実行するカスタマイズされた仮想サーバインスタンスを作成するために、これらのイメージのそれぞれを使用してもよい。
【００２９】
ベースマシンイメージが作成された後に、少なくとも１つの仮想サーバ上でベースマシンイメージをインスタンス化する命令が、任意の方式で伝送されてもよい（ステップ３０３）。いくつかの実施形態では、命令は、マネージャ１００から仮想サーバサービス１２０に伝送されてもよい。いくつかの実施形態では、この伝送は、ユーザによって開始されてもよい。例えば、マネージャ１００は、それによってユーザが１つ以上の仮想サーバサービス上の多数の仮想サーバにアクセスし、管理することができる、ウェブページを提供してもよい。ユーザは、マネージャ１００を通して、特定のマシンイメージをインスタンス化する命令を送信することができる。次いで、マネージャ１００は、適切なベースイメージを選択し、イメージをインスタンス化するように仮想サーバサービスに命令を送信してもよい。
【００３０】
いくつかの実施形態では、仮想サーバをインスタンス化する命令は、自動的に送信されてもよい。これらの実施形態では、命令の送信を誘起するために、仮想サーバ自体、他のサーバ、マネージャ１００、または上記のデータの任意の組み合わせからの任意の構成または監視データを使用することができる。例えば、マネージャ１００は、多数のサーバの使用量、負荷、または利用が閾値を超えた場合、または所要の仮想サーバが故障した場合に、所与のマシンイメージを自動的にインスタンス化する命令を有してもよい。
【００３１】
いくつかの実施形態では、インスタンス化命令は、インスタンス化される予定のサーバに対する１つ以上のパラメータを含んでもよい。例えば、インスタンス化命令は、マネージャ１００が特定のインスタンス化を後で識別することができるように、通し番号または他の識別子を含んでもよい。または、例えば、インスタンス化命令は、新たにインスタンス化されたサーバがインスタンス化時に接続するアドレスを有するように、マネージャ１００のアドレスを含んでもよい。
【００３２】
命令を伝送した後、マネージャ１００は、任意の方式で、インスタンス化された仮想サーバの構成マネージャが構成情報を受信する準備ができていることを決定してもよい（ステップ３０５）。いくつかの実施形態では、マネージャ１００は、インスタンス化されたサーバから接続要求を受信するのを待ってもよい。他の実施形態では、マネージャ１００は、成功するまでインスタンス化されたサーバへの接続を周期的に要求してもよい。いくつかの実施形態では、マネージャ１００は、ホスト型仮想サーバサービスを通して提供されるサービスを使用して、インスタンス化されたサーバの状態を監視してもよい。
【００３３】
一実施形態では、インスタンス化されたサーバは、マネージャ１００とのＨＴＴＰＳセッションを開始してもよい。インスタンス化されたサーバは、マシンの現状とともに、それに与えられた通し番号をマネージャ１００に渡してもよい。次いで、マネージャ１００は、通し番号が、インスタンス化する命令をマネージャが送信した通し番号に対応することを検証してもよい。他の実施形態では、インスタンス化された仮想サーバは、ＴＣＰ／ＩＰソースアドレスおよび／またはインスタンスに与えられたホスト型仮想サーバサービス識別子を含む、任意の他の手段によって識別されてもよい。
【００３４】
準備状況が決定された後に、インスタンス化された仮想サーバの構成情報が、任意の方式で伝送されてもよい（ステップ３０７）。一実施形態では、構成情報は、マネージャ１００から伝送されてもよい。
【００３５】
構成情報は、実行ファイル、ファイル、パラメータ、ならびに他の仮想サーバインスタンスの記憶場所および種類を無制限に含む、機能する仮想サーバインスタンスによって使用されてもよい、任意の情報を含んでもよい。一実施形態では、伝送される構成情報は、実行可能なスクリプトの順序付きリスト、各スクリプトに対応するファイルを指すＵＲＬのリスト、および実行中にスクリプトによって使用され、アクセスされてもよい、一式の入力変項束縛を含んでもよい。この実施形態では、各スクリプトに対応するファイルは、構成ファイル、インストールするアプリケーションパッケージ、実行可能ファイル、およびアプリケーションデータ（例えば、データベーススナップショット）を無制限に含む、各スクリプトによって利用される任意のファイルを含んでもよい。
【００３６】
構成情報が伝送された後に、仮想サーバインスタンスは、受信した構成情報を実装するために必要な任意のステップを講じてもよい。以下の実施例は、マネージャ１００が、実行可能なスクリプトの順序付きリスト、各スクリプトに対応するファイルを指すＵＲＬのリスト、および一式の入力変項束縛を伝送している、上記で説明される実施形態を引き続き述べる。
【００３７】
インスタンスは、最初に、ローカルファイルシステムの中の実行可能ファイルの中へ各スクリプトを入れ、ローカルファイルシステムにも記憶するように、提供されたＵＲＬから、構成ファイルに名前が付けられた各添付ファイルをダウンロードしてもよい。添付ファイルはそれぞれ、各スクリプトの別個のディレクトリに記憶されてもよい。次いで、各スクリプトが順に実行されてもよく、各スクリプトは、スクリプトによって要求される入力変項束縛に渡される。これらの束縛は、マシンイメージｉｄ、インスタンスｉｄ、インスタンスに割り当てられたＩＰアドレス、およびスクリプトの添付ファイルの記憶場所等の、多数のグローバル変数を含んでもよい。エラーが発生した（例えば、スクリプトがエラーを伴って存在する）場合、過程が途中停止されてもよい。
【００３８】
いくつかの実施形態では、構成過程の実行自体が、構成過程の初期ステップによって決定されてもよい。例えば、構成スクリプトが、以降の構成スクリプトで使用される入力パラメータを生じてもよい。または、例えば、構成スクリプトは、一式の構成スクリプトのうちのどれが、どのような順番で実行されるべきかを決定するように実行してもよい。いくつかの実施形態では、構成過程は、起動され、終了され、あるいは構成過程に基づいて影響を受ける、１つ以上の他の仮想サーバを特定してもよい。これらの実施形態では、構成過程を実行する仮想サーバは、影響を受けるサーバに信号を直接送信してもよく、または、仮想サーバは、マネージャ１００に命令を送信してもよい。
【００３９】
構成が完成した後に、インスタンスは、全てのスクリプトがエラーなしで実行された場合は「成功」、スクリプトがエラーを伴って終了した場合は「標準」である、構成過程の結果をマネージャ１００に信号伝達してもよい。この信号伝達は、任意の方式で行われてもよく、構成情報を転送するために使用される、同じ方法および／または接続を使用してもよい。加えて、トラブルシューティングの目的で、インスタンスは、例えば、ＵＮＩＸ（登録商標）標準出力および各スクリプトのエラー出力を含む、任意の数の構成状態の更新を伝送してもよい。
【００４０】
別の構成例を挙げると、多重サーバ構成を配備する時に、第２のサーバの状態に依存する情報で１つのサーバを構成することがしばしば必要である。例えば、第１のサーバは、第２のサーバに接続する必要があってもよく、この目的で、第２のサーバのＩＰアドレスを知る必要があってもよい。これらの場合において、第１および第２のサーバが実質的に同時に起動された場合、または２つのサーバに相互依存性がある場合（そのような場合において、他のサーバが必要とする情報を生じる前に、両方のサーバが他のサーバからの情報を待つ必要があれば、デッドロックが発生する場合がある）に、特定の課題に直面する場合がある。そのようなサーバ間依存性は、不完全な情報を構成マネージャに伝送することによって対処されてもよい。具体的には、ある入力が「欠落している」としてマークされてもよい。構成マネージャは、構成ステップを続行するが、各特定スクリプトを実行する前に、全ての必要入力の存在をチェックする。１つまたは複数の入力が欠落している場合、構成マネージャは、それが有してもよい任意の状態情報をマネージャ１００に伝送し、次いで、欠落入力値について、マネージャ１００に周期的にクエリを行う。欠落値を受信すると、スクリプトの実行を続行する。
【００４１】
多重サーバ構成では、サーバ間の依存性が経時的に変化してもよい。上記の実施例を引き続き述べると、第２のサーバが故障し、置換サーバが起動された場合、依存情報を更新するように、第１のサーバの構成が変更される必要がある。加えて、構成情報を再読するように、ある過程が信号伝達または再開される必要があってもよい。一実施形態では、初期構成後、構成マネージャは、周期的にマネージャ１００にポーリングして、再構成活動が必要とされるかどうかを問い合わせることができる。もしそうであれば、ポーリングへのマネージャ１００の応答は、ブート時に伝送される種類と同様の構成情報を含有してもよく、構成マネージャは、要求されたスクリプトを同じ様式で実行して、仮想サーバ構成を更新する。別の実施形態では、周期的に構成マネージャをポーリングさせる代わりに、マネージャ１００がサーバへの接続を開放して、要求された情報を送信することができる。
【００４２】
ここで図４を参照すると、マシンイメージから構成可能な仮想サーバインスタンスを作成するのに要する時間を削減するための方法の一実施形態のフロー図が示されている。概要すると、方法は、第１のベースイメージであって、所望の仮想サーバ能力のブート可能なサブセットを含む、第１のベースイメージを生成するステップ（ステップ４０１）と、第１のベースイメージのサーバ構成を完成させる、一式の構成命令を生成するステップ（ステップ４０３）と、ベースイメージを使用して仮想サーバをインスタンス化するステップ（ステップ４０５）と、インスタンス化された仮想サーバに一式の構成命令のサブセットを適用するステップ（ステップ４０７）と、構成された仮想サーバから第２のベースイメージを生成するステップ（ステップ４０９）と、少なくとも１つの第２の仮想サーバ上で第２のベースマシンイメージをインスタンス化する命令を伝送するステップ（ステップ４１１）と、インスタンス化された第２の仮想サーバの構成マネージャが構成情報を受信する準備ができていることを決定するステップ（ステップ４１３）と、構成命令のサブセットに含まれない、一式の構成命令からの構成命令を含む構成情報を、インスタンス化された第２の仮想サーバに伝送するステップ（ステップ４１５）とを含む。
【００４３】
ここではさらに詳細に、依然として図４を参照すると、上記で説明されるような、マネージャ１００を使用して仮想サーバをインスタンス化する過程は、伝送される構成情報の量および実行されるスクリプトの数に応じて、追加時間を要してもよい。したがって、構成情報のサブセットの中に構築したベースイメージを作成することが望ましくてもよい。図４に示された方法は、そのような修正されたベースイメージを効率的に形成し、インスタンス化するために使用されてもよい。
【００４４】
第１のベースイメージであって、所望の仮想サーバ能力のブート可能なサブセットを含む、第１のベースイメージが、任意の方法を使用して生成されてもよい（ステップ４０１）。第１のベースイメージは、上記で説明される技法のうちのいずれかを使用して作成されてもよい。
【００４５】
第１のベースイメージのサーバ構成を完成させる、一式の構成命令を生成するが、任意の方式で生成されてもよい（ステップ４０３）。一式の構成命令は、スクリプト、パラメータ、および関連ファイルを無制限に含む、本明細書で説明される構成情報のうちのいずれかを含んでもよい。いくつかの実施形態では、構成命令は、所望の構成を特定するユーザ入力に応じて、自動的に生成されてもよい。いくつかの実施形態では、構成命令は、ウェブインターフェースを介してユーザ入力を受信することに応じて、マネージャ１００によって生成されてもよい。
【００４６】
次いで、仮想サーバが、任意の方式でベースイメージを使用してインスタンス化されてもよい（ステップ４０５）。いくつかの実施形態では、仮想サーバは、ホスト型仮想サーバサービス上でインスタンス化されてもよい。他の実施形態では、仮想サーバは、試験または構築環境内でインスタンス化されてもよい。さらに他の実施形態では、仮想サーバは、マネージャ１００上でインスタンス化されてもよい。
【００４７】
インスタンス化の後に、一式の構成命令のサブセットが、インスタンス化された仮想サーバに適用されてもよい（ステップ４０７）。いくつかの実施形態では、マネージャ１００が、構成命令のサブセットをインスタンス化された仮想サーバに伝送してもよい。一式の構成命令のサブセットは、任意の方式で選択されてもよい。いくつかの実施形態では、ユーザがサブセットを選択してもよい。いくつかの実施形態では、サブセットは、サブセットの中の命令がどれだけ普及しているかに基づいて選択されてもよい。例えば、サブセットは、最もよく使用された構成命令を含んでもよい。他の実施形態では、サブセットは、インスタンス化された仮想サーバによって、命令をどれだけ迅速に実行することができるかに基づいて選択されてもよい。例えば、サブセットは、仮想サーバによって実行されるのに最長の時間を要する構成命令を含んでもよい。
【００４８】
次いで、第２のベースイメージが、構成された仮想サーバから生成されてもよい（ステップ４０９）。第２のベースイメージは、ベースイメージを生成するための任意の技法によって形成されてもよい。いくつかの実施形態では、実行可能コード、および構成された仮想サーバを含む添付ファイルでコピーが作られている間に、構成された仮想サーバは、実行を一時停止または停止してもよい。
【００４９】
次いで、少なくとも１つの第２の仮想サーバ上で第２のベースマシンイメージをインスタンス化する命令が、伝送されてもよい（ステップ４１１）。一実施形態では、第２のベースマシンイメージをインスタンス化する命令は、マネージャ１００からホスト型仮想サーバサービスに伝送されてもよい。例えば、命令は、ユーザ要求への直接応答の中で、またはユーザによって設定される自動インスタンス化過程のサブセットとして、ホスト型仮想サーバサービスに伝送されてもよい。
【００５０】
次いで、マネージャ１００が、インスタンス化された第２の仮想サーバの構成マネージャが構成情報を受信する準備ができていることを決定してもよい（ステップ４１３）。この決定は、例えば、第２の仮想サーバを実行する構成マネージャからの伝送を受信するステップを含む、本明細書で説明される任意の技法またはシステムを使用して行われてもよい。
【００５１】
決定後、マネージャ１００は、構成命令のサブセットに含まれない、一式の構成命令からの構成命令を含む構成情報を、インスタンス化された第２の仮想サーバに伝送してもよい（ステップ４１５）。構成命令の伝送は、任意の方式で、かつ任意の１つまたは複数のプロトコルを使用して行われてもよい。第２の仮想サーバが構成命令を受信した後に、第２の仮想サーバは、本明細書で説明される任意の技法を使用して構成命令を適用してもよい。
【００５２】
ここで図５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｆ、および５Ｇを参照すると、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例が示されている。これらの図のそれぞれを、以下の図６Ａ、６Ｂ、および７の説明と併せて詳細に論議する。
【００５３】
ここで図６Ａを参照すると、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法の第１の実施形態のフロー図が示されている。概要すると、マネージャ１００が、ホスト型仮想サーバサービスにインターフェースを提供してもよい（ステップ６０１）。インターフェースは、ユーザが複数の仮想サーバ構成の中から仮想サーバ構成を選択するための入力と、ユーザが、仮想サーバを動的にインスタンス化するための方針であって、少なくとも１つの条件を含む方針を設定するための入力とを含む。次いで、マネージャ１００は、少なくとも１つの条件が満たされていることを決定し（ステップ６０３）、選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、ホスト型仮想サーバサービスに伝送してもよい（ステップ６０５）。
【００５４】
ここではさらに詳細に、依然として図６Ａを参照すると、ホスト型仮想サーバサービスへのインターフェースが、任意の方式で提供されてもよい。いくつかの実施形態では、インターフェースは、ウェブベースのグラフィカルインターフェースを含んでもよい。そのようなインターフェースは、ＨＴＭＬ、Ｊａｖａ（登録商標）スクリプト、ＸＭＬ、画像、テキスト、Ｊａｖａ（登録商標）  Ａｐｐｌｅｔｓ、および／またはＳＶＧの任意の組み合わせを無制限に含む、ウェブブラウザを介して表示されることが可能な任意のグラフィカルインターフェースを含んでもよい。他の実施形態では、インターフェースは、コマンドラインインターフェースを含んでもよい。さらに他の実施形態では、インターフェースは、画像およびテキストの入力の組み合わせであってもよい。インターフェースは、マネージャ１００、ユーザ局１０２、またはそれらの任意の組み合わせを無制限に含む、任意の１つまたは複数の計算デバイスによって提供されてもよい。例えば、マネージャ１００は、多数のウェブページをユーザ局１０２に伝送してもよく、ユーザ局は、ページを表示し、ユーザ入力をマネージャ１００に返送してもよい。
【００５５】
インターフェースは、ユーザが複数の仮想サーバ構成の中から仮想サーバ構成を選択するための任意の入力を含んでもよい。いくつかの実施形態では、ユーザは、メニューより、多数の構成の中から選択してもよい。他の実施形態では、ユーザは、１つ以上の仮想サーバ構成の名前を入力してもよい。さらに他の実施形態では、ユーザは、変数、構成スクリプト、およびサーバイメージを無制限に含む、仮想サーバ構成に対応する任意のデータを、選択のサブセットとして伝送してもよい。例えば、メニューが、以前にアップロードされたサーバ構成の中から選択する、または新規仮想サーバイメージおよび／または構成をアップロードする選択肢を提供してもよい。いくつかの実施形態では、インターフェースは、ユーザが、他のユーザによって作成および共有された仮想サーバ構成から選択することを可能にしてもよい。例えば、ユーザは、電子商取引サイトをホストするための特に有用な構成を作成してもよい。次いで、ユーザは、その構成を共有と指定し、従って、他のユーザがその構成を使用することを可能にしてもよい。いくつかの実施形態では、使用は、ライセンス条件および／または構成の作者への支払が前提となってもよい。
【００５６】
図５Ａを再度参照すると、ユーザが複数の公的および私的サーバ構成の中から選択することを可能にする、メニュー例が示されている。私的サーバ構成は、ユーザによって作成および／または修正されていてもよい。公的／プレミアムサーバ構成は、他者によって作成および共有されたサーバ構成、またはインターフェースの管理者によって利用可能となるサーバ構成を表してもよい。いくつかの実施形態では、ある公的／プレミアムサーバ構成の使用に対して、ユーザに課せられる料金があってもよい。
【００５７】
図５Ｂを参照すると、インターフェースはまた、ユーザが、サーバ構成と関連する１つ以上のブートスクリプトを閲覧することを可能にしてもよい。次いで、ユーザは、ブートスクリプトを閲覧、選択、除去、または修正することが可能であってもよい。ユーザはまた、ユーザによって作成されるスクリプトおよび公的に利用可能となるスクリプトの両方を含む、スクリプトをサーバ構成に追加することが可能であってもよい。
【００５８】
インターフェースはまた、ユーザが、仮想サーバを動的にインスタンス化するための方針であって、少なくとも１つの条件を含む方針を設定するための任意の入力を含んでもよい。方針は、条件および活動の任意の組み合わせを含んでもよい。条件は、仮想サーバ使用量、ホスト型仮想サーバサービスパラメータ、時刻、日付、仮想サーバに対する伝送の受信、メッセージ待ち行列の状態（例えば、サイズまたは経年数）、および仮想サーバ上で実行するアプリケーションから送信される信号（すなわち、アプリケーションは、追加サーバが必要とされる時を内部で決定してもよい）を無制限に含む、任意の１つまたは複数の変数に関してもよい。仮想サーバ利用に関する条件は、プロセッサ負荷、帯域幅使用量、動作中の接続、メモリ負荷、最大応答時間、および平均応答時間ディスク利用、システム温度および他の環境要因、メモリエラー率、ディスクエラー／再試行率、電力供給レベル等のハードウェア健全指標を無制限に含む、任意のパラメータまたは仮想サーバ使用量のパラメータの組み合わせを使用してもよい。
【００５９】
ここで図５Ｃを参照すると、ユーザが方針および条件を選択することを可能にする、インターフェース例が示されている。図５Ｃは、仮想サーバを管理するために有効化されてもよい条件とともに、多数の方針を示す。例えば、第１の方針は、仮想サーバのｃｐｕアイドル時間が３分間にわたって５０％を下回ると、「スケールアップ」イベントを引き起こす。スケールアップイベントは、マネージャ１００によって受信されてもよく（または、マネージャ１００が仮想サーバを直接監視している場合はマネージャ１００によって生成される）、次いで、マネージャが、現在高負荷である仮想サーバの新規イメージをインスタンス化するように、仮想サーバサービスに命令を送信してもよい。図５Ｃのリストの中の第２の方針は、仮想サーバのｃｐｕアイドル時間が１０分間にわたって８０％以上に上昇すると、「スケールダウン」イベントを引き起こす。スケールダウンイベントは、マネージャ１００によって受信されてもよく（または、マネージャ１００が仮想サーバを直接監視している場合はマネージャ１００によって生成される）、次いで、マネージャが、活用されていない仮想サーバのインスタンスを除去するように、仮想サーバサービスに命令を送信してもよい。例えば、第３の方針は、仮想サーバが１分以上にわたって不動状態であれば危機的イベントが生成されることを指図する。危機的イベントは、マネージャ１００によって受信される（または、マネージャ１００が仮想サーバを直接監視している場合はマネージャ１００によって生成される）か、または記録されてもよく、または、マネージャ１００が、危機的イベントの対処のための特定手順を有してもよい。
【００６０】
いくつかの実施形態では、条件は、１つ以上の仮想サーバの故障に関してもよい。例えば、条件は、実行中の仮想サーバインスタンスの故障時に、新規仮想サーバのインスタンス化を提供してもよい。これらの実施形態では、故障は、クラッシュ、実行の一時停止、通信障害、メッセージへの応答の失敗、要求へのサービス提供の失敗、破損、および／または不本意のシャットダウンを無制限に含む、仮想サーバの任意の種類の故障を含んでもよい。いくつかの実施形態では、条件は、仮想サーバの予測された故障に関してもよい。これらの実施形態では、故障は、エラーチェックコード（ＥＣＣ）によるメモリのエラー率等、またはディスクの種々のエラー率（通常は、ＳＭＡＲＴ基準を使用して監視される）等の、回復可能なエラー率に基づく手段を無制限に含む、任意の手段によって予測されてもよい。故障はまた、回復不可能なエラー、例えば、自発的なマシンのリブートに基づいて予測されてもよい。例えば、方針は、５〜２０回の予期しないリブート（通常は、ハードウェアチェックによって開始される）の後に、サーバを閉鎖し、置換サーバをインスタンス化してもよい。
【００６１】
例えば、方針は、閾値を上回る仮想サーバ使用量の条件が真である時はいつでも、新規仮想サーバをインスタンス化する活動を特定してもよい。または、例えば、方針は、午後７時に多数の仮想サーバインスタンスを終了させる活動を特定してもよい。いくつかの実施形態では、方針は、所与の時に維持する仮想サーバの総数を特定してもよい。例えば、方針は、午前６時に少なくとも４つのサーバが作動していなければならず、それが０〜４つのサーバの起動を必要としてもよいことを規定してもよい。方針はまた、例えば、総費用を限定するように、多くても２０のサーバが作動していてもよいことを表すこともできる。いくつかの実施形態では、方針は、例えば、全てのサーバにわたって毎秒果たされる最小限のリクエストが１００／秒を上回る場合に、複数のサーバの状態を組み合わせ、次いで、追加サーバを起動してもよい。他の実施形態では、上記の方針の任意の組み合わせが適用されてもよい。例えば、方針は、午前７時に少なくとも４つのサーバが作動していること、平均ＣＰＵ利用が実行中のサーバについて４０％以上であれば、１つの追加サーバが起動されること、および、任意の時点で多くても１０のサーバが作動していてもよいことを要求してもよい。
【００６２】
図５Ｄおよび５Ｅは、ユーザが方針を編集および作成することを可能にする、インターフェース例を描写する。方針を構成する際に、ユーザは、リアルタイム監視データが収集されるファイルの中の変数を選択してもよい。ユーザは、方針に対する変数、条件、閾値、持続時間、および段階的拡大活動を選択してもよい。ユーザ選択は、メニュー、チェックボックス、テキストボックス、リンク、ドラッグ・アンド・ドロップ・インターフェース、およびスライダを無制限に含む、任意の入力を介して達成されてもよい。
【００６３】
図５Ｆは、ユーザが一連のサーバのアレイに対する方針を設定することを可能にする、インターフェース例を描写する。例えば、アレイは、変更が行われる前に、サーバのどの部分がアレイを増大または縮小するイベントを生成しなければならないかを定義する、弾性閾値を有してもよい。示された実施例では、それぞれ、サーバの少なくとも５１％に対して、それぞれ、スケールアップイベントまたはスケールダウンイベントが生成される場合に、アレイが増大または縮小される。アレイは、所定数のサーバによって増大または縮小されてもよく、一度に作動してもよい仮想サーバの数に確かな上限および下限を有してもよい。アレイはまた、サイズ変更イベントの間に必要とされるクールダウン時間を有してもよい。
【００６４】
ここで図５Ｇを参照すると、いくつかの実施形態では、１つ以上の仮想サーバインスタンスの使用統計値をユーザに示す、表示が提供されてもよい。表示は、グラフ、ヒストグラム、チャート、アニメーション、およびテキストを無制限に含む、任意の統計値を任意の形式で提示してもよい。いくつかの実施形態では、表示は、ユーザが１つ以上のポリシーを構成する際に使用することを所望する、特定のパラメータを示してもよい。例えば、ユーザは、１ヶ月の期間にわたるＣＰＵ利用傾向を調べて、ＣＰＵ利用に基づいて追加サーバインスタンスを追加する方針に対する閾値を決定してもよい。
【００６５】
先に図６Ｂを参照すると、いくつかの実施形態では、インターフェースが、インスタンス化の時にプロパティに基づいて決定される値とともに、１つ以上の構成変数の入力を受け取ってもよい（ステップ６０１ａ）。プロパティは、他のインスタンス化された仮想サーバの名前、アドレス、および構成情報、ホスト型仮想サーバサービスのプロパティ、マネージャ１００のプロパティ、１つ以上のインスタンス化された仮想サーバの利用パラメータ、またはサーバの起動を誘起した正確な条件を無制限に含む、インスタンス化時に決定される任意の値を含んでもよい。
【００６６】
図６Ａを再度参照すると、次いで、マネージャ１００が、任意の方式で、少なくとも１つの条件を満たされていることを決定してもよい（ステップ６０３）。いくつかの実施形態では、マネージャ１００は、ホスト型仮想サーバサービスからデータを受信して、条件が満たされているかどうかを決定してもよい。他の実施形態では、マネージャ１００は、システム時間をチェックすること等によって、条件が満たされていることを内部で決定してもよい。さらに他の実施形態では、マネージャ１００は、１つ以上のインスタンス化された仮想サーバからデータを受信することによって、条件が満たされていることを決定してもよい。
【００６７】
条件が満たされた後に、マネージャ１００は、選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、ホスト型仮想サーバサービスに伝送してもよい（ステップ６０５）。命令は、仮想サーバの構成またはインスタンス化に関する任意の情報を含んでもよい。いくつかの実施形態では、命令は、命令が伝送される時に決定される１つ以上の変数を含んでもよい。さらに他の実施形態では、命令は、本明細書で説明される任意の方式でインスタンス化された仮想サーバを構成する、構成マネージャで、仮想サーバをインスタンス化することであってもよい。
【００６８】
先に図６Ｂを参照すると、いくつかの実施形態では、命令を伝送した後、マネージャ１００は、１つ以上の変数の値を決定してもよい（ステップ６０７）。次いで、マネージャ１００は、それらの変数の値を、インスタンス化された仮想サーバに伝送してもよい。
【００６９】
ここで図７を参照すると、複数のホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法が示されている。概要すると、示された方法は、複数のホスト型仮想サーバサービスの中から選択するための方針の入力を受け取るインターフェースを付加して、図６Ａおよび６Ｂの方法と同様である（ステップ６０１ｂ）。次いで、方法は、方針に従って、仮想サーバをインスタンス化するように、複数のホスト型仮想サーバサービスのうちの１つを選択するステップを含んでもよい（ステップ７０５）。
【００７０】
依然として図７を参照すると、インターフェースが、本明細書で説明される任意の方式で提供されてもよい（ステップ６０１ｂ）。インターフェースは、ホスト型仮想サーバサービスの中から選択するための方針をユーザが特定するための任意の入力を含んでもよい。方針は、性能、費用、使用量、および待ち時間を無制限に含む、仮想サーバサービスの任意の属性を特定してもよい。例えば、方針は、どのサービスが最良の性能／費用トーレドオフを提供するかに基づいて、複数のサービスの中から選択してもよい。または、例えば、方針は、インスタンス化される仮想サーバの種類に基づいて、複数のサービスの中から選択してもよい。
【００７１】
条件が満たされた後（ステップ６０３）、次いで、マネージャが、第１の方針に従って、複数のホスト型仮想サーバサービスのうちの１つを選択してもよい（ステップ７０５）。マネージャは、選択を行う過程で、任意の情報を受信し、任意の要求を送信し、または任意のパラメータを計算してもよい。次いで、マネージャは、インスタンス化命令を選択されたサービスに伝送してもよい（ステップ６０５）。
【００７２】
具体的な好ましい実施形態を参照して、本開示を具体的に示し、説明したが、添付の請求項によって規定されるような本開示の精神および範囲から逸脱することなく、形態および詳細の種々の変更がそれに行われてもよいことが、当業者によって理解されるべきである。
【図１Ａ】
2011523472.tif 000002
【図１Ｂ】
2011523472.tif 000003
【図２Ａ】
2011523472.tif 000004
【図２Ｂ】
2011523472.tif 000005
【図３】
2011523472.tif 000006
【図４】
2011523472.tif 000007
【図５Ａ】
2011523472.tif 000008
【図５Ｂ】
2011523472.tif 000009
【図５Ｃ】
2011523472.tif 000010
【図５Ｄ】
2011523472.tif 000011
【図５Ｅ】
2011523472.tif 000012
【図５Ｆ】
2011523472.tif 000013
【図５Ｇ】
2011523472.tif 000014
【図６Ａ】
2011523472.tif 000015
【図６Ｂ】
2011523472.tif 000016
【図７】
2011523472.tif 000017
【国際調査報告】
2011523472.tif 000018
2011523472.tif 000019