(58)【調査した分野】(Int.Cl.,DB名)
前記グローバルな再マッピング可能なアドレスは、前記サービスプロバイダネットワークの少なくとも2つのポイントから公示される、請求項1に記載のコンピュータ実装方法。
前記異なるネットワーク場所は、地理的に分散した領域、または異なるプロバイダによって運用されるネットワークのうちの少なくとも1つに対応する、請求項1に記載のコンピュータ実装方法。
顧客は、重み付けされたトラフィックの均衡化を指定することができ、前記受信されたトラフィックのおおよその量は、少なくとも1つのネットワーク場所へ方向付けられる、請求項1に記載のコンピュータ実装方法。
アドレスは、新たな仮想機械へグローバルに再マッピング可能であり、既存の取引は、先の仮想機械を使用して処理することが可能である一方、新たな取引は、処理のために、新たな仮想機械へ方向付けられる、請求項1に記載のコンピュータ実装方法。
【発明を実施するための形態】
【0004】
本開示の種々の実施形態に従うシステムおよび方法は、電子環境におけるトラフィックの管理への従来の手法において経験される、前述および他の欠陥のうちの1つ以上を克服することができる。特に、種々の実施形態に従う手法は、グローバルに再位置付け可能である、再マッピング可能なアドレスの使用を提供する。これらの再マッピング可能なグローバルアドレスは、顧客が、複数のポイントおよび/またはネットワーク場所(例えば、地理的に分離した領域、もしくは異なるプロバイダによって運用される異なるネットワークスタック)からアドレスを公示することを可能にしつつ、それらのネットワーク場所で受信されるトラフィックが、任意の所与の時間に、適切なインスタンスまたは他の送信先に方向付けられることを可能にする。かかる手法は、トラフィックをドロップする重大なリスクを伴わずに、動的トラフィック管理を可能にする。
【0005】
少なくとも一部の実施形態において、グローバルなアドレスが公示された場所へ受信される要求は、トラフィックを方向付けるために、プロバイダ自身のネットワークを利用することを必要とせずに、可能な限り迅速に、間接的に再マッピングし、インターネット上に送信し戻すことができる。一実施例において、第2の領域内の場所に向かう、第1の領域におけるメッセージを開始する顧客は、メッセージを、第1の領域におけるインターネットへ送信させ、インターネット上で、第2の領域に送信させることができ、インターネット構成要素が、どのように要求を第2の領域内のアドレスに持っていくかの判断を担う。かかる手法は、プロバイダが、プロバイダ自身のネットワークにわたって、第2の領域へそのトラフィックを搬送することを阻止するが、少なくとも一部の実施形態において、プロバイダは、ある状況下で、私的ネットワークを使用することを判断することができる。かかる手法は、任意の適切な時間に、任意の適切な目的のための領域間インスタンス移行を可能にする。メッセージが最初に、送信先領域へ受信される場合、メッセージを、直接、適切なインスタンスへ再マッピングし、処理のために、そのインスタンスへ配信することができる。
【0006】
一部のかかる実施形態において、特定の再マッピング可能なグローバルなアドレスは、アドレス空間の一部のみが、種々の存在点(points of present:POP)または他のインターフェースポイントにおいて、公示されているように、使用することができる。その一部は、一部または全てのPOPにおいて公示することができ、一部の場合において、アドレス空間の異なるセクションを、異なるPOPグループから公示することができる。一部の実施形態において、アドレスブロックのサイズは、プロバイダが、その空間の少なくとも一部分を広告するべき領域を選択的に選ぶことができるように、十分に大きいように選択することができる。大量のトラフィックがプロバイダネットワーク上で運搬される必要があり得るという理解の下、一部の実施形態において、一部または全ての領域において広告することができる、事前に割り当てられたアドレスのブロックを使用することができる。大きい顧客は、潜在的に、グローバルに広告されるブロックから、いくつかの再マッピング可能なアドレスを利用し、どのようにトラフィックをより小規模で方向付けるかの判断に対応し得る。一部の実施形態において、アドレスは、受信されたトラフィックを処理することができるものよりも多くのネットワーク場所から公示される。少なくとも一部の実施形態において、あるネットワーク場所は、ある顧客に対するトラフィック等といった、あるタイプのトラフィックを処理することが承認されていない。一部の場合において、ネットワーク領域は、特定のタイプのトラフィックを方向付けることができない、ある他の領域を公示する場合がある。
【0007】
一部の場合において、プロバイダは、顧客が停止を検出する必要がない、および/または任意の関連問題に対処する必要があるように、ステータス情報を監視し、必要に応じて、アドレスを自動的に再マッピングすることができる。少なくとも一部の実施形態において、顧客は、どのようにアドレスが再マッピングされるべきか、およびそれらのアドレスを再マッピングさせる状況または基準を特定するための1つ以上の方針を特定することできる。一部の場合において、顧客は、あるマッピングが、顧客が予め特定する自動的様式において、一定の時間に発生するように、方針を特定することできる。他の場合において、顧客は、ある再マッピングが、あるタイプの事象(例えば、領域障害)の発生に応答して、発生するべきであることを特定することできる。任意の適切なエンティティによって提供または特定され得るように、他の方針も使用することができる。例えば、プロバイダは、顧客トラフィックをルーティングするように、1つ以上の方針を利用する場合があり、ここでは、ルーティングは、トラフィックの発信場所もしくはアドレス、トラフィックに対応する顧客のタイプ、またはトラフィックと関連付けられる財務的考慮の量に少なくとも部分的に基づいて、判断される。
【0008】
少なくとも一部の実施形態において、顧客は、例えば、送信先領域のランキングを調節するように、静的構成情報を特定および/または更新する能力を有することができる。例えば、顧客は、トラフィックを、ミネソタ州と関連付けられる領域内の場所に方向付けることを特定したい場合がある。顧客は、更新された構成情報を特定するAPI呼び出しを提出することができ、次いで、この情報を、必要な構成リスト(複数を含む)を更新するように、必要に応じて、伝搬させることができる。少なくとも一部の実施形態において、顧客は、異なる領域および/または異なる時間に対して、異なる構成情報もしくは方針を特定することができる。少なくとも一部の実施形態において、判断は、その場所が存続しており、かつ利用可能であるかどうかといった、少なくとも1つの領域のステータス、ならびに現在の領域からのその領域までの距離、および現在の領域と潜在的な標的領域との間の負荷といった、他の情報に関して、行うことができる。
【0009】
種々の方針は、プロバイダによっても実装される場合がある。例えば、プロバイダは、ある方針を実装し、それによって、トラフィックが一日中、異なる領域にルーティングされる場合がある。かかる方針はまた、グローバルな自動スケールを実施することもでき、異なる領域は、時刻または他のかかる要因に基づいて、異なる量のトラフィックを受信、処理、および/または送信することができる。
【0010】
一実施形態において、ドメイン名システム(DNS)ベースの手法を使用することができ、ホストに対するDNSエントリは、新たな領域において公示される範囲内であるように変更または更新される、対応するインターネットプロトコル(IP)アドレスを有する。異なるIPアドレス範囲は、異なる領域において公示することができ、トラフィックを新たな(または異なる)領域へ方向付けることが所望される時、適切なホストは、その新たな領域の範囲内の値を含むように更新される、DNSエントリを有することができる。他の実施形態は、例えば、ボーダゲートウェイパトロール(border gateway patrol:BGP)情報を管理することによって、あるプロトコルに対してデータを制御することができる。
【0011】
種々の実施形態は、ユーザが種々の態様のデータ環境またはデータプレーンを特定および管理することを可能にするように使用することができる別個の制御環境または制御プレーンを提供する。この「セルフサービス」機能性は、一組のウェブサービスを介して、提供することができ、ユーザおよび制御プレーンが、仮想データベースアドミニストレータ(DBA)としてともに作用することを可能にする。ユーザまたは顧客は、例えば、複数の外部から可視的なアプリケーションプログラミングインターフェース(API)のうちの1つを通じて、制御プレーンに要求を提出することができる。種々のAPIは、データ環境における種々のリソースに関して、特定の機能を実施するために使用することができる。APIのうちの1つへ受信される要求は、顧客インスタンスを起動するための行為といった、データプレーンにおいて実施されるべき所望の行為(複数を含む)を判断するために、ならびにインスタンスを起動する上で使用される任意の構成パラメータを判断するために、分析することができる。リソース管理構成要素といった構成要素は、行為に対する適切なタスクを判断し、適切な起動構成が選択されることを確実とし、適切な順序でタスクを実行させることができる。これらのタスクのうちの少なくとも1つは、典型的に、例えば、あるアスペクトのリソースインスタンスを起動するまたは調節するように、データ環境において実施される。
【0012】
種々の他の機能および利点は、種々の実施形態に従って提供され得るように、以下で説明および提唱される。
【0013】
図1は、種々の実施形態に従う態様を実装するための環境100の実施例を例解する。理解されるように、ウェブベースの環境が、解説目的のために使用されるが、異なる環境が、種々の実施形態を実装するように、適切に、使用されてもよい。環境100は、要求、メッセージ、または情報を適切なネットワーク104上で送信および受信し、情報をデバイスのユーザに伝達するように動作可能な、任意の適切なデバイスを含むことができる、電子クライアントデバイス102を含む。かかるクライアントデバイスの例としては、パーソナルコンピュータ、携帯電話、手持ち式のメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、個人用データ補助装置、電子書籍リーダ等が挙げられる。ネットワークは、イントラネット、インターネット、セルラネットワーク、ローカルエリアネットワーク、もしくは任意の他のかかるネットワーク、またはこれらの組み合わせを含む、任意の適切なネットワークを含むことができる。かかるシステムに対して使用される構成要素は、選択されるネットワークおよび/または環境のタイプに少なくとも部分的に依存し得る。かかるネットワークを介して通信するためのプロトコルおよび構成要素は、公知であり、本明細書において詳細には述べられない。ネットワーク上での通信は、ワイヤまたはワイヤレス接続、およびこれらの組み合わせによって可能にすることができる。本実施例において、環境は、要求を受信し、それに応答してコンテンツをサーブするためのウェブサーバ106を含むため、ネットワークは、インターネットを含むが、当業者には明らかであろうように、他のネットワークに関しては、同様の目的を果たす代替的なデバイスが使用され得る。
【0014】
例解的な環境は、少なくとも1つのアプリケーションサーバ108、およびデータストア110を含む。適切なデータストアからデータを得るといったタスクを実施するように相互作用することができる、連鎖またはその他の方法で構成され得る、いくつかのアプリケーションサーバ、層、または他の要素、プロセス、または構成要素が存在し得るということが理解されるべきである。本明細書において使用される際、「データストア」という用語は、任意の標準、分散、またはクラスタ環境において、任意の組み合わせおよび数のデータサーバ、データベース、データ記憶デバイス、およびデータ記憶媒体を含み得る、データを記憶する、それにアクセスする、それを取り出すことが可能な、任意のデバイスまたはデバイスの組み合わせを指す。アプリケーションサーバは、クライアントデバイスに対する1つ以上のアプリケーションの態様を実行するように、必要に応じて、データストアと統合するための任意の適切なハードウェアおよびソフトウェアを含むことができ、アプリケーションに対する大多数のデータアクセスおよびビジネスロジックに対処する。アプリケーションサーバは、データストアと協働して、アクセス制御サービスを提供し、ユーザへ転送されるべきテキスト、グラフィック、オーディオ、およびまたはビデオといった、コンテンツを生成することができ、これは、本実施例において、HTML、XML、または別の適切な構造化言語の形態で、ウェブサーバによって、ユーザにサーブされ得る。クライアントデバイス102とアプリケーションサーバ108との間の全ての要求および応答の対処、ならびにコンテンツの配信は、ウェブサーバによって対処することができる。本明細書において述べられる構造化コードは、本明細書のどこかで述べられる任意の適切なデバイスまたはホスト機械上で実行することができるため、ウェブおよびアプリケーションサーバは、必須ではなく、例示的な構成要素に過ぎないということが理解されるべきである。
【0015】
データストア110は、いくつかの別個のデータ表、データベース、または特定の態様に関するデータを記憶するための他のデータ記憶機構および媒体を含むことができる。例えば、例解されるデータストアは、コンテンツをサーブするために使用することができる、生産データ112およびユーザ情報116を記憶するための機構を含む。データストアはまた、報告および分析といった目的で使用することができる、ログデータ114を記憶するための機構を含むように示される。上で列記される機構のうちのいずれかにおいて適切に、またはデータストア110の追加の機構において、記憶することができる、例えば、ページ画像情報およびアクセス権情報に関する、データストアに記憶されることが必要とされ得る、多くの他の態様が存在し得るということが理解されるべきである。データストア110は、アプリケーションサーバ108から命令を受信するように、およびそれに応答してデータを取得、更新、またはその他の方法で処理するように、それと関連付けられるロジックを通じて、動作可能である。一実施例において、ユーザは、あるタイプの項目に関して、検索要求を提出する場合がある。この場合、データストアは、ユーザのアイデンティティを照合するように、ユーザ情報にアクセスする場合があり、そのタイプの項目についての情報を取得するように、カタログ詳細情報にアクセスすることができる。次いで、情報は、例えば、ユーザがユーザデバイス102上でブラウザを介して観視することができる、ウェブページ上の結果リストにおいて、ユーザに戻すことができる。特定の関心対象の項目に関する情報は、ブラウザの専用ページまたはウィンドウにおいて観視することができる。
【0016】
各サーバは、典型的に、そのサーバの一般管理および運用のための実行可能なプログラム命令を提供する、オペレーティングシステムを含み、典型的に、サーバのプロセッサによって実行される時、サーバがその意図される機能を実施することを可能にする命令を記憶する、コンピュータが読み取り可能な媒体を含む。サーバのオペレーティングシステムおよび一般的な機能性に対する好適な実装は、既知であるか、または商業的に利用可能であり、特に、本明細書における本開示を考慮すると、当業者によって容易に実装される。
【0017】
一実施形態における環境は、1つ以上のコンピュータネットワークを使用した通信リンク、または直接接続を介して、相互接続される、いくつかのコンピュータシステムおよび構成要素を利用する、分散されたコンピューティング環境である。しかしながら、かかるシステムは、
図1に例解されるものよりも少ないもしくは多い数の構成要素を有するシステムにおいて、等しく良好に動作し得るということが、当業者によって理解されるであろう。このため、
図1におけるシステム100の描画は、実際、例解的なものであり、本開示の範囲を限定するものではないとして捉えられるべきである。
【0018】
図1に例解されるものといった環境は、複数のホストが、コンテンツをサーブすること、ユーザを認証すること、支払い取引を実施すること、またはいくつかの他のかかるタスクのうちのいずれかを実施することといった、タスクを実施するために使用される場合がある、電子市場といったプロバイダにとっては有用である可能性がある。これらのホストのうちの一部は、同じ機能性を提供するように構成され得る一方で、他のサーバは、少なくとも一部の異なる機能を実施するように構成される場合がある。かかる場合における電子環境は、以下で詳細に述べられる、
図2の構成200において例解されるものといった、追加の構成要素および/または他の配設を含む場合がある。
【0019】
種々の実施形態に従う手法は、ユーザが、クラウドにおいて、リレーショナルデータセットの記憶、処理、およびクエリといったタスクを実施することができるように、開発者、顧客、または他の承認されたユーザが、リレーショナルデータベースおよび他のかかるデータソースを取得および構成することを可能にする、リレーショナルデータベースサービス(「RDS」)を提供し得るようなシステムとともに利用することができる。本実施例は、インターネット、ウェブサービス、およびインターネットベースの技術に関して述べられるが、種々の実施形態の態様は、電子環境においてネットワーク上で利用可能であるか、または提供される、任意の適切なサービスとともに使用することができるということが理解されるべきである。さらに、サービスは、本明細書において、「リレーショナルデータベースサービス」と称されるが、かかるサービスは、電子環境における、任意の適切なタイプのデータリポジトリまたはデータ記憶装置とともに使用することができるということが理解されるべきである。本実施例におけるRDSは、ユーザまたは顧客が、展開、更新、パッチ管理、バックアップ、複製、フェイルオーバ、容量管理、スケーリング、およびデータ管理の他のかかる態様の、管理上の複雑性を懸念することなく、リソースおよびリレーショナルデータセットを容易に管理することを可能にする、少なくとも1つのウェブサービスを含む。このため、開発者は、データベースインフラストラクチャを管理する複雑性を懸念することなく、洗練されたクラウドアプリケーションを自由に開発できる。
【0020】
一実施形態におけるRDSは、データ記憶装置の態様を管理するために有用な構成要素(例えば、ハードウェアおよびソフトウェア)を含む、別個の「制御プレーン」を提供する。一実施形態において、ユーザまたは顧客が、データ記憶装置に関連するあるタスクを実施するように、RDSへの呼び出しを行うことを可能にする、一組のデータ管理アプリケーションプログラミングインターフェース(API)または他のかかるインターフェースが提供される。しかしながら、ユーザは、依然として、データリポジトリと通信するために、直接インターフェースまたはAPIを使用することができ、データ記憶装置を管理する、または同様のタスクを実施するために必要な時のみ、制御プレーンのRDS固有のAPIを使用することができる。
【0021】
図2は、一実施形態に従って使用することができる、RDS実装200の実施例を例解する。本実施例において、エンドユーザに対するコンピューティングデバイス202は、データプレーン210のデータリポジトリをプロビジョニングするといったタスクを実施するように、制御プレーン208にネットワーク206を通じて呼び出しを行うことができるように示される。ユーザまたはアプリケーション204は、データプレーン210のインターフェースを通じて、直接、プロビジョニングされたリポジトリにアクセスすることができる。エンドユーザコンピューティングデバイスおよびアプリケーションが、解説目的で使用されるが、任意の適切なユーザ、アプリケーション、サービス、デバイス、構成要素、またはリソースが、種々の実施形態において、適切に、制御プレーンおよび/またはデータプレーンのインターフェース(複数を含む)にアクセスすることができるということが理解されるべきである。さらに、構成要素は、制御およびデータ「プレーン」に分離されるが、これは、それぞれの機能性を提供するために使用される、少なくとも一部のリソース(例えば、ハードウェアおよび/またはソフトウェア)の実際のまたは仮想の分離を指し得るということが理解されるべきである。
【0022】
本実施例における制御プレーン208は、本質的に、プロビジョニング、スケーリング、複製等といった、制御および管理行為に対処する、ハードウェアおよびソフトウェア構成要素の仮想層である。本実施形態における制御プレーンは、例えば、コンピュータが実行可能なソフトウェア、アプリケーションサーバ、または他のかかる構成要素とともに、少なくとも1つのウェブサーバを含むことができる、ウェブサービス層212またはティアを含む。ウェブサービス層はまた、ネットワーク206中からウェブサービス呼び出しまたは要求を受信するための一組のAPI232(または他のかかるインターフェース)を含むことができる。各APIは、例えば、リレーショナルデータベースのインスタンスをプロビジョニングする、スケールする、クローンする、または休止するように、データ環境に関して実施されるべき少なくとも1つの特定の行為に対する要求を受信するように提供することができる。APIのうちの1つへの要求を受信すると、ウェブサービス層は、呼び出しに作用する、またはそれを処理するために必要とされるステップまたは行為を判断するように、要求を解析またはそうでなければ分析することができる。例えば、データリポジトリを作成するための要求を含む、ウェブサービス呼び出しが、受信される場合がある。本実施例において、ウェブサービス層は、作成されるべきデータリポジトリのタイプ、要求される記憶ボリューム、要求されるハードウェアのタイプ(ある場合)、または他のかかる態様を判断するように、要求を解析することができる。要求に対する情報は、その後の処理のために、管理(「Admin」)データストア222、または他の適切な記憶場所もしくはジョブキューに書き込むことができる。
【0023】
一実施形態におけるウェブサービス層は、種々の制御プレーンAPIを提供することができ、API仕様に基づいて、適切な応答を返すことができる、スケール可能な一組の顧客対応サーバを含む。ウェブサービス層はまた、一実施形態において、外部対応顧客APIを処理する、ステートレスな複製サーバから成る、少なくとも1つのAPIサービス層を含むことができる。ウェブサービス層は、認証情報に基づいて顧客を認証すること、顧客を承認すること、APIサーバへの顧客要求を抑制すること、ユーザ入力を有効にすること、ならびに要求および応答をマーシャルまたはアンマーシャルすることといった、ウェブサービスのフロントエンド特性を担うことができる。API層もまた、API呼び出しに応答して、管理データストアへの/からのデータベース構成データの読み出しおよび書き込みを担うことができる。多くの実施形態において、ウェブサービス層および/またはAPIサービス層は、外部から可視的な唯一の構成要素であるか、または制御サービスの顧客に可視的であり、制御サービスの顧客によってのみアクセス可能である唯一の構成要素である。ウェブサービス層のサーバは、当該技術分野において既知であるように、ステートレスであり、水平にスケールすることができる。APIサーバ、ならびに永続データストアは、例えば、サーバが、単一のデータセンタ障害に対して回復力があるように、ある地理的領域における、またはある地理的位置の近傍の複数のデータセンタにわたって散在することができる。
【0024】
この実施形態における制御プレーンは、本明細書において「スイーパ」構成要素214と称されるものを含む。スイーパ構成要素は、制御プレーンの種々の構成要素をポーリングするように、またはそうでなければ未処理の要求に応答して実行されるべき任意のタスクを判断するように、動作可能な、任意の適切な構成要素とすることができる。本実施例において、ウェブサービス層は、adminデータストア222、または同様のジョブキューにおいて、「データベースを作成する」要求に対する命令または情報を配置する場合があり、スイーパは、未処理のジョブに関して、adminデータストアを周期的にチェックすることができる。ウェブサービス層が、ジョブが存在することをスイーパに通知を送信するといった、種々の他の手法を、当業者に明らかであろうように、使用することができる。スイーパ構成要素は、「データベースを作成する」要求をピックアップし、要求に対する情報を使用して、要求、呼び出し、または他のかかるコマンドを、要求に対する少なくとも1つのワークフローをインスタンス化するように動作可能なワークフロー構成要素216に送信することができる。一実施形態におけるワークフローは、本明細書のどこかで述べられるように、ワークフローサービスを使用して生成および維持される。ワークフローは、一般に、特定のジョブを実施するように実行されるべきである、一連のタスクである。ワークフローは、実際の作業ではないが、情報の流れおよび作業の実行を制御する、作業の抽象化である。ワークフローはまた、実行の間、任意の時間に、プロセスの状態を管理する、および返すことができる、状態機械として考えることができる。一実施形態におけるワークフロー構成要素(または構成要素のシステム)は、リポジトリ作成、修正、および削除;回復およびバックアップ;セキュリティグループ作成、削除、および修正;ユーザ認証情報管理;ならびにキー回転および認証情報管理といった、タスクに対するワークフローのホスティングおよび実行を管理および/または実施するように動作可能である。かかるワークフローは、本明細書のどこかで述べられるように、ワークフローサービスに加えて実装することができる。ワークフロー構成要素はまた、根本的なワークフローサービスが、必ずしも変化しないため、MySQLといった異なるデータベースエンジンに対して使用されるワークフローステップ間の相違を管理することができる。
【0025】
本実施例において、ワークフローは、データベースを作成し、元の要求から抽出される情報を適用するための、ワークフローテンプレートを使用してインスタンス化することができる。例えば、要求が、Oracle(登録商標)RDBMSまたは他のかかるインスタンスとは対照的に、MySQL(登録商標)リレーショナルデータベース管理システム(RDBMS)インスタンスに関する場合、特定のタスクが、MySQLインスタンスに対して向けられるワークフローに追加される。ワークフロー構成要素はまた、要求される記憶装置の量、任意の特定のハードウェア要件、または他のかかるタスクに関する、特定のタスクを選択することができる。これらのタスクは、ジョブ全体に対して有用な実行の順で、ワークフローに追加することができる。一部のタスクは、並行して実施することができる一方、他のタスクは、最初に完了されるべき先のタスクに依存する。ワークフロー構成要素またはサービスは、この情報をワークフローに含めることができ、タスクを実行し、必要に応じて、情報を渡すことができる。
【0026】
顧客のための例示的な「データベースを作成する」ワークフローは、適切な組の起動構成パラメータが、要求に対して特定されることを確実とすること、一組の起動構成パラメータを利用して、データストアインスタンスをプロビジョニングすること、オフインスタンス永続記憶装置のボリュームを割り当てること、データストアインスタンスへ永続記憶装置ボリュームを取り付けること、次いで、DNSアドレス、または顧客がデータインスタンスにアクセスするため、もしくはその他の方法でそれに接続するために使用することができる他のアドレス、ポート、インターフェース、もしくは識別子を割り当て、取り付けることといった、タスクを含む場合がある。本実施例において、ユーザは、インスタンスにアクセスするために使用される、DNSアドレスおよびポートアドレスが提供される。ワークフロー構成要素は、これらのおよび任意の関連するタスク、またはかかるタスクの任意の他の適切な組み合わせの実行を管理することができ、実際にデータプレーン210内のデータストアインスタンスに対応する、「データベースを作成する」要求に応答して、「データベース」の作成を示す要求への応答を生成することができ、インスタンスにアクセスするために使用されるDNSアドレスを提供することができる。次いで、ユーザは、制御プレーン208にアクセスする、またはそれを通過することを必要とせずに、DNSアドレスおよびポートを使用して、直接、データストアインスタンスにアクセスすることができる。種々の他のワークフローテンプレートは、記憶装置を増加するためといった、より多くのデータストアインスタンスのうちの1つを削除、作成、または修正するといった、同様のジョブを実施するために使用することができる。一部の実施形態において、ワークフロー情報は、記憶装置へ書き込まれ、少なくとも1つの別個の実行構成要素(図示せず)は、ワークフロー情報に基づいて実行されるべきタスクを引き出すか、またはそうでなければそれにアクセスするか、またはそれを受信する。例えば、プロビジョニングタスクを実行する、専用のプロビジョニング構成要素が存在する場合があり、この構成要素は、ワークフロー構成要素によって呼び出されない場合があるが、タスクキューを監視することができるか、または明らかであるはずであるようないくつかの関連する方法のうちのいずれかで、プロビジョニングタスクのための情報を受信することができる。
【0027】
本実施形態における制御プレーン208はまた、少なくとも1つの監視構成要素218を含む。データインスタンスがデータプレーンにおいて作成される時、インスタンスのための情報は、監視データストア220といった制御プレーン内のデータストアへ書き込むことができる。監視データストアは、別個のデータストアとすることができるか、またはAdminデータストア222内のはっきりと異なる組の表といった別のデータストアの一部分、または他の適切なリポジトリとすることができるということが理解されるべきである。監視構成要素は、データプレーン210内のアクティブインスタンス234を判断するように、監視データストア内の情報にアクセスすることができる。本明細書のどこかで述べられるように、これらのインスタンスは、世界中の任意の選択された適切な位置に分散され得る、異なる領域に存在することができる。監視構成要素はまた、ウェブサービス層、ワークフロー構成要素、スイーパ構成要素、および種々のホストマネージャといった、制御プレーンおよび/またはデータプレーンの複数の構成要素から、ログおよび/または事象情報を収集するといった、他のタスクを実施することができる。かかる事象情報を使用して、監視構成要素は、顧客対応APIを実装するといった目的のために、顧客可視事象を映すことができる。監視構成要素は、常に、制御プレーンのために全ての実行されているリポジトリおよび/またはインスタンスの健全状態を監視し、これらのインスタンスのいずれかの障害を検出し、適切な回復プロセス(複数を含む)を開始することができる。
【0028】
データプレーン内の各インスタンス234は、少なくとも1つのデータストア226と、データストアへのアクセスを提供する機械のためのホストマネージャ構成要素228とを含むことができる。一実施形態におけるホストマネージャは、ソフトウェア開発およびデータストア運用といったタスクを管理するようにプログラムされる、インスタンスおよび/またはTomcatもしくはJava(登録商標)アプリケーションサーバといったアプリケーションサーバ上で実行する、ならびにデータストアおよび/もしくはそれぞれのインスタンスの状態を監視する、アプリケーションまたはソフトウェアエージェントである。一実施形態におけるホストマネージャは、内部システム構成要素からのみ到達することができ、顧客または他の外部エンティティに対して利用可能ではない、ポート上で聴取する。一部の実施形態において、ホストマネージャは、制御プレーン層へのいかなる呼び出しも開始することができない。ホストマネージャは、論理ボリュームおよびファイルシステムをセットアップすることを含む、新たなリポジトリに対するインスタンスをセットアップすること、データベースバイナリおよびシードをインストールすること、ならびにリポジトリを開始または停止することといった、タスクを管理および/または実施することを担うことができる。ホストマネージャは、データストアの健全状態を監視することができ、ならびにI/Oエラーまたはデータ記憶エラーといったエラー条件に対してデータストアを監視し、必要な場合、データストアを再始動することができる。ホストマネージャはまた、データストアおよび/またはオペレーティングシステムのためのソフトウェアパッチおよびアップグレードのインストールを実施および/または管理する。ホストマネージャはまた、CPU、メモリ、およびI/O使用に関し得るような、関連メトリクスを収集することができる。
【0029】
監視構成要素は、各ホストのステータスを判断するように、例えば、特定の要求を送信することによって、またはホストマネージャからのハートビートを監視することによって、監視されたインスタンス234に対し、各ホストマネージャ228と周期的に通信することができる。一実施形態において、監視構成要素は、例えば、特定のホストおよび/またはインスタンスのステータスを得るために、各ホストマネージャにコマンドを発行するように構成される一組の事象プロセッサ(または監視サーバ)を含む。指定された回数の再試行後、応答が受信されない場合、監視構成要素は、問題があると判断することができ、例えば、問題を照合し、必要な場合、インスタンスを再プロビジョニングするといった、インスタンスに対する行為を実施するように、Adminデータストア222または別のかかるジョブキューに情報を記憶することができる。スイーパは、この情報にアクセスし、障害から自動的に回復するように試みるように、インスタンスのための回復ワークフローを開始することができる。ホストマネージャ228は、制御プレーンの監視および他の構成要素のためのプロキシとして作用することができ、制御プレーン構成要素の代わりに、インスタンスのためのタスクを実施する。時として、問題は、対応するホスト、インスタンス、またはボリュームのクラッシュ、再起動、再始動等といった、インスタンスのうちの1つを伴って生じ、これらは、自動的に解決することができない。一実施形態において、これらのおよび他の顧客可視性事象をログすることができる、ロギング構成要素(図示せず)が存在する。ロギング構成要素は、インスタンスがある期間、利用不可能である場合、顧客が、その事象に関する情報を得るために、適切な「事象」または同様のAPIを呼び出すことができるように、APIまたは他のかかるインターフェースを含むことができる。一部の場合において、要求は、インスタンスに障害がある時、保留のままにされ得る。本実施形態における制御プレーンは、データプレーンから分離しているため、制御プレーンは、データ要求を受信することはなく、このため、その後の提出のために、要求をキューに入れることはできない(ただし、一部の実施形態において、この情報は、制御プレーンに転送され得る)。このため、本実施形態における制御プレーンは、障害に関して、ユーザに情報を提供するため、ユーザは、必要に応じて、要求に対処することができる。
【0030】
述べられるように、一度、インスタンスがプロビジョニングされ、ユーザに、DNSアドレスもしくは他のアドレスまたは場所が提供されると、ユーザは、そのインスタンス234と直接、相互作用するように、Java Database Connectivity(JDBC)または他のかかるクライアントを使用して、ネットワークを通じて、データプレーン210に、「直接」、要求を送信することができる。一実施形態において、データプレーンは、コンピューティングクラウド環境、または、ハードウェアおよび/もしくはソフトウェア構成要素の「クラウド」または動的ネットワークにわたって、データ記憶装置およびアクセスを提供する、一組のウェブサービスおよびリソースの形態を採る(もしくは、少なくともそれを含むか、もしくはその一部である)。例えば、インスタンスまたは利用可能性障害は、使用のために、DNSアドレスを任意の適切な置換インスタンスへ、プログラムで再マッピングすることによって、マスクすることができるため、DNSアドレスは、かかる動的クラウド環境において有益である。例えば、ユーザ202またはアプリケーション204から受信される要求は、要求を実際のインスタンス234もしくは要求のDNSに対応するホストに向けることができる、ネットワークアドレス翻訳(NAT)ルータ224、または他の適切な構成要素へ向けることができる。述べられるように、かかる手法は、インスタンスにアクセスするために使用されるDNSまたは他のアドレスを変更することをユーザまたはアプリケーションに要求することなく、インスタンスが、動的に移動、更新、複製されること等を可能にする。述べられるように、各インスタンス234は、ホストマネージャ228と、データストア226とを含むことができ、永続記憶装置230内に、少なくとも1つのバックアップインスタンスまたはコピーを有することができる。かかる手法を使用して、一度、インスタンスが制御プレーンを通じて構成されると、ユーザ、アプリケーション、サービス、または構成要素は、制御プレーン232にアクセスすることを必要とせずに、データプレーンへの要求を通じて、直接、インスタンスと相互作用することができる。例えば、ユーザは、DNSアドレスを通じて、インスタンス内のデータに関する構造化クエリ言語(SQL)または他のかかるコマンドを直接発行することができる。ユーザが、インスタンスの記憶容量の拡大といったタスクを実施したい場合、ユーザは、制御プレーンにアクセスすることのみが必要であろう。少なくとも一実施形態において、制御プレーン208の機能性は、データプレーン210のプロバイダに関連してもよいか、またはしなくてもよい、プロバイダによる少なくとも1つのサービスとして、提供することができるが、単に、データプレーン内のデータインスタンスをプロビジョニングし、管理するために使用することができ、かつ別個のデータプレーン210内のそれらのインスタンスの利用可能性を監視し、確実とすることもできる、第三者サービスであってもよい。
【0031】
述べられるように、ウェブサービスまたは他のかかるサービスとして、制御プレーンの機能性を提供することに対する1つの利点は、制御プレーンが、仮想システムアドミニストレータまたは仮想データベースアドミニストレータ(DBA)として機能することができ、例えば、起動構成の照合およびデータのプロビジョニングといったタスクを実施するための、経験豊かな人間のアドミニストレータに対する必要性を回避するということである。多くの従来の手法は、必要な構成情報を受信する、構成が有効かどうかを判断する、インスタンスを最適化および調整する、ならびに他のかかるタスクを実施するために、かかる人間のアドミニストレータを必要とし、これにはかなりの量の時間および努力を要する。さらに、かかる手法は、エラーに対する多くの機会を提供する。しかしながら、これらのパラメータを指定するためのユーザの能力は、現在のネットワークまたはシステム環境にとっては最適ではない方法で、ユーザが、インスタンスを起動すること、またはそうでなければリソースにアクセスすることを引き起こし得る。本明細書において説明されるように、制御プレーンまたはサービスへ要求を提出する時に、特定の起動構成を指定することで、ユーザまたは顧客は、リソースアクセスのための最適な(または少なくとも適切な、もしくは許容された)性能を取得することができる。制御プレーンは、要求に応答して、リソースもしくはリソースインスタンスを作成、起動、削除、修正、拡大、および/またはそうでなければ管理するように、必要なタスクを実施することができる。制御プレーンはまた、各タイプのリソースの専門家を必要とすることなく、一貫して、いくつかの異なるタイプのリソースをサポートすることができる。
【0032】
従来の実施形態において、顧客は、少なくとも適切なリソースが位置付けられ、顧客がそれらのリソースへのアクセスを有する、世界のどこかで、インスタンス(
図2に関して説明されるものといった)を起動することができる場合がある。しかしながら、静的アドレスといったアドレスが、多くの従来の手法に従って、特定のインスタンスと関連付けられる場合、その静的アドレスに方向付けられるトラフィックは、障害または他のかかる発生の場合に喪失される場合がある。一部の手法において、インスタンスは、起動時に私的アドレス、およびネットワークアドレス翻訳(NAT)を通じて私的アドレスにマッピングされる公的アドレスという、2つのアドレスが割り当てられる場合がある。例えば、IPアドレスに関して、かかる手法は、顧客が、動的DNSを使用して、既存のDNS名を新たなインスタンスの公的IPアドレスへ再マッピングすることを可能にする。しかしながら、かかる手法は、IPアドレスが、インターネットを通じて伝搬するするのに最大24時間かかる可能性があり、それにより、終了されたインスタンスが要求を受信し続ける間、新たなインスタンスがトラフィックを受信しない場合がある。
【0033】
ある環境において、顧客は、代わりに、本明細書において「再マッピング可能な」アドレスと称されるものを関連付ける場合がある。再マッピング可能なアドレスの例は、Seattle, WashingtonのAmazon.com, Inc.によって提供される「エラスティックIPアドレス」の提供である。顧客は、再マッピング可能なアドレスを、例えば、特定のインスタンスの代わりに、顧客のアカウントと関連付けることができる。しかしながら、従来の静的IPアドレスとは異なり、再マッピング可能なアドレスは、顧客が、公的にさらされるIPアドレスを、顧客のアカウント内の任意のインスタンスへ再マッピングすることを可能にする。
【0034】
しかしながら、再マッピング可能なアドレスを利用する時でさえ、顧客は、典型的に、単一の領域に限定される。例えば、バージニア州において機械障害を有する顧客は、バージニア州、または周辺エリアにおいて、新たなインスタンスを起動し、再マッピング可能なアドレスをその新たなインスタンスへ再マッピングすることができる場合がある。その再マッピング可能なアドレスに向けられる、ネットワーク(例えば、インターネット)から入ってくるトラフィックは、そのインスタンスに向かってルーティングされるであろう。顧客は、例えば、1つのデータセンタが電力損失を経験する場合、トラフィックをその領域における他のデータセンタ(複数を含む)に再ルーティングすることができるように、バージニア州におけるいくつかの異なるデータセンタといった、その領域内の複数の場所を利用する場合がある。
【0035】
しかしながら、従来の手法を使用して、顧客は、複数の領域にわたって、または異なる領域へ、それらの再マッピング可能なアドレスを再マッピングすることはできない。例えば、顧客は、米国内のネットワークを不能にする大災害または他の発生の場合、米国外のデータセンタへ再マッピングすることはできない。さらに、トラフィックが、主に、異なる時間に世界の異なる領域から発信する、顧客は、最新のトラフィック発信のポイントに最も近いデータセンタへマッピングすることによって、任意の所与の時間に、ネットワーク上のトラフィックの量を低減するために、アドレスを再マッピングすることができない。顧客は、新たな再マッピング可能なアドレスを割り当て、DNSまたは別の同様の機構を使用して顧客に新たなエンドポイント(複数を含む)を通知しなければならず、これは、多くの異なる状況においては望ましくない可能性がある。
【0036】
従来の手法を使用する顧客に利用可能であるオプションは、所望の領域の各々において、公的アドレスの全てを「公示」することである。
図3に例解される実施例300において、プロバイダは、少なくとも4つの異なるエリア内のリソースを利用する場合があり、これらの各々は、関連付けられた領域、ここでは、米国の西海岸(領域A)、米国の東海岸(領域B)、アイルランド(領域C)、およびアジア(領域D)に対応する。本実施例において、バージニア州内の公的アドレス空間は、バージニア州から公示することができ、アイルランド内の公的アドレス空間は、アイルランドから公示することができる。ここでは、「公示」は、概して、それらのアドレスに向けられるトラフィックを、その位置に適切にルーティングすることができるように、インターネットといったネットワークのノードが、あるアドレス(例えば、IPアドレス)の位置に気付く、通知が提供されることを意味する。顧客は、典型的に、トラフィックができるだけ短いパスを利用することを好むため、かつそれらの顧客はまた、他の人々のネットワーク(例えば、他のプロバイダとレベル3上で、等)を利用することを好むため、かかる手法は、所与の領域(例えば、ヨーロッパ)において開始されるトラフィックが、非顧客所有のネットワーク(例えば、インターネット)にわたって方向付けられること、およびヨーロッパ(例えば、本実施例においては、アイルランド)において公示される場所に方向付けられることを可能にする。同様に、米国内から送信されるトラフィックは、インターネット上で、バージニア州において公示される場所へ方向付けることができ、その場所で顧客のネットワークに最初にヒットすることができる。しかしながら、かかる手法に対する潜在的な欠点は、アイルランドのアドレス空間が利用不可能となる場合、ヨーロッパで発信するトラフィックは、その領域が、他の領域におけるアドレス空間に気付いていないため、ドロップされる可能性があるということである。
【0037】
一部の場合において、アドレスは、一般的に、従来の手法を使用して、再マッピングすることができる。かかる場合において、公的アドレス空間は、トラフィックを、それらの位置のいすれかで受信し、次いで、適宜方向付けることができるように、どこでも公示することができる。かかる手法は、アジアにおいてより有益に受信された可能性がある、アイルランドにおいて受信されるトラフィックを、アジア等に送信することができるように、そのアドレス空間を公示するエンティティが、典型的に、領域間で巨大な量のトラフィックをバックホールしなければならないであろうという事実といった、多くの理由により、望ましくない可能性がある。例えば、西海岸でウェブサイトを運営する企業は、トラフィックがバージニア州のデータセンタで受信される場合があり、次いで、企業のネットワークにわたって、西海岸のサーバへ運搬される必要があるであろう、東海岸に多くの顧客を有する場合があり、これは、データセンタのホストまたはプロバイダが、自費で、データをそれら自身のネットワークにわたって運搬しなければならないであろうことを意味する。アドレス空間は、領域がかなり異なるサイズであり得る場合でさえも、どこでもトラフィックを収容するように、グローバルにスケールされなければならないため、かかる手法はまた、スケーリング問題を提供する可能性がある。他のかかる問題も、かかる手法に起因する可能性がある。
【0038】
種々の実施形態に従うシステムおよび方法は、顧客が、グローバルに再割り当て可能である、および/または間接的に再マッピング可能である、再マッピング可能なアドレスを利用することを可能にすることができる。少なくとも一部の実施形態において、1つ以上のアプリケーションプログラミングインターフェース(API)を通じて、ウェブサービスを利用する顧客は、グローバルに再割り当て可能な再マッピング可能なIPアドレスを利用および管理することができる。かかる手法は、ネットワークが、トラフィックのルーティングに対する「ホットポテト」手法を活用することを可能にし、それにより、トラフィックを方向付けるために、プロバイダ自身のネットワークを利用することを必要とせずに、可能な限り迅速に、公示された場所のうちの1つへ受信される要求を、間接的に再マッピングし、インターネット上へ送信し戻すことができる。一実施例において、アイルランド内の場所に向けられる、バージニア州においてメッセージを開始する顧客は、メッセージを、バージニア州内のインターネットに送信し、インターネット上で、アイルランドに送信することができ、インターネット構成要素が、どのように要求をアイルランド内のアドレスに持っていくかの判断を担う。かかる手法は、データセンタプロバイダが、そのトラフィックを、プロバイダ自身のネットワークにわたって、アイルランドへ搬送すること、次いで、アイルランド内のインターネットのみをヒットすることを阻止する。プロバイダは、典型的に、いずれにしてもインターネット帯域幅の代金を支払っているため、専用のファイバまたは他のかかる私的接続上で、大西洋にわたってデータを搬送する代わりに、その帯域幅を利用することが好ましい可能性がある。
【0039】
かかる手法は、インスタンスを、任意の特定の時間に(例えば、世界中で「太陽を追尾する」ように)、大多数のユーザにより近く位置付けるためといった、任意の適切な目的のための領域間インスタンス移行を可能にする。従来のインターネットベースの手法を使用すると、かかる移行は、インスタンスがインターネットホストと通信している時、達成するのが困難、またはさらには不可能である可能性がある。顧客は、一般的に、かかる移行を、比較的途切れなく実施させたいが、これは、インターネット中のトラフィックを適切にルーティングする上で、問題を提示する。一実施形態において、ドメイン名システム(DNS)ベースの手法を使用することができ、これは、ホストに対するDNSエントリが、新たな領域において公示される範囲内で変更または更新される、対応するIPアドレスを有することができる。かかる手法において、異なるIPアドレス範囲は、異なる領域において公示され、トラフィックを新たな(または異なる)領域に方向付けることが所望される時、適切なホストは、その新たな領域の範囲内の値を含むように更新されるDNSエントリを有することができる。
【0040】
別の手法は、ボーダゲートウェイパトロール(border gateway patrol:BGP)情報といった、あるプロトコルに対して、データを制御することに基づく。BGPは、典型的に、インターネットルーティング決定で使用される、IPプレフィックスの表を維持する。ある実施形態において、BGP公示は、新たな領域における特定のアドレス空間の広告を開始し、先の領域におけるその空間の広告を停止するように変化させることができる。かかる手法を使用して、顧客は、同じIPアドレスを保持しつつ、トラフィックは、直接、新たな領域に向かうことができる。一部の実施形態において、DNSまたはBGPベースの手法に対する情報が変化する間、ある期間、領域間でトラフィックを転送および/またはトンネルするように、ある機構を提供することができる。
【0041】
一部の実施形態において、アドレス空間の一部分のみが、種々のPOPまたは他のインターフェースポイントにおいて公示されているように、特定の再マッピング可能なグローバルなアドレスを使用することができる。その部分は、一部または全てのPOPにおいて公示することができ、一部の場合において、アドレス空間の異なるセクションは、異なるPOPグループから公示することができる。従来のインターネット手法を使用すると、単一のIPアドレスは、単純にはグローバルに公示することができない。しかしながら、あるエンティティは、再マッピング可能なアドレスのブロックを要求し、それらのアドレスを、米国東部および米国西部といった、2つ以上の領域において、アクセス可能にしたい可能性がある。かかる場合において、顧客の全て(または大多数)は、米国内にいる場合があるが、企業は、問題がある場合、トラフィックを他の位置にフェイルオーバおよびシフトするための能力を欲する場合がある。一部の場合において、企業は、単純に、任意の所与の時間に、顧客の大多数の場所に従って、トラフィックを方向付けたい場合がある。例えば、企業が、世界中に顧客を有し、それらの顧客が、世界の顧客の地域において、営業時間中にネットワークにヒットする傾向がある場合、企業は、任意の所与の時間に必要とされるデータパスの大多数を最小化することを試みるために、一日中、異なる領域にそれらのアドレスを調節したい場合がある。一実施例において、顧客には、グローバルなBGPに公示することができる「/24」を与えることができる。「/24」は、一般的に、フォワードスラッシュ(「/」)、およびサブネットマスク内の先頭ビットの数を与える2桁の10進数が続く、ドット付き10進表記のアドレスとしてルーティング表に要約される、インターネットアドレスのブロックを指す。次いで、/24は、任意の所与の時間に、所望の領域から公示することができる。次いで、最適な要求ルーティングが、トラフィックのそのサブセットに対して実施され得、顧客は、適切な額が請求され得る。
【0042】
一実施形態において、アドレスブロックのサイズは、プロバイダが、その空間の少なくとも一部分を広告するべき領域を選択的に選ぶことができるように、顧客に対して十分に大きいように選択することができる。別の実施形態において、大量のトラフィックがプロバイダネットワーク上で運搬される必要があるであろうという理解の下、一部または全ての領域において広告することができる、事前に割り当てられたアドレスのブロックを使用することができる。大きい顧客は、潜在的に、グローバルに広告されるブロックから、いくつかの再マッピング可能なアドレスを利用し得、プロバイダは、どのようにトラフィックをより小規模で方向付けるかの判断に対処することができる。
【0043】
これらの実施形態のうちの少なくとも一部において、顧客は、依然として、多くの望ましい障害関連の特徴を受信することができる。従来のシステムにおいて、再マッピング可能なアドレスを使用して、バージニア州においていくつかの再マッピング可能なアドレスを有する顧客は、バージニア州においてトランジットの停止がある場合、それらのアドレスは、少なくとも一時的に利用不可能であり、要求は、ネットワークバックボーンにヒットするとすぐに、ドロップするため、問題を経験するであろう。しかしながら、顧客が、グローバルな再マッピング可能なアドレス群をレンタルしている場合、それらのアドレスは、バージニア州にマッピングされる場合があるが、バージニア州がインターネットから外れる時、これらのアドレスが依然として、インターネット上の他の存在点(point of presence:POP)の全てにおいて公示されるように、世界中の多くのポイントにおいて公示することができる。このため、顧客は、別の領域において、インスタンスを起動させることができ、グローバルな再マッピング可能なアドレスのうちの1つ以上は、サービスが、迅速に、再び利用可能となるように、そのインスタンスにマッピングすることができる。かかるプロセスの利点は、インターネットBGPまたはDNSが伝搬するのを待機するラグタイムまたは遅延が無いように、動作全体を完全にプロバイダネットワーク内に含有することができるということである。顧客は、彼らのインターネットサービスプロバイダと相互作用する必要はないが、代わりに、例えば、DNS名およびIPアドレスを、かなり迅速に、再び利用可能にすることができるように、プロバイダへの1つまたは2つのAPI呼び出しを行うことができる。
【0044】
一部の場合において、プロバイダは、ステータスを監視することができ、必要に応じて、アドレスを自動的に再マッピングすることができ、それにより、顧客は、停止を検出する必要がない、および/または任意の関連問題に対処する必要がある。少なくとも一部の実施形態において、顧客は、どのようにアドレスが再マッピングされるべきか、およびそれらのアドレスを再マッピングさせる状況または基準を指定するための1つ以上の方針を指定することができる。一部の場合において、顧客は、あるマッピングが、顧客が予め指定する自動的様式において、一定の時間に発生するように、方針を指定することができる。他の場合において、顧客は、ある再マッピングが、あるタイプの事象(例えば、領域障害)の発生に応答して、発生するべきであることを指定することができる。
【0045】
少なくとも一部の実施形態において、各領域は、顧客がプロバイダとのアドレス空間を有する、互いの領域について知っている。例えば、1つ以上のトンネルで、それらの領域間で確立される通信が存在する可能性がある。どのアドレス、またはアドレス空間の何のセクションが、現在、領域の外部にあるかを示す、マッピングのリストを維持することができる。このため、トラフィックが、現在、第2の領域にマッピングされる、グローバルな再マッピング可能なアドレスに対して、第1の領域に入ってくる時、プロバイダは、送信先領域を判断するように、入ってくるトラフィックにおいて、アドレス翻訳および送信先ルックアップを行うことができる。第1の領域は、第2の領域のアイデンティティ以外の任意の情報を判断することができる場合があるが、トラフィックを、トンネルに沿って、第2の領域へ方向付けることができる。一度、第2の領域に来ると、トラフィックがそのポイントにおいてローカルであるため、適切なルーティングプロトコルルックアップを実施することができる。
【0046】
本実施例において、ロサンゼルスおよびバージニア州といった領域は、常に、所与のIPアドレスをインターネット上へ広告することができる。ユーザが、バージニア州内の店に座っている場合、ローカルISPは、一般的に、ホットポテトルーティング手法を使用して、迅速に、そのトラフィックを取り除くことを好む。このため、ISPは、一般的に、トラフィックを、バージニア州領域に方向付ける。しかしながら、バージニア州において、トランジット停止といった発生がある場合、バックボーンISPは、バックボーンがL.A.領域に情報を運搬することができるように、依然として、L.A.からの公示を受信するであろう。
【0047】
一部の実施形態において、アドレスは、要求を処理するために実際に使用されるものよりも多くの領域から公示することができる。例えば、グローバルな再マッピング可能なアドレスは、世界中の5つの異なる領域の各々から公示することができる。アドレス自体は、バージニア州およびアイルランドにおける例といった、それらの領域のうちの2つにマッピングされる場合がある。マッピングは、バージニア州に到着するトラフィックが、バージニア州においてサーブされ、アイルランドに到着するトラフィックが、アイルランドにおいてサーブされるように、構成することができる。マッピングはまた、米国西海岸領域に到着するトラフィックがバージニア州へ方向付けられ、アジアに到着するトラフィックがアイルランドへ方向付けられる、等のように、構成することができる。このため、アドレスは、5つの異なる場所において公示されるが、それらの場所のうちの2つのみへ方向付けられる、およびそれらによってサーブされる。少なくとも一部の実施形態において、ルーティングは構成によって判断されるため、知能は無い。少なくとも一部の実施形態において、そのトラフィックが、現在の負荷、時刻等といった種々の要因に基づいて、異なる場所へルーティングされることを指示する、内蔵知能または方針が存在し得る。
【0048】
一部の実施形態において、ステータス検出またはフローハッシングが無いが、トラフィックが、現在の時間帯といった要因に基づいて、特定の領域へ方向付けられる、エニーキャスト手法を使用することができる。本明細書において使用される際、エニーキャストは、概して、同じ送信先アドレスに全て関連付けられる、潜在的な受信先群のメンバへトラフィックをルーティングするための、当該技術分野において既知の手法を指す。少なくとも一部の実施形態において、どこでそのトラフィックが受信されるかに依存して、任意の時間または常に、トラフィックを方向付けるべき特定の領域を含むことができる、静的構成情報を提供することができる。他の実施形態において、静的構成情報は、トラフィックを方向付けることができる種々の領域の順序またはランキングを含むことができる。例えば、他の領域は、ネットワーク近接性に基づいて、ランク付けすることができる。このため、トラフィックが特定のアドレスに対して入ってくる時、グローバルな再マッピング可能なアドレスがアクティブである場所に関して、判断を行うことができ、種々の領域の順序を判断するためにリストを調べることができる。少なくとも一実施形態において、トラフィックは、ランキングリストにおいて最高である、アドレスがアクティブである領域へ方向付けられる。一実施例において、
図4に例解されるものといったランキングリスト400は、(降順に)L.A.、バージニア州、およびアイルランドを列記する場合があり、トラフィックに対するグローバルなアドレスは、アイルランドおよびバージニア州においてアクティブである場合がある。この場合、トラフィックは、バージニア州が、アドレスがアクティブである、最高にランク付けされた領域であるため、そこへ方向付けられるであろう。
【0049】
少なくとも一部の実施形態において、顧客は、例えば、種々のまたは特定の時間に、ランキングを調節するように、静的構成情報を特定および/または更新する能力を有することができる。例えば、顧客は、そのトラフィックを、ミネソタ州と関連付けられる領域内の場所へ方向付けることを指定したい場合がある。
図2を参照して説明されるものといったシステムを使用して、顧客は、更新された構成情報を特定するAPI呼び出しを提出することができ、次いで、この情報は、必要な構成リスト(複数を含む)を更新するように、必要に応じて伝搬させることができる。少なくとも一部の実施形態において、顧客は、異なる領域に対する、および/または異なる時間において、異なる構成情報または方針を特定することができる。本開示を考慮すると明らかであるべきように、種々の他のタイプの情報も、含める、または利用することができる。
【0050】
少なくとも一部の実施形態において、適切な領域の判断は、より動的とすることができる。例えば、その場所が存続しており、かつ利用可能であるかどうかといった、少なくとも1つの領域のステータス、ならびに現在の領域からのその領域までの距離、および現在の領域と潜在的な標的領域との間の負荷といった、他の情報に関して、判断を行うことができる。一実施例において、トラフィックは、正常な条件下で、バージニア州に方向付けられる場合がある、L.A.において受信される場合がある。現在、バージニア州を利用不可能にする、東海岸での大規模なネットワーク事象が存在する場合、トラフィックは、代わりに、この場合は、アジアに位置し得る、次に近い利用可能な領域へルーティングすることができる。バージニア州がオンラインに戻った時、バージニア州は、再び、より良好な選択肢となる場合があり、そのため、その後のトラフィックは、バージニア州へルーティングされる場合がある。種々の他の要因も、動的決定に含めることができる。例えば、顧客群の大多数が、西海岸に存在し、比較的少数が他の場所に存在する場合がある。したがって、顧客は、顧客トラフィックの大部分が指定される領域へ行き、より少ない量が他方の領域へ行く、重み付けされたトラフィックの均衡化を要求したい場合がある。いくつかの他のかかる方針のうちのいずれもまた、種々の実施形態の範囲内で実装することができる。
【0051】
種々の方針は、プロバイダによっても実装される場合がある。例えば、プロバイダは、時刻に基づいて、世界中でどこに最高の負荷があるか、日中および夜間の期間における相対相違に基づいて、世界中でどこにその負荷がシフトするか等に基づいて、トラフィックをルーティングすることによって、平均パス長を短縮するように、上で述べられるように、トラフィックが、一日中、異なる領域へルーティングされる、「太陽を追尾する」タイプの方針を実装する場合がある。かかる方針はまた、グローバルな自動スケールを実施することもでき、異なる領域は、時刻または他のかかる要因に基づいて、異なる量のトラフィックを受信、処理、および/または送信することができる。一部の実施形態において、顧客は、大多数のトラフィックが、現在の領域に比較的ローカルにある場所へ適合するために、24時間ごとにわたり、「世界中」のサイトまたはアプリケーションを移動することができる。
【0052】
種々の従来の手法は、いくらかのレベルのグローバルな要求ルーティングソリューションを提供するということが理解されるべきである。例えば、Cambridge, MassachusettsのAkamai Technologiesは、容量に基づいて、動的に負荷を方向付ける能力を有するグローバルなDNSディレクタとともに、アプリケーションが、ネットワークのエッジで実行されることを可能にする、エッジソリューションを提供する。グローバルなDNSディレクタは、データプレーン上では動作するわけではなく、DNSレベルで均衡化に対処するのみである、負荷バランサとして作用することができる。異なる時間帯において、2つのデータセンタが存在する場合、DNSディレクタは、現在の容量の量を示す、各時間帯からの負荷バランサ(または他の構成要素)からの情報を取得することができ、ディレクタは、その容量に少なくとも部分的に基づいて、DNS応答に重み付けすることができる。例えば、負荷または群メンバの変化がある(即ち、いくつかの追加のサーバがオンラインになる)場合、DNSディレクタは、適宜決定を行うことができる。かかる手法は、その能力において比較的制限され、強力に一貫性があるわけではない。さらに、本明細書において述べられる手法に対して、いくらかのタイムラグが存在する。従来の手法は、特に、サービスプロバイダレベルでは、グローバルな再マッピング可能なIPアドレスを利用せず、このため、本開示における種々の利点または実装を提供することができない。
【0053】
ある従来のシステムに関して、種々の実施形態の相違のうちの少なくとも一部を解説するために使用することができる手法は、
図5(a)および5(b)に関して説明することができる。
図5(a)において、上部層としてのインターネット502、中間層としてのサービスプロバイダ504、および下部プロトコル層506(例えば、ルーティングプロトコル基盤)を含む、3つのレベル描写500が例解される。プロトコル層は、良好に接続され、完全にマッピングされ、皆が、プロトコル層の同じエリア内に参加する。
図5(a)の従来の手法において、インターネットがサービスプロバイダに「タッチする」、多くの異なるポイント508が存在する。厳密にそれらのポイントのうちの1つが、トラフィックをルーティングする目的で、特定のIPアドレスを公示するであろう。しかしながら、
図5(b)の手法において、サービスプロバイダ514がインターネット512にタッチする、それらのポイントのうちの2つ以上が、同じグローバルな再マッピング可能なIPアドレスを公示することができる。次いで、ローカルに、IPアドレスが公示されるサイトにおいて、そのIPに対して入ってくるトラフィックは、プロトコル層516が種々の場所518を相互接続することができるように、プロトコル固有の情報とともにカプセル化することができる。
【0054】
種々の実施形態において、相互接続は、NAT翻訳に対する通常のIP等といった、ルーティングプロトコル基盤が存在しない場合、他の手法を使用して提供することができる。例えば、トラフィックは、インターネットから来て、領域固有である、比較的遅く移動するアドレスに翻訳され得る、特定のグローバルなIPアドレスへ行くことができる。次いで、トラフィックは、その領域に向かって前進し得、その領域にある時、アドレスを実際のホストのアドレスに翻訳して、トラフィックを受信し、これは、はるかに速く移動するマッピングを含むことができる。一実施例において、2つのNAT翻訳デバイスは、送信元領域が送信先IPアドレスにコード化される場合、2つ以上のIPアドレスが存在し、それらのアドレスのうちの少なくとも1つが、グローバルな再マッピング可能なIPアドレスである場合に、使用することができる。グローバルなIPアドレスに向かうトラフィックを受信することができ、これは、領域固有の再マッピング可能なIPアドレスへ、効果的に再マッピングすることができる。応答トラフィックは、同様の様式で再マッピングすることができる。
【0055】
かかる手法は、従来の二方向マッピングの代わりに(またはそれに加えて)、効果的に一方向マッピングを利用する。以下のIPアドレスでの状況を考慮されたい。
A=グローバルな再マッピング可能なIPアドレス
B=L.A.固有のIPアドレス
C=内部プロバイダIPアドレス(例えば、ホスト/インスタンスアドレス)
D=L.A.固有のIPアドレス
トラフィックが、グローバルなアドレスAに対応する送信先を有するL.A.に到着する実施例において、そのトラフィックは、適切なインスタンス等に配信されるべき内部アドレスCに直接マッピングすることができる。これは、従来の手法を使用して、ルーティングが作用する方法と同様である。代わりに、トラフィックが、グローバルなアドレスAに向けられる、バージニア州といった、別の領域に到着する場合、バージニア州は、インターネットからのトラフィックをL.A.内のアドレスBへマッピングすることができるように、A→Bへの一方向マッピングを有することができる。プロバイダは、Bがメンバであるアドレスブロック全体が、L.A.内にあるということに気付くことができるため、プロバイダは、トラフィックが意図されるインスタンスに到達することができるように、B→Cへの一方向マッピングを有するL.A.に、インターネット上で、プロバイダのバックボーンを下って、トラフィックを送信することができる。次いで、バージニア州に運搬し戻すことを必要とせずに、トラフィックが直接、インターネットに行くことができるように、いずれの戻りトラフィックも、直接再マッピングに従って、C→Aに行くことができる。
【0056】
少なくとも一部の実施形態において、送信元領域はまた、かかる手法において、コード化することができる。例えば、アイルランドは、A→BではなくA→Dのマッピングを有する場合があるが、BおよびDの両方は、L.A.に位置する。アイルランドにおいて受信されるAに向けられるトラフィックは、送信先アドレスをDへ変更するように、NATプロセスを受け得、それにより、トラフィックを、バックボーンまたはWAN上で、L.A.へ送信することができ、そこで、先の実施例と同様に、同様のD→Cマッピングを実施することができる。しかしながら、この場合、システムは、バージニア州に進入したトラフィックと、アイルランドに進入したトラフィックとの間で、差別化することができる。かかる手法は、L.A.における、トラフィックが進入した領域(しかしながら、必ずしもインスタンスではない)の判断を可能にする。かかる手法は、中間IPが公的にルーティング可能である場合、領域間のトラフィックが、プロバイダネットワーク上でバックホールされる代わりに、インターネットに押し戻されることを可能にすることができる。少なくとも一部の実施形態において、バックホールすべきか、またはインターネット上へ押し出すかどうかの決定は、現在の負荷およびトランジット価格といったいくつかの要因に基づいて、行うことができる。
【0057】
図6は、種々の実施形態に従って使用することができる、グローバルなアドレスを使用して、トラフィックをルーティングするための例示的なプロセス600を例解する。本実施例において、グローバルな再マッピング可能なアドレスは、少なくとも1つの顧客インスタンスに対して選択602される。述べられるように、アドレスは、種々の他のタイプの送信先も指摘することができる。グローバルなアドレスは、中間領域アドレスまたは個々のインスタンスアドレスといった、任意の適切な内部または中間アドレスにもマッピング604することができる。次いで、グローバルなアドレスは、1つ以上の領域から公示606することができ、これは、本明細書において述べられるように、任意の適切な位置とすることができる。また、述べられるように、グローバルなアドレスが公示される領域は、種々の時間に変化することができる。トラフィックが、グローバルな再マッピング可能なアドレスに対して向けられる領域のうちの1つへその後受信される608時、送信先領域を判断610することができる。述べられるように、これは、構成情報に少なくとも部分的に基づいた静的判断とすることができるか、または現在の負荷、現在の利用可能性、領域への距離、ランキング情報等といった要因に基づいた、動的決定とすることができる。
【0058】
判断された送信先領域が、トラフィックが受信されたものと同じ領域であると判断612される場合、トラフィックを、適切なインスタンスに対する内部アドレスへ再マッピングする614ことができ、トラフィックを、そのインスタンスへ配信する616ことができる。トラフィックが受信された領域が、判断されるような送信先領域ではない場合、トラフィックは、送信先領域へ再マッピングする618ことができ、送信先領域へ転送する620ことができる。述べられるように、この転送は、本明細書において述べられる種々の要因に依存して、私的プロバイダネットワークまたは公的ネットワーク上で行うことができる。トラフィックが送信先に到達する時、トラフィックは、適宜、インスタンスへ再マッピングおよび配信することができる。
【0059】
種々の実施形態において、同様のマッピングおよび翻訳は、DNSレベルでも実施することができる。例えば、プロバイダが、所与のホストに対するDNSを制御する場合、DNS応答は、翻訳が、IPアドレス間ではなくむしろ、DNS名とIPアドレスとの間であるように、修正することができる。かかる手法は、例えば、NAT翻訳または他のプロトコル固有のカプセル化の代わりに使用することができる。
【0060】
さらに、ある実施形態は、異なる方法で、変更時前後に受信されるトラフィックに対処することができる。例えば、グローバルなIPおよびDNS名を有するホストは、そのDNS名を新たな領域へルーティングさせたい場合がある。一部の実施形態において、旧領域で受信される全てのトラフィックは、ドロップされる可能性がある。しかしながら、少なくとも一部の実施形態において、システムは、最終的な送信先がまだ分からない、または利用可能でない可能性がある場合でさえ、トラフィックを新たな領域へ方向付けることができる。状態情報が維持されている、さらに他の実施形態において、取引は、先の領域においてライブであったサービスであり続けることができる。既存の取引は、旧領域において処理することができ、新たなトラフィックは、遷移期間中、トラフィックをドロップすることを回避するために、新たな領域へ送信される。
【0061】
種々の他の手法も、上で説明される機能性のうちの少なくとも一部を利用することができる。例えば、インターネットプロトコルバージョン6(IPv6)を利用するシステムは、IPv6が従来の手法に従うNATでは利用しない場合でさえも、かかる手法を利用することができる。しかしながら、本明細書において述べられる種々のアドレス翻訳手法を利用することができるように、中間IPアドレスを依然として使用することができる。他の手法において、グローバルなIPから領域固有のIPへの第1の翻訳を有した領域に到着するトラフィックは、通常のように、グローバルに固有のIPアドレスに翻訳し戻し、配信することができる。少なくとも一部の実施形態において、アドレス公示は、クラウドフロントの存在点(POP)に延長することができる。かかる手法を使用して、任意の所望の調節をより迅速に行うことができるように、トラフィックを、プロバイダのネットワーク上へ迅速に移動させることができる。
【0062】
種々の実施形態は、以下の項を考慮して説明することができる。
【0063】
第1項.ネットワークトラフィックを方向付けるコンピュータ実装方法であって、
実行可能な命令とともに構成される1つ以上のコンピュータシステムの制御下で、
グローバルな再マッピング可能なインターネットプロトコル(IP)アドレスを、複数のネットワーク場所の少なくとも1つのネットワーク場所に位置する、少なくとも1つの仮想インスタンスへマッピングすることと、
それらのネットワーク場所のうちの少なくとも2つから、グローバルな再マッピング可能なIPアドレスを公示することと、
グローバルな再マッピング可能なIPアドレスが公示される、少なくとも2つのネットワーク場所の受信ネットワーク場所へのネットワークトラフィックを受信することと、
ネットワークトラフィックに対する送信先ネットワーク場所を判断することと、
送信先ネットワーク場所が受信ネットワーク場所である時、ネットワークトラフィックを再マッピングし、少なくとも1つの仮想インスタンスの標的インスタンスへ、ネットワークトラフィックを配信することと、
送信先ネットワーク場所が、受信ネットワーク場所とは異なる時、
送信先ネットワーク場所に対する中間IPアドレスへ、ネットワークトラフィックを再マッピングすることと、
ネットワークトラフィックを、送信先ネットワーク場所における中間IPアドレスへ送信することと、
ネットワークトラフィックが送信先ネットワーク場所で受信される時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的インスタンスへ配信することと、を含む、方法。
【0064】
第2項.
ネットワークトラフィックを受信するサービスプロバイダの私的ネットワーク上で、またはインターネット上で、送信先ネットワーク場所における中間IPアドレスへ、ネットワークトラフィックを送信するかどうかを判断することをさらに含む、第1項に記載のコンピュータ実装方法。
【0065】
第3項.私的ネットワークまたはインターネット上で、中間IPアドレスへネットワークトラフィックを送信するかどうかを判断することは、私的ネットワークの現在の負荷に少なくとも部分的に基づく、請求項2に記載のコンピュータ実装方法。
【0066】
第4項.ネットワークトラフィックを方向付けるコンピュータ実装方法であって、
実行可能な命令とともに構成される1つ以上のコンピュータシステムの制御下で、
サービスプロバイダネットワークへのネットワークトラフィックを受信することであって、ネットワークトラフィックは、サービスプロバイダネットワークの少なくとも1つのポイントから公示される、グローバルな再マッピング可能なアドレスへ受信され、各ポイントは、異なるネットワーク場所に存在すること、およびサービスプロバイダネットワークの標的送信先へマッピングされることが可能である、受信することと、
標的送信先の
送信先ネットワーク場所が、ネットワークトラフィックが受信される受信ネットワーク場所と同じである時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的送信先へ配信することと、
送信先ネットワーク場所が、受信ネットワーク場所とは異なる時、
ネットワークトラフィックを、送信先ネットワーク場所に対するサービスプロバイダネットワークの中間アドレスへ再マッピングすることと、
ネットワークトラフィックを、送信先ネットワーク場所における中間アドレスへ送信することと、
ネットワークトラフィックが送信先ネットワーク場所で受信される時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的送信先へ配信することと、を含む、方法。
【0067】
第5項.グローバルな再マッピング可能なアドレスは、サービスプロバイダネットワークの少なくとも2つのポイントから公示される、第4項に記載のコンピュータ実装方法。
【0068】
第6項.再マッピング可能なグローバルアドレスは、グローバルな再マッピング可能なインターネットプロトコル(IP)アドレスであり、
サービスプロバイダは、ドメイン名システム(DNS)またはボーダゲートウェイプロトコル(border gateway protocol:BGP)ルーティングのうちの少なくとも1つを使用して、ネットワークトラフィックのグローバルなルーティングを可能にする、第4項に記載のコンピュータ実装方法。
【0069】
第7項.標的送信先は、マルチテナントリソース環境における、少なくとも1つの仮想機械に対応する、第4項に記載のコンピュータ実装方法。
【0070】
第8項.標的送信先に対応する顧客は、標的送信先を判断する上で有用な少なくとも1つの方針を提出することが可能になる、第4項に記載のコンピュータ実装方法。
【0071】
第9項.顧客は、少なくとも1つのアプリケーションプログラミングインターフェース(API)を通して、更新された方針を提出することができる、第7項に記載のコンピュータ実装方法。
【0072】
第10項.顧客は、ネットワーク場所ごとに少なくとも1つの方針を提出することができる、第8項に記載のコンピュータ実装方法。
【0073】
第11項.異なるネットワーク場所は、地理的に分散した領域、または異なるプロバイダによって運用されるネットワークのうちの少なくとも1つに対応する、第4項に記載のコンピュータ実装方法。
【0074】
第12項.標的送信先を判断するための方針は、特定の時刻に、ネットワークトラフィックを方向付けるべきネットワーク場所を指定する、第4項に記載のコンピュータ実装方法。
【0075】
第13項.少なくとも1つの方針は、標的送信先を判断するために利用され、少なくとも1つの方針は、ネットワークトラフィックの発信場所、ネットワークトラフィックに対応する顧客のタイプ、またはネットワークトラフィックと関連付けられる財務的考慮の量のうちの少なくとも1つに基づいて、標的送信先を判断する、第4項に記載のコンピュータ実装方法。
【0076】
第14項.標的送信先は、ネットワークトラフィックが受信されるネットワーク場所に少なくとも部分的に基づいて、トラフィックをルーティングすべきネットワーク場所を示す、静的構成情報を使用して、判断される、第4項に記載のコンピュータ実装方法。
【0077】
第15項.標的送信先は、あるネットワーク場所の現在の負荷、およびあるネットワーク場所のネットワーク近接性のうちの少なくとも1つを含む要因に基づいて、動的に判断される、第4項に記載のコンピュータ実装方法。
【0078】
第16項.標的送信先は、種々のネットワーク場所をランク付けするリスト、およびグローバルに再マッピング可能なアドレスがアクティブである、ネットワーク場所のリストを使用して判断される、第4項に記載のコンピュータ実装方法。
【0079】
第17項.グローバルな再マッピング可能なアドレスは、異なる国および異なる大陸のうちの少なくとも1つにおけるネットワーク場所から、公示されることが可能である、第4項に記載のコンピュータ実装方法。
【0080】
第18項.ネットワークトラフィックは、公的または私的ネットワークを使用して、中間アドレスへ送信されることが可能である、第4項に記載のコンピュータ実装方法。
【0081】
第19項.グローバルな再マッピング可能なアドレス、中間アドレス、および送信先アドレス間のマッピングのうちの少なくとも一部は、一方向である、第4項に記載のコンピュータ実装方法。
【0082】
第20項.グローバルな再マッピング可能なアドレスは、グローバルな再マッピング可能なアドレスが公示される、いくつかのネットワーク場所よりも少ないネットワーク場所へマッピングされることが可能である、第4項に記載のコンピュータ実装方法。
【0083】
第21項.グローバルな再マッピング可能なアドレスが公示される、少なくとも1つのネットワーク場所は、少なくともあるタイプのトラフィックが、処理のために伝送されることができるか、または承認される、ローカルリソースを有しない、第17項に記載のコンピュータ実装方法。
【0084】
第22項.ネットワークトラフィックは、エニーキャスト手法を使用して方向付けられる、第4項に記載のコンピュータ実装方法。
【0085】
第23項.顧客は、重み付けされたトラフィックの均衡化を指定することができ、受信されたトラフィックのおおよその量は、少なくとも1つのネットワーク場所へ方向付けられる、第4項に記載のコンピュータ実装方法。
【0086】
第24項.アドレスは、新たな仮想機械へグローバルに再マッピング可能であり、既存の取引は、先の仮想機械を使用して処理することが可能である一方、新たな取引は、処理のために、新たな仮想機械へ方向付けられる、第4項に記載のコンピュータ実装方法。
【0087】
第25項.ネットワークトラフィックを管理するためのシステムであって、
プロセッサと、
プロセッサによって実行される時、プロセッサに、
サービスプロバイダネットワークへのネットワークトラフィックを受信することであって、ネットワークトラフィックは、サービスプロバイダネットワークの少なくとも1つのポイントから公示される、グローバルな再マッピング可能なアドレスへ受信され、各ポイントは、異なるネットワーク場所に存在すること、およびサービスプロバイダネットワークの標的送信先へマッピングされることが可能である、受信することと、
標的送信先の
送信先ネットワーク場所が、ネットワークトラフィックが受信される受信ネットワーク場所と同じである時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的送信先へ配信することと、
送信先ネットワーク場所が、受信ネットワーク場所とは異なる時、
ネットワークトラフィックを、送信先ネットワーク場所に対するサービスプロバイダネットワークの中間アドレスへ再マッピングすることと、
ネットワークトラフィックを、送信先ネットワーク場所における中間アドレスへ送信し、それにより、ネットワークトラフィックが送信先ネットワーク場所で受信される時、ネットワークトラフィックを標的送信先へ再マッピングおよび配信することができることと、を行わせる、命令を含む、メモリデバイスと、を備える、システム。
【0088】
第26項.標的送信先は、方針、ランキングリスト、ネットワーク負荷、または静的構成のうちの少なくとも1つに従って判断される、第25項に記載のシステム。
【0089】
第27項.ネットワークトラフィックは、公的または私的ネットワークを使用して、中間アドレスへ送信されることが可能である、第25項に記載のシステム。
【0090】
第28項.ネットワークトラフィックを管理するための命令を記憶する、非一時的なコンピュータが読み取り可能な記憶媒体であって、命令は、プロセッサによって実行される時、プロセッサに、
サービスプロバイダネットワークへのネットワークトラフィックを受信することであって、ネットワークトラフィックは、サービスプロバイダネットワークの少なくとも1つのポイントから公示される、グローバルな再マッピング可能なアドレスへ受信され、各ポイントは、異なるネットワーク場所に存在すること、およびサービスプロバイダネットワークの標的送信先へマッピングされることが可能である、受信することと、
標的送信先の
送信先ネットワーク場所が、ネットワークトラフィックが受信される受信ネットワーク場所と同じである時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的送信先へ配信することと、
送信先ネットワーク場所が、受信ネットワーク場所とは異なる時、
ネットワークトラフィックを、送信先ネットワーク場所に対するサービスプロバイダネットワークの中間アドレスへ再マッピングすることと、
ネットワークトラフィックを、送信先ネットワーク場所における中間アドレスへ送信し、それにより、ネットワークトラフィックが送信先ネットワーク場所で受信される時、ネットワークトラフィックを標的送信先へ再マッピングおよび配信することができることと、を行わせる、非一時的なコンピュータが読み取り可能な記憶媒体。
【0091】
第29項.グローバルな再マッピング可能なアドレス、中間アドレス、および送信先アドレス間のマッピングのうちの少なくとも一部は、一方向である、第28項に記載の非一時的なコンピュータが読み取り可能な記憶媒体。
【0092】
上で述べられるように、種々の実施形態は、一部の場合において、いくつかのアプリケーションのうちのいずれかを動作させるために使用することができる、1つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができる、多種多様な動作環境において、実装することができる。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータといった、いくつかの汎用パーソナルコンピュータ、ならびにモバイルソフトウェアを実行し、いくつかのネットワーキングおよびメッセージングプロトコルをサポートすることが可能なセルラ、無線、および手持ち式のデバイスのうちのいずれも含むことができる。かかるシステムはまた、開発およびデータベース管理といった目的のための多様な商業的に利用可能なオペレーティングシステムおよび他の既知のアプリケーションのうちのいずれかを実行する、いくつかのワークステーションを含むことができる。これらのデバイスはまた、ダミー端末、シンクライアント、ゲームシステム、およびネットワークを介して通信することが可能な他のデバイスといった、他の電子デバイスを含むことができる。
【0093】
種々の態様はまた、サービス志向のアーキテクチャの一部であり得るように、少なくとも1つのサービスまたはウェブサービスの一部として実装することができる。ウェブサービスといったサービスは、例えば、拡張マークアップ言語(XML)様式のメッセージを使用することによって、任意の適切なタイプのメッセージングを使用して通信し、SOAP(「シンプル・オブジェクト・アクセス・プロトコル(Simple Object Access Protocol)」に由来)といった適切なプロトコルを使用して交換することができる。かかるサービスによって提供または実行されるプロセスは、ウェブサービス記述言語(Web Services Description Language:WSDL)といった任意の適切な言語で書くことができる。WSDLといった言語を使用することは、種々のSOAPフレームワークにおける、クライアント側コードの自動生成といった機能性を可能にする。
【0094】
ほとんどの実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、およびAppleTalkといった、多様な商業的に利用可能なプロトコルのうちのいずれかを使用した通信をサポートするための、当業者にはよく知られているであろう、少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想私的ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびこれらの任意の組み合わせとすることができる。
【0095】
ウェブサーバを利用する実施形態において、ウェブサーバは、多様なサーバまたはミッドティアアプリケーションのいずれかを実行することができ、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Javaサーバ、およびビジネスアプリケーションサーバが含まれる。サーバ(複数を含む)はまた、例えば、Java(登録商標)、C、C#、もしくはC++といった任意のプログラミング言語、またはPerl、Python、もしくはTCL、ならびにこれらの組み合わせといった任意のスクリプト言語で書かれる、1つ以上のスクリプトまたはプログラムとして実装されてもよい、1つ以上のウェブアプリケーションを実行することによって、ユーザデバイスからの応答要求におけるプログラムまたはスクリプトを実行することが可能であってもよい。サーバ(複数を含む)はまた、限定することなく、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)から商業的に利用可能なものを含む、データベースサーバを含んでもよい。
【0096】
環境は、上で述べられるような多様なデータストアおよび他のメモリおよび記憶媒体を含むことができる。これらは、コンピュータのうちの1つ以上にローカルな(および/もしくはその中に常駐する)、またはネットワークにわたって、コンピュータのうちのいずれかもしくは全てからリモートの記憶媒体上といった多様な場所に常駐することができる。特定の組の実施形態において、情報は、当業者にはよく知られているストレージエリアネットワーク(「SAN」)に常駐してもよい。同様に、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を実施するためのいずれの必要なファイルも、適切に、ローカルおよび/またはリモートで記憶されてもよい。システムが、コンピュータ化されたデバイスを含む場合、かかる各デバイスは、バスを介して電気的に結合されてもよいハードウェア要素を含むことができ、要素には、例えば、少なくとも1つの中央処理装置(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、および少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタ、またはスピーカ)が含まれる。かかるシステムはまた、ディスクドライブ、光学記憶デバイス、およびランダムアクセスメモリ(「RAM」)または読み取り専用メモリ(「ROM」)といったソリッドステート記憶デバイス、ならびに取り外し可能なメディアデバイス、メモリカード、フラッシュカード等といった、1つ以上の記憶デバイスを含んでもよい。
【0097】
かかるデバイスはまた、上で説明されるように、コンピュータが読み取り可能な記憶媒体読取器、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス等)、およびワーキングメモリを含むことができる。コンピュータが読み取り可能な記憶媒体読取器は、コンピュータが読み取り可能な記憶媒体と接続、またはそれを受容するように構成することができ、一時的および/またはより永続的に、コンピュータが読み取り可能な情報を含有、記憶、伝送、および取り出しするための、リモート、ローカル、固定、および/または取り外し可能な記憶デバイス、ならびに記憶媒体を表す。システムおよび種々のデバイスはまた、典型的に、いくつかのソフトウェアアプリケーション、モジュール、サービス、または少なくとも1つのワーキングメモリデバイス内に位置する他の要素を含み、オペレーティングシステム、およびクライアントアプリケーションまたはウェブブラウザといったアプリケーションプログラムが含まれる。代替の実施形態は、上で説明されるものからの多数の改変を有し得るということが理解されるべきである。例えば、カスタム化されたハードウェアもまた、使用される場合がある、および/または特定の要素が、ハードウェア、ソフトウェア(アプレットといったポータブルソフトウェアを含む)、またはその両方において、実装される場合がある。さらに、ネットワーク入力/出力デバイスといった他のコンピューティングデバイスへの接続が採用されてもよい。
【0098】
コード、またはコードの一部分を含有するための記憶媒体およびコンピュータが読み取り可能な媒体は、記憶媒体および通信媒体を含む、当該技術分野において既知の任意の適切な媒体を含むことができ、コンピュータが読み取り可能な命令、データ構造、プログラムモジュール、または他のデータといった情報の記憶および/または伝送のための任意の方法または技術において実装される、揮発性および非揮発性の取り外し可能な、および取り外し不可能な媒体に限定されないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、または他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイス、あるいは所望の情報を記憶するために使用することができ、システムデバイスによってアクセスすることができる、任意の他の媒体が含まれる。本開示および本明細書において提供される教示に基づいて、当業者は、種々の実施形態を実装するための他の仕方および/または方法を理解するであろう。
【0099】
したがって、本明細書および図面は、制限的な意味ではなくむしろ例解的な意味で見なされるものとする。しかしながら、請求項に記載される本発明の広義の精神および範囲から逸脱することなく、それに種々の修正および変更が行われ得るということが明白であろう。