(57)【特許請求の範囲】
【請求項１】
ネットワークトラフィックを方向付けるコンピュータ実装方法であって、
実行可能な命令とともに構成される１つ以上のコンピュータシステムの制御下で、
サービスプロバイダネットワークへのネットワークトラフィックを受信することであって、前記ネットワークトラフィックは、前記サービスプロバイダネットワークの少なくとも１つのポイントから公示される、グローバルな再マッピング可能なアドレスへ受信され、各ポイントは、異なるネットワーク場所に存在すること、および前記サービスプロバイダネットワークの標的送信先へマッピングされることが可能である、受信することと、
前記標的送信先の送信先ネットワーク場所が、前記ネットワークトラフィックが受信される、受信ネットワーク場所と同じである時、前記ネットワークトラフィックを再マッピングし、前記ネットワークトラフィックを前記標的送信先へ配信することと、
前記送信先ネットワーク場所が、前記受信ネットワーク場所とは異なる時、
前記ネットワークトラフィックを、前記送信先ネットワーク場所に対する前記サービスプロバイダネットワークの中間アドレスへ再マッピングすることと、
前記ネットワークトラフィックを、前記送信先ネットワーク場所における前記中間アドレスへ送信することと、
前記ネットワークトラフィックが前記送信先ネットワーク場所における前記中間アドレスで受信される時、前記ネットワークトラフィックを再マッピングし、前記ネットワークトラフィックを前記標的送信先へ配信することと、を含む、方法。
【請求項２】
前記グローバルな再マッピング可能なアドレスは、前記サービスプロバイダネットワークの少なくとも２つのポイントから公示される、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記再マッピング可能なグローバルアドレスは、グローバルな再マッピング可能なインターネットプロトコル（ＩＰ）アドレスであり、
前記サービスプロバイダは、ドメイン名システム（ＤＮＳ）またはボーダゲートウェイプロトコル（ｂｏｒｄｅｒ  ｇａｔｅｗａｙ  ｐｒｏｔｏｃｏｌ：ＢＧＰ）ルーティングのうちの少なくとも１つを使用して、前記ネットワークトラフィックのグローバルなルーティングを可能にする、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記異なるネットワーク場所は、地理的に分散した領域、または異なるプロバイダによって運用されるネットワークのうちの少なくとも１つに対応する、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記ネットワークトラフィックをルーティングするための方針は、特定の時刻に、前記ネットワークトラフィックを方向付けるべきネットワーク場所を指定する、請求項１に記載のコンピュータ実装方法。
【請求項６】
少なくとも１つの方針は、前記ネットワークトラフィックをルーティングするために利用され、前記少なくとも１つの方針は、前記ネットワークトラフィックの発信場所、前記ネットワークトラフィックに対応する顧客のタイプ、または前記ネットワークトラフィックと関連付けられる財務的考慮の量のうちの少なくとも１つに基づいて、前記ネットワークトラフィックをルーティングする、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記ネットワークトラフィックのルーティング先は、前記ネットワークトラフィックが受信されるネットワーク場所に少なくとも部分的に基づいて、前記トラフィックをルーティングすべきネットワーク場所を示す、静的構成情報を使用して、判断される、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記ネットワークトラフィックのルーティング先は、あるネットワーク場所の現在の負荷、およびあるネットワーク場所のネットワーク近接性のうちの少なくとも１つを含む要因に基づいて、動的に判断される、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記ネットワークトラフィックのルーティング先は、種々のネットワーク場所をランク付けするリスト、および前記グローバルに再マッピング可能なアドレスがアクティブである、ネットワーク場所のリストを使用して判断される、請求項１に記載のコンピュータ実装方法。
【請求項１０】
前記グローバルな再マッピング可能なアドレス、中間アドレス、および前記標的送信先のアドレス間の前記マッピングのうちの少なくとも一部は、一方向である、請求項１に記載のコンピュータ実装方法。
【請求項１１】
前記ネットワークトラフィックは、エニーキャスト手法を使用して方向付けられる、請求項１に記載のコンピュータ実装方法。
【請求項１２】
顧客は、重み付けされたトラフィックの均衡化を指定することができ、前記受信されたトラフィックのおおよその量は、少なくとも１つのネットワーク場所へ方向付けられる、請求項１に記載のコンピュータ実装方法。
【請求項１３】
アドレスは、新たな仮想機械へグローバルに再マッピング可能であり、既存の取引は、先の仮想機械を使用して処理することが可能である一方、新たな取引は、処理のために、新たな仮想機械へ方向付けられる、請求項１に記載のコンピュータ実装方法。
【請求項１４】
ネットワークトラフィックを管理するためのシステムであって、
プロセッサと、
前記プロセッサによって実行される時、前記プロセッサに、
サービスプロバイダネットワークへのネットワークトラフィックを受信することであって、前記ネットワークトラフィックは、前記サービスプロバイダネットワークの少なくとも１つのポイントから公示される、グローバルな再マッピング可能なアドレスへ受信され、各ポイントは、異なるネットワーク場所に存在すること、および前記サービスプロバイダネットワークの標的送信先へマッピングされることが可能である、受信することと、
前記標的送信先の送信先ネットワーク場所が、前記ネットワークトラフィックが受信される、受信ネットワーク場所と同じである時、前記ネットワークトラフィックを再マッピングし、前記ネットワークトラフィックを前記標的送信先へ配信することと、
前記送信先ネットワーク場所が、前記受信ネットワーク場所とは異なる時、
前記ネットワークトラフィックを、前記送信先ネットワーク場所に対する前記サービスプロバイダネットワークの中間アドレスへ再マッピングすることと、
前記ネットワークトラフィックを、前記送信先ネットワーク場所における前記中間アドレスへ送信し、それにより、前記ネットワークトラフィックが前記送信先ネットワーク場所における前記中間アドレスで受信される時、前記ネットワークトラフィックを、前記標的送信先へ再マッピングおよび配信することができることと、を行わせる、命令を含む、メモリデバイスと、を備える、システム。
【請求項１５】
前記ネットワークトラフィックのルーティング先は、方針、ランキングリスト、ネットワーク負荷、または静的構成のうちの少なくとも１つに従って判断される、請求項１４に記載のシステム。
【請求項１６】
前記ネットワークトラフィックは、公的または私的ネットワークを使用して、前記中間アドレスへ送信されることが可能である、請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［背景技術］
ますます多くのアプリケーションおよびサービスが、インターネットといったネットワーク上で利用可能になるにつれて、ますます多くのコンテンツ、アプリケーション、および／またはサービスプロバイダが、マルチテナントリソースおよびクラウドコンピューティングといった技術に転換している。これらの技術は、これらのリソースを提供するために使用されるハードウェアおよび／またはソフトウェアが、任意の所与の時間に、複数の顧客のニーズを満たすように、動的に拡張可能であり得る場合、顧客が、物理であれ仮想であれ、種々のタイプの電子リソースにアクセスおよび／またはそれらを利用することを可能にする。顧客は、典型的に、これらのリソースへアクセスするためにレンタル、リース、またはそうでなければ支払い、このため、これらのリソースによって提供される機能性を得るために、ハードウェアおよび／またはソフトウェアを購入および維持する必要はない。
【０００２】
従来の手法を使用して、顧客は、顧客がアクセスを有する、適切なリソースが位置付けられるいかなる場所でも、インスタンスを起動することができる。しかしながら、静的アドレスが、そのインスタンスと関連付けられる場合、その静的アドレス向けのトラフィックは、ネットワーク障害または他のかかる発生の場合、ドロップされる可能性がある。一部の手法において、顧客は、既存の名前（例えば、ＤＮＳ名）を、新たなインスタンスの公的なアドレスへ再マッピングすることができるが、かかる手法は、アドレスがインターネットを通って伝搬するのに、数時間かかり得、そのため、終了されたまたは利用不可能なインスタンスが要求を受信し続ける間、新たなインスタンスがトラフィックを受信しない可能性がある。さらに、アドレスを再マッピングする時でさえも、顧客は、特定の領域に限定される場合があり、これは、領域的なネットワークの停止または他のかかる事象の場合に、問題となり得る。
【図面の簡単な説明】
【０００３】
本開示に従う種々の実施形態を、図面を参照して説明する。
【図１】種々の実施形態を実装することができる環境を例解する。
【図２】種々の実施形態に従って使用することができる、制御プレーンおよびデータプレーンの例示的な分離を例解する。
【図３】種々の実施形態に従って使用することができる、顧客ネットワーク場所の例示的な分配を例解する。
【図４】種々の実施形態に従って使用することができる、顧客ネットワーク場所に対する、例示的なランキングリストを例解する。
【図５（ａ）】従来の手法における、および種々の実施形態に従う、ポイントのマッピングの描写を例解する。
【図５（ｂ）】従来の手法における、および種々の実施形態に従う、ポイントのマッピングの描写を例解する。
【図６】種々の実施形態に従って使用することができる、トラフィックを方向付けるための例示的なプロセスを例解する。
【発明を実施するための形態】
【０００４】
本開示の種々の実施形態に従うシステムおよび方法は、電子環境におけるトラフィックの管理への従来の手法において経験される、前述および他の欠陥のうちの１つ以上を克服することができる。特に、種々の実施形態に従う手法は、グローバルに再位置付け可能である、再マッピング可能なアドレスの使用を提供する。これらの再マッピング可能なグローバルアドレスは、顧客が、複数のポイントおよび／またはネットワーク場所（例えば、地理的に分離した領域、もしくは異なるプロバイダによって運用される異なるネットワークスタック）からアドレスを公示することを可能にしつつ、それらのネットワーク場所で受信されるトラフィックが、任意の所与の時間に、適切なインスタンスまたは他の送信先に方向付けられることを可能にする。かかる手法は、トラフィックをドロップする重大なリスクを伴わずに、動的トラフィック管理を可能にする。
【０００５】
少なくとも一部の実施形態において、グローバルなアドレスが公示された場所へ受信される要求は、トラフィックを方向付けるために、プロバイダ自身のネットワークを利用することを必要とせずに、可能な限り迅速に、間接的に再マッピングし、インターネット上に送信し戻すことができる。一実施例において、第２の領域内の場所に向かう、第１の領域におけるメッセージを開始する顧客は、メッセージを、第１の領域におけるインターネットへ送信させ、インターネット上で、第２の領域に送信させることができ、インターネット構成要素が、どのように要求を第２の領域内のアドレスに持っていくかの判断を担う。かかる手法は、プロバイダが、プロバイダ自身のネットワークにわたって、第２の領域へそのトラフィックを搬送することを阻止するが、少なくとも一部の実施形態において、プロバイダは、ある状況下で、私的ネットワークを使用することを判断することができる。かかる手法は、任意の適切な時間に、任意の適切な目的のための領域間インスタンス移行を可能にする。メッセージが最初に、送信先領域へ受信される場合、メッセージを、直接、適切なインスタンスへ再マッピングし、処理のために、そのインスタンスへ配信することができる。
【０００６】
一部のかかる実施形態において、特定の再マッピング可能なグローバルなアドレスは、アドレス空間の一部のみが、種々の存在点（ｐｏｉｎｔｓ  ｏｆ  ｐｒｅｓｅｎｔ：ＰＯＰ）または他のインターフェースポイントにおいて、公示されているように、使用することができる。その一部は、一部または全てのＰＯＰにおいて公示することができ、一部の場合において、アドレス空間の異なるセクションを、異なるＰＯＰグループから公示することができる。一部の実施形態において、アドレスブロックのサイズは、プロバイダが、その空間の少なくとも一部分を広告するべき領域を選択的に選ぶことができるように、十分に大きいように選択することができる。大量のトラフィックがプロバイダネットワーク上で運搬される必要があり得るという理解の下、一部の実施形態において、一部または全ての領域において広告することができる、事前に割り当てられたアドレスのブロックを使用することができる。大きい顧客は、潜在的に、グローバルに広告されるブロックから、いくつかの再マッピング可能なアドレスを利用し、どのようにトラフィックをより小規模で方向付けるかの判断に対応し得る。一部の実施形態において、アドレスは、受信されたトラフィックを処理することができるものよりも多くのネットワーク場所から公示される。少なくとも一部の実施形態において、あるネットワーク場所は、ある顧客に対するトラフィック等といった、あるタイプのトラフィックを処理することが承認されていない。一部の場合において、ネットワーク領域は、特定のタイプのトラフィックを方向付けることができない、ある他の領域を公示する場合がある。
【０００７】
一部の場合において、プロバイダは、顧客が停止を検出する必要がない、および／または任意の関連問題に対処する必要があるように、ステータス情報を監視し、必要に応じて、アドレスを自動的に再マッピングすることができる。少なくとも一部の実施形態において、顧客は、どのようにアドレスが再マッピングされるべきか、およびそれらのアドレスを再マッピングさせる状況または基準を特定するための１つ以上の方針を特定することできる。一部の場合において、顧客は、あるマッピングが、顧客が予め特定する自動的様式において、一定の時間に発生するように、方針を特定することできる。他の場合において、顧客は、ある再マッピングが、あるタイプの事象（例えば、領域障害）の発生に応答して、発生するべきであることを特定することできる。任意の適切なエンティティによって提供または特定され得るように、他の方針も使用することができる。例えば、プロバイダは、顧客トラフィックをルーティングするように、１つ以上の方針を利用する場合があり、ここでは、ルーティングは、トラフィックの発信場所もしくはアドレス、トラフィックに対応する顧客のタイプ、またはトラフィックと関連付けられる財務的考慮の量に少なくとも部分的に基づいて、判断される。
【０００８】
少なくとも一部の実施形態において、顧客は、例えば、送信先領域のランキングを調節するように、静的構成情報を特定および／または更新する能力を有することができる。例えば、顧客は、トラフィックを、ミネソタ州と関連付けられる領域内の場所に方向付けることを特定したい場合がある。顧客は、更新された構成情報を特定するＡＰＩ呼び出しを提出することができ、次いで、この情報を、必要な構成リスト（複数を含む）を更新するように、必要に応じて、伝搬させることができる。少なくとも一部の実施形態において、顧客は、異なる領域および／または異なる時間に対して、異なる構成情報もしくは方針を特定することができる。少なくとも一部の実施形態において、判断は、その場所が存続しており、かつ利用可能であるかどうかといった、少なくとも１つの領域のステータス、ならびに現在の領域からのその領域までの距離、および現在の領域と潜在的な標的領域との間の負荷といった、他の情報に関して、行うことができる。
【０００９】
種々の方針は、プロバイダによっても実装される場合がある。例えば、プロバイダは、ある方針を実装し、それによって、トラフィックが一日中、異なる領域にルーティングされる場合がある。かかる方針はまた、グローバルな自動スケールを実施することもでき、異なる領域は、時刻または他のかかる要因に基づいて、異なる量のトラフィックを受信、処理、および／または送信することができる。
【００１０】
一実施形態において、ドメイン名システム（ＤＮＳ）ベースの手法を使用することができ、ホストに対するＤＮＳエントリは、新たな領域において公示される範囲内であるように変更または更新される、対応するインターネットプロトコル（ＩＰ）アドレスを有する。異なるＩＰアドレス範囲は、異なる領域において公示することができ、トラフィックを新たな（または異なる）領域へ方向付けることが所望される時、適切なホストは、その新たな領域の範囲内の値を含むように更新される、ＤＮＳエントリを有することができる。他の実施形態は、例えば、ボーダゲートウェイパトロール（ｂｏｒｄｅｒ  ｇａｔｅｗａｙ  ｐａｔｒｏｌ：ＢＧＰ）情報を管理することによって、あるプロトコルに対してデータを制御することができる。
【００１１】
種々の実施形態は、ユーザが種々の態様のデータ環境またはデータプレーンを特定および管理することを可能にするように使用することができる別個の制御環境または制御プレーンを提供する。この「セルフサービス」機能性は、一組のウェブサービスを介して、提供することができ、ユーザおよび制御プレーンが、仮想データベースアドミニストレータ（ＤＢＡ）としてともに作用することを可能にする。ユーザまたは顧客は、例えば、複数の外部から可視的なアプリケーションプログラミングインターフェース（ＡＰＩ）のうちの１つを通じて、制御プレーンに要求を提出することができる。種々のＡＰＩは、データ環境における種々のリソースに関して、特定の機能を実施するために使用することができる。ＡＰＩのうちの１つへ受信される要求は、顧客インスタンスを起動するための行為といった、データプレーンにおいて実施されるべき所望の行為（複数を含む）を判断するために、ならびにインスタンスを起動する上で使用される任意の構成パラメータを判断するために、分析することができる。リソース管理構成要素といった構成要素は、行為に対する適切なタスクを判断し、適切な起動構成が選択されることを確実とし、適切な順序でタスクを実行させることができる。これらのタスクのうちの少なくとも１つは、典型的に、例えば、あるアスペクトのリソースインスタンスを起動するまたは調節するように、データ環境において実施される。
【００１２】
種々の他の機能および利点は、種々の実施形態に従って提供され得るように、以下で説明および提唱される。
【００１３】
図１は、種々の実施形態に従う態様を実装するための環境１００の実施例を例解する。理解されるように、ウェブベースの環境が、解説目的のために使用されるが、異なる環境が、種々の実施形態を実装するように、適切に、使用されてもよい。環境１００は、要求、メッセージ、または情報を適切なネットワーク１０４上で送信および受信し、情報をデバイスのユーザに伝達するように動作可能な、任意の適切なデバイスを含むことができる、電子クライアントデバイス１０２を含む。かかるクライアントデバイスの例としては、パーソナルコンピュータ、携帯電話、手持ち式のメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、個人用データ補助装置、電子書籍リーダ等が挙げられる。ネットワークは、イントラネット、インターネット、セルラネットワーク、ローカルエリアネットワーク、もしくは任意の他のかかるネットワーク、またはこれらの組み合わせを含む、任意の適切なネットワークを含むことができる。かかるシステムに対して使用される構成要素は、選択されるネットワークおよび／または環境のタイプに少なくとも部分的に依存し得る。かかるネットワークを介して通信するためのプロトコルおよび構成要素は、公知であり、本明細書において詳細には述べられない。ネットワーク上での通信は、ワイヤまたはワイヤレス接続、およびこれらの組み合わせによって可能にすることができる。本実施例において、環境は、要求を受信し、それに応答してコンテンツをサーブするためのウェブサーバ１０６を含むため、ネットワークは、インターネットを含むが、当業者には明らかであろうように、他のネットワークに関しては、同様の目的を果たす代替的なデバイスが使用され得る。
【００１４】
例解的な環境は、少なくとも１つのアプリケーションサーバ１０８、およびデータストア１１０を含む。適切なデータストアからデータを得るといったタスクを実施するように相互作用することができる、連鎖またはその他の方法で構成され得る、いくつかのアプリケーションサーバ、層、または他の要素、プロセス、または構成要素が存在し得るということが理解されるべきである。本明細書において使用される際、「データストア」という用語は、任意の標準、分散、またはクラスタ環境において、任意の組み合わせおよび数のデータサーバ、データベース、データ記憶デバイス、およびデータ記憶媒体を含み得る、データを記憶する、それにアクセスする、それを取り出すことが可能な、任意のデバイスまたはデバイスの組み合わせを指す。アプリケーションサーバは、クライアントデバイスに対する１つ以上のアプリケーションの態様を実行するように、必要に応じて、データストアと統合するための任意の適切なハードウェアおよびソフトウェアを含むことができ、アプリケーションに対する大多数のデータアクセスおよびビジネスロジックに対処する。アプリケーションサーバは、データストアと協働して、アクセス制御サービスを提供し、ユーザへ転送されるべきテキスト、グラフィック、オーディオ、およびまたはビデオといった、コンテンツを生成することができ、これは、本実施例において、ＨＴＭＬ、ＸＭＬ、または別の適切な構造化言語の形態で、ウェブサーバによって、ユーザにサーブされ得る。クライアントデバイス１０２とアプリケーションサーバ１０８との間の全ての要求および応答の対処、ならびにコンテンツの配信は、ウェブサーバによって対処することができる。本明細書において述べられる構造化コードは、本明細書のどこかで述べられる任意の適切なデバイスまたはホスト機械上で実行することができるため、ウェブおよびアプリケーションサーバは、必須ではなく、例示的な構成要素に過ぎないということが理解されるべきである。
【００１５】
データストア１１０は、いくつかの別個のデータ表、データベース、または特定の態様に関するデータを記憶するための他のデータ記憶機構および媒体を含むことができる。例えば、例解されるデータストアは、コンテンツをサーブするために使用することができる、生産データ１１２およびユーザ情報１１６を記憶するための機構を含む。データストアはまた、報告および分析といった目的で使用することができる、ログデータ１１４を記憶するための機構を含むように示される。上で列記される機構のうちのいずれかにおいて適切に、またはデータストア１１０の追加の機構において、記憶することができる、例えば、ページ画像情報およびアクセス権情報に関する、データストアに記憶されることが必要とされ得る、多くの他の態様が存在し得るということが理解されるべきである。データストア１１０は、アプリケーションサーバ１０８から命令を受信するように、およびそれに応答してデータを取得、更新、またはその他の方法で処理するように、それと関連付けられるロジックを通じて、動作可能である。一実施例において、ユーザは、あるタイプの項目に関して、検索要求を提出する場合がある。この場合、データストアは、ユーザのアイデンティティを照合するように、ユーザ情報にアクセスする場合があり、そのタイプの項目についての情報を取得するように、カタログ詳細情報にアクセスすることができる。次いで、情報は、例えば、ユーザがユーザデバイス１０２上でブラウザを介して観視することができる、ウェブページ上の結果リストにおいて、ユーザに戻すことができる。特定の関心対象の項目に関する情報は、ブラウザの専用ページまたはウィンドウにおいて観視することができる。
【００１６】
各サーバは、典型的に、そのサーバの一般管理および運用のための実行可能なプログラム命令を提供する、オペレーティングシステムを含み、典型的に、サーバのプロセッサによって実行される時、サーバがその意図される機能を実施することを可能にする命令を記憶する、コンピュータが読み取り可能な媒体を含む。サーバのオペレーティングシステムおよび一般的な機能性に対する好適な実装は、既知であるか、または商業的に利用可能であり、特に、本明細書における本開示を考慮すると、当業者によって容易に実装される。
【００１７】
一実施形態における環境は、１つ以上のコンピュータネットワークを使用した通信リンク、または直接接続を介して、相互接続される、いくつかのコンピュータシステムおよび構成要素を利用する、分散されたコンピューティング環境である。しかしながら、かかるシステムは、図１に例解されるものよりも少ないもしくは多い数の構成要素を有するシステムにおいて、等しく良好に動作し得るということが、当業者によって理解されるであろう。このため、図１におけるシステム１００の描画は、実際、例解的なものであり、本開示の範囲を限定するものではないとして捉えられるべきである。
【００１８】
図１に例解されるものといった環境は、複数のホストが、コンテンツをサーブすること、ユーザを認証すること、支払い取引を実施すること、またはいくつかの他のかかるタスクのうちのいずれかを実施することといった、タスクを実施するために使用される場合がある、電子市場といったプロバイダにとっては有用である可能性がある。これらのホストのうちの一部は、同じ機能性を提供するように構成され得る一方で、他のサーバは、少なくとも一部の異なる機能を実施するように構成される場合がある。かかる場合における電子環境は、以下で詳細に述べられる、図２の構成２００において例解されるものといった、追加の構成要素および／または他の配設を含む場合がある。
【００１９】
種々の実施形態に従う手法は、ユーザが、クラウドにおいて、リレーショナルデータセットの記憶、処理、およびクエリといったタスクを実施することができるように、開発者、顧客、または他の承認されたユーザが、リレーショナルデータベースおよび他のかかるデータソースを取得および構成することを可能にする、リレーショナルデータベースサービス（「ＲＤＳ」）を提供し得るようなシステムとともに利用することができる。本実施例は、インターネット、ウェブサービス、およびインターネットベースの技術に関して述べられるが、種々の実施形態の態様は、電子環境においてネットワーク上で利用可能であるか、または提供される、任意の適切なサービスとともに使用することができるということが理解されるべきである。さらに、サービスは、本明細書において、「リレーショナルデータベースサービス」と称されるが、かかるサービスは、電子環境における、任意の適切なタイプのデータリポジトリまたはデータ記憶装置とともに使用することができるということが理解されるべきである。本実施例におけるＲＤＳは、ユーザまたは顧客が、展開、更新、パッチ管理、バックアップ、複製、フェイルオーバ、容量管理、スケーリング、およびデータ管理の他のかかる態様の、管理上の複雑性を懸念することなく、リソースおよびリレーショナルデータセットを容易に管理することを可能にする、少なくとも１つのウェブサービスを含む。このため、開発者は、データベースインフラストラクチャを管理する複雑性を懸念することなく、洗練されたクラウドアプリケーションを自由に開発できる。
【００２０】
一実施形態におけるＲＤＳは、データ記憶装置の態様を管理するために有用な構成要素（例えば、ハードウェアおよびソフトウェア）を含む、別個の「制御プレーン」を提供する。一実施形態において、ユーザまたは顧客が、データ記憶装置に関連するあるタスクを実施するように、ＲＤＳへの呼び出しを行うことを可能にする、一組のデータ管理アプリケーションプログラミングインターフェース（ＡＰＩ）または他のかかるインターフェースが提供される。しかしながら、ユーザは、依然として、データリポジトリと通信するために、直接インターフェースまたはＡＰＩを使用することができ、データ記憶装置を管理する、または同様のタスクを実施するために必要な時のみ、制御プレーンのＲＤＳ固有のＡＰＩを使用することができる。
【００２１】
図２は、一実施形態に従って使用することができる、ＲＤＳ実装２００の実施例を例解する。本実施例において、エンドユーザに対するコンピューティングデバイス２０２は、データプレーン２１０のデータリポジトリをプロビジョニングするといったタスクを実施するように、制御プレーン２０８にネットワーク２０６を通じて呼び出しを行うことができるように示される。ユーザまたはアプリケーション２０４は、データプレーン２１０のインターフェースを通じて、直接、プロビジョニングされたリポジトリにアクセスすることができる。エンドユーザコンピューティングデバイスおよびアプリケーションが、解説目的で使用されるが、任意の適切なユーザ、アプリケーション、サービス、デバイス、構成要素、またはリソースが、種々の実施形態において、適切に、制御プレーンおよび／またはデータプレーンのインターフェース（複数を含む）にアクセスすることができるということが理解されるべきである。さらに、構成要素は、制御およびデータ「プレーン」に分離されるが、これは、それぞれの機能性を提供するために使用される、少なくとも一部のリソース（例えば、ハードウェアおよび／またはソフトウェア）の実際のまたは仮想の分離を指し得るということが理解されるべきである。
【００２２】
本実施例における制御プレーン２０８は、本質的に、プロビジョニング、スケーリング、複製等といった、制御および管理行為に対処する、ハードウェアおよびソフトウェア構成要素の仮想層である。本実施形態における制御プレーンは、例えば、コンピュータが実行可能なソフトウェア、アプリケーションサーバ、または他のかかる構成要素とともに、少なくとも１つのウェブサーバを含むことができる、ウェブサービス層２１２またはティアを含む。ウェブサービス層はまた、ネットワーク２０６中からウェブサービス呼び出しまたは要求を受信するための一組のＡＰＩ２３２（または他のかかるインターフェース）を含むことができる。各ＡＰＩは、例えば、リレーショナルデータベースのインスタンスをプロビジョニングする、スケールする、クローンする、または休止するように、データ環境に関して実施されるべき少なくとも１つの特定の行為に対する要求を受信するように提供することができる。ＡＰＩのうちの１つへの要求を受信すると、ウェブサービス層は、呼び出しに作用する、またはそれを処理するために必要とされるステップまたは行為を判断するように、要求を解析またはそうでなければ分析することができる。例えば、データリポジトリを作成するための要求を含む、ウェブサービス呼び出しが、受信される場合がある。本実施例において、ウェブサービス層は、作成されるべきデータリポジトリのタイプ、要求される記憶ボリューム、要求されるハードウェアのタイプ（ある場合）、または他のかかる態様を判断するように、要求を解析することができる。要求に対する情報は、その後の処理のために、管理（「Ａｄｍｉｎ」）データストア２２２、または他の適切な記憶場所もしくはジョブキューに書き込むことができる。
【００２３】
一実施形態におけるウェブサービス層は、種々の制御プレーンＡＰＩを提供することができ、ＡＰＩ仕様に基づいて、適切な応答を返すことができる、スケール可能な一組の顧客対応サーバを含む。ウェブサービス層はまた、一実施形態において、外部対応顧客ＡＰＩを処理する、ステートレスな複製サーバから成る、少なくとも１つのＡＰＩサービス層を含むことができる。ウェブサービス層は、認証情報に基づいて顧客を認証すること、顧客を承認すること、ＡＰＩサーバへの顧客要求を抑制すること、ユーザ入力を有効にすること、ならびに要求および応答をマーシャルまたはアンマーシャルすることといった、ウェブサービスのフロントエンド特性を担うことができる。ＡＰＩ層もまた、ＡＰＩ呼び出しに応答して、管理データストアへの／からのデータベース構成データの読み出しおよび書き込みを担うことができる。多くの実施形態において、ウェブサービス層および／またはＡＰＩサービス層は、外部から可視的な唯一の構成要素であるか、または制御サービスの顧客に可視的であり、制御サービスの顧客によってのみアクセス可能である唯一の構成要素である。ウェブサービス層のサーバは、当該技術分野において既知であるように、ステートレスであり、水平にスケールすることができる。ＡＰＩサーバ、ならびに永続データストアは、例えば、サーバが、単一のデータセンタ障害に対して回復力があるように、ある地理的領域における、またはある地理的位置の近傍の複数のデータセンタにわたって散在することができる。
【００２４】
この実施形態における制御プレーンは、本明細書において「スイーパ」構成要素２１４と称されるものを含む。スイーパ構成要素は、制御プレーンの種々の構成要素をポーリングするように、またはそうでなければ未処理の要求に応答して実行されるべき任意のタスクを判断するように、動作可能な、任意の適切な構成要素とすることができる。本実施例において、ウェブサービス層は、ａｄｍｉｎデータストア２２２、または同様のジョブキューにおいて、「データベースを作成する」要求に対する命令または情報を配置する場合があり、スイーパは、未処理のジョブに関して、ａｄｍｉｎデータストアを周期的にチェックすることができる。ウェブサービス層が、ジョブが存在することをスイーパに通知を送信するといった、種々の他の手法を、当業者に明らかであろうように、使用することができる。スイーパ構成要素は、「データベースを作成する」要求をピックアップし、要求に対する情報を使用して、要求、呼び出し、または他のかかるコマンドを、要求に対する少なくとも１つのワークフローをインスタンス化するように動作可能なワークフロー構成要素２１６に送信することができる。一実施形態におけるワークフローは、本明細書のどこかで述べられるように、ワークフローサービスを使用して生成および維持される。ワークフローは、一般に、特定のジョブを実施するように実行されるべきである、一連のタスクである。ワークフローは、実際の作業ではないが、情報の流れおよび作業の実行を制御する、作業の抽象化である。ワークフローはまた、実行の間、任意の時間に、プロセスの状態を管理する、および返すことができる、状態機械として考えることができる。一実施形態におけるワークフロー構成要素（または構成要素のシステム）は、リポジトリ作成、修正、および削除；回復およびバックアップ；セキュリティグループ作成、削除、および修正；ユーザ認証情報管理；ならびにキー回転および認証情報管理といった、タスクに対するワークフローのホスティングおよび実行を管理および／または実施するように動作可能である。かかるワークフローは、本明細書のどこかで述べられるように、ワークフローサービスに加えて実装することができる。ワークフロー構成要素はまた、根本的なワークフローサービスが、必ずしも変化しないため、ＭｙＳＱＬといった異なるデータベースエンジンに対して使用されるワークフローステップ間の相違を管理することができる。
【００２５】
本実施例において、ワークフローは、データベースを作成し、元の要求から抽出される情報を適用するための、ワークフローテンプレートを使用してインスタンス化することができる。例えば、要求が、Ｏｒａｃｌｅ（登録商標）ＲＤＢＭＳまたは他のかかるインスタンスとは対照的に、ＭｙＳＱＬ（登録商標）リレーショナルデータベース管理システム（ＲＤＢＭＳ）インスタンスに関する場合、特定のタスクが、ＭｙＳＱＬインスタンスに対して向けられるワークフローに追加される。ワークフロー構成要素はまた、要求される記憶装置の量、任意の特定のハードウェア要件、または他のかかるタスクに関する、特定のタスクを選択することができる。これらのタスクは、ジョブ全体に対して有用な実行の順で、ワークフローに追加することができる。一部のタスクは、並行して実施することができる一方、他のタスクは、最初に完了されるべき先のタスクに依存する。ワークフロー構成要素またはサービスは、この情報をワークフローに含めることができ、タスクを実行し、必要に応じて、情報を渡すことができる。
【００２６】
顧客のための例示的な「データベースを作成する」ワークフローは、適切な組の起動構成パラメータが、要求に対して特定されることを確実とすること、一組の起動構成パラメータを利用して、データストアインスタンスをプロビジョニングすること、オフインスタンス永続記憶装置のボリュームを割り当てること、データストアインスタンスへ永続記憶装置ボリュームを取り付けること、次いで、ＤＮＳアドレス、または顧客がデータインスタンスにアクセスするため、もしくはその他の方法でそれに接続するために使用することができる他のアドレス、ポート、インターフェース、もしくは識別子を割り当て、取り付けることといった、タスクを含む場合がある。本実施例において、ユーザは、インスタンスにアクセスするために使用される、ＤＮＳアドレスおよびポートアドレスが提供される。ワークフロー構成要素は、これらのおよび任意の関連するタスク、またはかかるタスクの任意の他の適切な組み合わせの実行を管理することができ、実際にデータプレーン２１０内のデータストアインスタンスに対応する、「データベースを作成する」要求に応答して、「データベース」の作成を示す要求への応答を生成することができ、インスタンスにアクセスするために使用されるＤＮＳアドレスを提供することができる。次いで、ユーザは、制御プレーン２０８にアクセスする、またはそれを通過することを必要とせずに、ＤＮＳアドレスおよびポートを使用して、直接、データストアインスタンスにアクセスすることができる。種々の他のワークフローテンプレートは、記憶装置を増加するためといった、より多くのデータストアインスタンスのうちの１つを削除、作成、または修正するといった、同様のジョブを実施するために使用することができる。一部の実施形態において、ワークフロー情報は、記憶装置へ書き込まれ、少なくとも１つの別個の実行構成要素（図示せず）は、ワークフロー情報に基づいて実行されるべきタスクを引き出すか、またはそうでなければそれにアクセスするか、またはそれを受信する。例えば、プロビジョニングタスクを実行する、専用のプロビジョニング構成要素が存在する場合があり、この構成要素は、ワークフロー構成要素によって呼び出されない場合があるが、タスクキューを監視することができるか、または明らかであるはずであるようないくつかの関連する方法のうちのいずれかで、プロビジョニングタスクのための情報を受信することができる。
【００２７】
本実施形態における制御プレーン２０８はまた、少なくとも１つの監視構成要素２１８を含む。データインスタンスがデータプレーンにおいて作成される時、インスタンスのための情報は、監視データストア２２０といった制御プレーン内のデータストアへ書き込むことができる。監視データストアは、別個のデータストアとすることができるか、またはＡｄｍｉｎデータストア２２２内のはっきりと異なる組の表といった別のデータストアの一部分、または他の適切なリポジトリとすることができるということが理解されるべきである。監視構成要素は、データプレーン２１０内のアクティブインスタンス２３４を判断するように、監視データストア内の情報にアクセスすることができる。本明細書のどこかで述べられるように、これらのインスタンスは、世界中の任意の選択された適切な位置に分散され得る、異なる領域に存在することができる。監視構成要素はまた、ウェブサービス層、ワークフロー構成要素、スイーパ構成要素、および種々のホストマネージャといった、制御プレーンおよび／またはデータプレーンの複数の構成要素から、ログおよび／または事象情報を収集するといった、他のタスクを実施することができる。かかる事象情報を使用して、監視構成要素は、顧客対応ＡＰＩを実装するといった目的のために、顧客可視事象を映すことができる。監視構成要素は、常に、制御プレーンのために全ての実行されているリポジトリおよび／またはインスタンスの健全状態を監視し、これらのインスタンスのいずれかの障害を検出し、適切な回復プロセス（複数を含む）を開始することができる。
【００２８】
データプレーン内の各インスタンス２３４は、少なくとも１つのデータストア２２６と、データストアへのアクセスを提供する機械のためのホストマネージャ構成要素２２８とを含むことができる。一実施形態におけるホストマネージャは、ソフトウェア開発およびデータストア運用といったタスクを管理するようにプログラムされる、インスタンスおよび／またはＴｏｍｃａｔもしくはＪａｖａ（登録商標）アプリケーションサーバといったアプリケーションサーバ上で実行する、ならびにデータストアおよび／もしくはそれぞれのインスタンスの状態を監視する、アプリケーションまたはソフトウェアエージェントである。一実施形態におけるホストマネージャは、内部システム構成要素からのみ到達することができ、顧客または他の外部エンティティに対して利用可能ではない、ポート上で聴取する。一部の実施形態において、ホストマネージャは、制御プレーン層へのいかなる呼び出しも開始することができない。ホストマネージャは、論理ボリュームおよびファイルシステムをセットアップすることを含む、新たなリポジトリに対するインスタンスをセットアップすること、データベースバイナリおよびシードをインストールすること、ならびにリポジトリを開始または停止することといった、タスクを管理および／または実施することを担うことができる。ホストマネージャは、データストアの健全状態を監視することができ、ならびにＩ／Ｏエラーまたはデータ記憶エラーといったエラー条件に対してデータストアを監視し、必要な場合、データストアを再始動することができる。ホストマネージャはまた、データストアおよび／またはオペレーティングシステムのためのソフトウェアパッチおよびアップグレードのインストールを実施および／または管理する。ホストマネージャはまた、ＣＰＵ、メモリ、およびＩ／Ｏ使用に関し得るような、関連メトリクスを収集することができる。
【００２９】
監視構成要素は、各ホストのステータスを判断するように、例えば、特定の要求を送信することによって、またはホストマネージャからのハートビートを監視することによって、監視されたインスタンス２３４に対し、各ホストマネージャ２２８と周期的に通信することができる。一実施形態において、監視構成要素は、例えば、特定のホストおよび／またはインスタンスのステータスを得るために、各ホストマネージャにコマンドを発行するように構成される一組の事象プロセッサ（または監視サーバ）を含む。指定された回数の再試行後、応答が受信されない場合、監視構成要素は、問題があると判断することができ、例えば、問題を照合し、必要な場合、インスタンスを再プロビジョニングするといった、インスタンスに対する行為を実施するように、Ａｄｍｉｎデータストア２２２または別のかかるジョブキューに情報を記憶することができる。スイーパは、この情報にアクセスし、障害から自動的に回復するように試みるように、インスタンスのための回復ワークフローを開始することができる。ホストマネージャ２２８は、制御プレーンの監視および他の構成要素のためのプロキシとして作用することができ、制御プレーン構成要素の代わりに、インスタンスのためのタスクを実施する。時として、問題は、対応するホスト、インスタンス、またはボリュームのクラッシュ、再起動、再始動等といった、インスタンスのうちの１つを伴って生じ、これらは、自動的に解決することができない。一実施形態において、これらのおよび他の顧客可視性事象をログすることができる、ロギング構成要素（図示せず）が存在する。ロギング構成要素は、インスタンスがある期間、利用不可能である場合、顧客が、その事象に関する情報を得るために、適切な「事象」または同様のＡＰＩを呼び出すことができるように、ＡＰＩまたは他のかかるインターフェースを含むことができる。一部の場合において、要求は、インスタンスに障害がある時、保留のままにされ得る。本実施形態における制御プレーンは、データプレーンから分離しているため、制御プレーンは、データ要求を受信することはなく、このため、その後の提出のために、要求をキューに入れることはできない（ただし、一部の実施形態において、この情報は、制御プレーンに転送され得る）。このため、本実施形態における制御プレーンは、障害に関して、ユーザに情報を提供するため、ユーザは、必要に応じて、要求に対処することができる。
【００３０】
述べられるように、一度、インスタンスがプロビジョニングされ、ユーザに、ＤＮＳアドレスもしくは他のアドレスまたは場所が提供されると、ユーザは、そのインスタンス２３４と直接、相互作用するように、Ｊａｖａ  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ（ＪＤＢＣ）または他のかかるクライアントを使用して、ネットワークを通じて、データプレーン２１０に、「直接」、要求を送信することができる。一実施形態において、データプレーンは、コンピューティングクラウド環境、または、ハードウェアおよび／もしくはソフトウェア構成要素の「クラウド」または動的ネットワークにわたって、データ記憶装置およびアクセスを提供する、一組のウェブサービスおよびリソースの形態を採る（もしくは、少なくともそれを含むか、もしくはその一部である）。例えば、インスタンスまたは利用可能性障害は、使用のために、ＤＮＳアドレスを任意の適切な置換インスタンスへ、プログラムで再マッピングすることによって、マスクすることができるため、ＤＮＳアドレスは、かかる動的クラウド環境において有益である。例えば、ユーザ２０２またはアプリケーション２０４から受信される要求は、要求を実際のインスタンス２３４もしくは要求のＤＮＳに対応するホストに向けることができる、ネットワークアドレス翻訳（ＮＡＴ）ルータ２２４、または他の適切な構成要素へ向けることができる。述べられるように、かかる手法は、インスタンスにアクセスするために使用されるＤＮＳまたは他のアドレスを変更することをユーザまたはアプリケーションに要求することなく、インスタンスが、動的に移動、更新、複製されること等を可能にする。述べられるように、各インスタンス２３４は、ホストマネージャ２２８と、データストア２２６とを含むことができ、永続記憶装置２３０内に、少なくとも１つのバックアップインスタンスまたはコピーを有することができる。かかる手法を使用して、一度、インスタンスが制御プレーンを通じて構成されると、ユーザ、アプリケーション、サービス、または構成要素は、制御プレーン２３２にアクセスすることを必要とせずに、データプレーンへの要求を通じて、直接、インスタンスと相互作用することができる。例えば、ユーザは、ＤＮＳアドレスを通じて、インスタンス内のデータに関する構造化クエリ言語（ＳＱＬ）または他のかかるコマンドを直接発行することができる。ユーザが、インスタンスの記憶容量の拡大といったタスクを実施したい場合、ユーザは、制御プレーンにアクセスすることのみが必要であろう。少なくとも一実施形態において、制御プレーン２０８の機能性は、データプレーン２１０のプロバイダに関連してもよいか、またはしなくてもよい、プロバイダによる少なくとも１つのサービスとして、提供することができるが、単に、データプレーン内のデータインスタンスをプロビジョニングし、管理するために使用することができ、かつ別個のデータプレーン２１０内のそれらのインスタンスの利用可能性を監視し、確実とすることもできる、第三者サービスであってもよい。
【００３１】
述べられるように、ウェブサービスまたは他のかかるサービスとして、制御プレーンの機能性を提供することに対する１つの利点は、制御プレーンが、仮想システムアドミニストレータまたは仮想データベースアドミニストレータ（ＤＢＡ）として機能することができ、例えば、起動構成の照合およびデータのプロビジョニングといったタスクを実施するための、経験豊かな人間のアドミニストレータに対する必要性を回避するということである。多くの従来の手法は、必要な構成情報を受信する、構成が有効かどうかを判断する、インスタンスを最適化および調整する、ならびに他のかかるタスクを実施するために、かかる人間のアドミニストレータを必要とし、これにはかなりの量の時間および努力を要する。さらに、かかる手法は、エラーに対する多くの機会を提供する。しかしながら、これらのパラメータを指定するためのユーザの能力は、現在のネットワークまたはシステム環境にとっては最適ではない方法で、ユーザが、インスタンスを起動すること、またはそうでなければリソースにアクセスすることを引き起こし得る。本明細書において説明されるように、制御プレーンまたはサービスへ要求を提出する時に、特定の起動構成を指定することで、ユーザまたは顧客は、リソースアクセスのための最適な（または少なくとも適切な、もしくは許容された）性能を取得することができる。制御プレーンは、要求に応答して、リソースもしくはリソースインスタンスを作成、起動、削除、修正、拡大、および／またはそうでなければ管理するように、必要なタスクを実施することができる。制御プレーンはまた、各タイプのリソースの専門家を必要とすることなく、一貫して、いくつかの異なるタイプのリソースをサポートすることができる。
【００３２】
従来の実施形態において、顧客は、少なくとも適切なリソースが位置付けられ、顧客がそれらのリソースへのアクセスを有する、世界のどこかで、インスタンス（図２に関して説明されるものといった）を起動することができる場合がある。しかしながら、静的アドレスといったアドレスが、多くの従来の手法に従って、特定のインスタンスと関連付けられる場合、その静的アドレスに方向付けられるトラフィックは、障害または他のかかる発生の場合に喪失される場合がある。一部の手法において、インスタンスは、起動時に私的アドレス、およびネットワークアドレス翻訳（ＮＡＴ）を通じて私的アドレスにマッピングされる公的アドレスという、２つのアドレスが割り当てられる場合がある。例えば、ＩＰアドレスに関して、かかる手法は、顧客が、動的ＤＮＳを使用して、既存のＤＮＳ名を新たなインスタンスの公的ＩＰアドレスへ再マッピングすることを可能にする。しかしながら、かかる手法は、ＩＰアドレスが、インターネットを通じて伝搬するするのに最大２４時間かかる可能性があり、それにより、終了されたインスタンスが要求を受信し続ける間、新たなインスタンスがトラフィックを受信しない場合がある。
【００３３】
ある環境において、顧客は、代わりに、本明細書において「再マッピング可能な」アドレスと称されるものを関連付ける場合がある。再マッピング可能なアドレスの例は、Ｓｅａｔｔｌｅ，  ＷａｓｈｉｎｇｔｏｎのＡｍａｚｏｎ．ｃｏｍ，  Ｉｎｃ．によって提供される「エラスティックＩＰアドレス」の提供である。顧客は、再マッピング可能なアドレスを、例えば、特定のインスタンスの代わりに、顧客のアカウントと関連付けることができる。しかしながら、従来の静的ＩＰアドレスとは異なり、再マッピング可能なアドレスは、顧客が、公的にさらされるＩＰアドレスを、顧客のアカウント内の任意のインスタンスへ再マッピングすることを可能にする。
【００３４】
しかしながら、再マッピング可能なアドレスを利用する時でさえ、顧客は、典型的に、単一の領域に限定される。例えば、バージニア州において機械障害を有する顧客は、バージニア州、または周辺エリアにおいて、新たなインスタンスを起動し、再マッピング可能なアドレスをその新たなインスタンスへ再マッピングすることができる場合がある。その再マッピング可能なアドレスに向けられる、ネットワーク（例えば、インターネット）から入ってくるトラフィックは、そのインスタンスに向かってルーティングされるであろう。顧客は、例えば、１つのデータセンタが電力損失を経験する場合、トラフィックをその領域における他のデータセンタ（複数を含む）に再ルーティングすることができるように、バージニア州におけるいくつかの異なるデータセンタといった、その領域内の複数の場所を利用する場合がある。
【００３５】
しかしながら、従来の手法を使用して、顧客は、複数の領域にわたって、または異なる領域へ、それらの再マッピング可能なアドレスを再マッピングすることはできない。例えば、顧客は、米国内のネットワークを不能にする大災害または他の発生の場合、米国外のデータセンタへ再マッピングすることはできない。さらに、トラフィックが、主に、異なる時間に世界の異なる領域から発信する、顧客は、最新のトラフィック発信のポイントに最も近いデータセンタへマッピングすることによって、任意の所与の時間に、ネットワーク上のトラフィックの量を低減するために、アドレスを再マッピングすることができない。顧客は、新たな再マッピング可能なアドレスを割り当て、ＤＮＳまたは別の同様の機構を使用して顧客に新たなエンドポイント（複数を含む）を通知しなければならず、これは、多くの異なる状況においては望ましくない可能性がある。
【００３６】
従来の手法を使用する顧客に利用可能であるオプションは、所望の領域の各々において、公的アドレスの全てを「公示」することである。図３に例解される実施例３００において、プロバイダは、少なくとも４つの異なるエリア内のリソースを利用する場合があり、これらの各々は、関連付けられた領域、ここでは、米国の西海岸（領域Ａ）、米国の東海岸（領域Ｂ）、アイルランド（領域Ｃ）、およびアジア（領域Ｄ）に対応する。本実施例において、バージニア州内の公的アドレス空間は、バージニア州から公示することができ、アイルランド内の公的アドレス空間は、アイルランドから公示することができる。ここでは、「公示」は、概して、それらのアドレスに向けられるトラフィックを、その位置に適切にルーティングすることができるように、インターネットといったネットワークのノードが、あるアドレス（例えば、ＩＰアドレス）の位置に気付く、通知が提供されることを意味する。顧客は、典型的に、トラフィックができるだけ短いパスを利用することを好むため、かつそれらの顧客はまた、他の人々のネットワーク（例えば、他のプロバイダとレベル３上で、等）を利用することを好むため、かかる手法は、所与の領域（例えば、ヨーロッパ）において開始されるトラフィックが、非顧客所有のネットワーク（例えば、インターネット）にわたって方向付けられること、およびヨーロッパ（例えば、本実施例においては、アイルランド）において公示される場所に方向付けられることを可能にする。同様に、米国内から送信されるトラフィックは、インターネット上で、バージニア州において公示される場所へ方向付けることができ、その場所で顧客のネットワークに最初にヒットすることができる。しかしながら、かかる手法に対する潜在的な欠点は、アイルランドのアドレス空間が利用不可能となる場合、ヨーロッパで発信するトラフィックは、その領域が、他の領域におけるアドレス空間に気付いていないため、ドロップされる可能性があるということである。
【００３７】
一部の場合において、アドレスは、一般的に、従来の手法を使用して、再マッピングすることができる。かかる場合において、公的アドレス空間は、トラフィックを、それらの位置のいすれかで受信し、次いで、適宜方向付けることができるように、どこでも公示することができる。かかる手法は、アジアにおいてより有益に受信された可能性がある、アイルランドにおいて受信されるトラフィックを、アジア等に送信することができるように、そのアドレス空間を公示するエンティティが、典型的に、領域間で巨大な量のトラフィックをバックホールしなければならないであろうという事実といった、多くの理由により、望ましくない可能性がある。例えば、西海岸でウェブサイトを運営する企業は、トラフィックがバージニア州のデータセンタで受信される場合があり、次いで、企業のネットワークにわたって、西海岸のサーバへ運搬される必要があるであろう、東海岸に多くの顧客を有する場合があり、これは、データセンタのホストまたはプロバイダが、自費で、データをそれら自身のネットワークにわたって運搬しなければならないであろうことを意味する。アドレス空間は、領域がかなり異なるサイズであり得る場合でさえも、どこでもトラフィックを収容するように、グローバルにスケールされなければならないため、かかる手法はまた、スケーリング問題を提供する可能性がある。他のかかる問題も、かかる手法に起因する可能性がある。
【００３８】
種々の実施形態に従うシステムおよび方法は、顧客が、グローバルに再割り当て可能である、および／または間接的に再マッピング可能である、再マッピング可能なアドレスを利用することを可能にすることができる。少なくとも一部の実施形態において、１つ以上のアプリケーションプログラミングインターフェース（ＡＰＩ）を通じて、ウェブサービスを利用する顧客は、グローバルに再割り当て可能な再マッピング可能なＩＰアドレスを利用および管理することができる。かかる手法は、ネットワークが、トラフィックのルーティングに対する「ホットポテト」手法を活用することを可能にし、それにより、トラフィックを方向付けるために、プロバイダ自身のネットワークを利用することを必要とせずに、可能な限り迅速に、公示された場所のうちの１つへ受信される要求を、間接的に再マッピングし、インターネット上へ送信し戻すことができる。一実施例において、アイルランド内の場所に向けられる、バージニア州においてメッセージを開始する顧客は、メッセージを、バージニア州内のインターネットに送信し、インターネット上で、アイルランドに送信することができ、インターネット構成要素が、どのように要求をアイルランド内のアドレスに持っていくかの判断を担う。かかる手法は、データセンタプロバイダが、そのトラフィックを、プロバイダ自身のネットワークにわたって、アイルランドへ搬送すること、次いで、アイルランド内のインターネットのみをヒットすることを阻止する。プロバイダは、典型的に、いずれにしてもインターネット帯域幅の代金を支払っているため、専用のファイバまたは他のかかる私的接続上で、大西洋にわたってデータを搬送する代わりに、その帯域幅を利用することが好ましい可能性がある。
【００３９】
かかる手法は、インスタンスを、任意の特定の時間に（例えば、世界中で「太陽を追尾する」ように）、大多数のユーザにより近く位置付けるためといった、任意の適切な目的のための領域間インスタンス移行を可能にする。従来のインターネットベースの手法を使用すると、かかる移行は、インスタンスがインターネットホストと通信している時、達成するのが困難、またはさらには不可能である可能性がある。顧客は、一般的に、かかる移行を、比較的途切れなく実施させたいが、これは、インターネット中のトラフィックを適切にルーティングする上で、問題を提示する。一実施形態において、ドメイン名システム（ＤＮＳ）ベースの手法を使用することができ、これは、ホストに対するＤＮＳエントリが、新たな領域において公示される範囲内で変更または更新される、対応するＩＰアドレスを有することができる。かかる手法において、異なるＩＰアドレス範囲は、異なる領域において公示され、トラフィックを新たな（または異なる）領域に方向付けることが所望される時、適切なホストは、その新たな領域の範囲内の値を含むように更新されるＤＮＳエントリを有することができる。
【００４０】
別の手法は、ボーダゲートウェイパトロール（ｂｏｒｄｅｒ  ｇａｔｅｗａｙ  ｐａｔｒｏｌ：ＢＧＰ）情報といった、あるプロトコルに対して、データを制御することに基づく。ＢＧＰは、典型的に、インターネットルーティング決定で使用される、ＩＰプレフィックスの表を維持する。ある実施形態において、ＢＧＰ公示は、新たな領域における特定のアドレス空間の広告を開始し、先の領域におけるその空間の広告を停止するように変化させることができる。かかる手法を使用して、顧客は、同じＩＰアドレスを保持しつつ、トラフィックは、直接、新たな領域に向かうことができる。一部の実施形態において、ＤＮＳまたはＢＧＰベースの手法に対する情報が変化する間、ある期間、領域間でトラフィックを転送および／またはトンネルするように、ある機構を提供することができる。
【００４１】
一部の実施形態において、アドレス空間の一部分のみが、種々のＰＯＰまたは他のインターフェースポイントにおいて公示されているように、特定の再マッピング可能なグローバルなアドレスを使用することができる。その部分は、一部または全てのＰＯＰにおいて公示することができ、一部の場合において、アドレス空間の異なるセクションは、異なるＰＯＰグループから公示することができる。従来のインターネット手法を使用すると、単一のＩＰアドレスは、単純にはグローバルに公示することができない。しかしながら、あるエンティティは、再マッピング可能なアドレスのブロックを要求し、それらのアドレスを、米国東部および米国西部といった、２つ以上の領域において、アクセス可能にしたい可能性がある。かかる場合において、顧客の全て（または大多数）は、米国内にいる場合があるが、企業は、問題がある場合、トラフィックを他の位置にフェイルオーバおよびシフトするための能力を欲する場合がある。一部の場合において、企業は、単純に、任意の所与の時間に、顧客の大多数の場所に従って、トラフィックを方向付けたい場合がある。例えば、企業が、世界中に顧客を有し、それらの顧客が、世界の顧客の地域において、営業時間中にネットワークにヒットする傾向がある場合、企業は、任意の所与の時間に必要とされるデータパスの大多数を最小化することを試みるために、一日中、異なる領域にそれらのアドレスを調節したい場合がある。一実施例において、顧客には、グローバルなＢＧＰに公示することができる「／２４」を与えることができる。「／２４」は、一般的に、フォワードスラッシュ（「／」）、およびサブネットマスク内の先頭ビットの数を与える２桁の１０進数が続く、ドット付き１０進表記のアドレスとしてルーティング表に要約される、インターネットアドレスのブロックを指す。次いで、／２４は、任意の所与の時間に、所望の領域から公示することができる。次いで、最適な要求ルーティングが、トラフィックのそのサブセットに対して実施され得、顧客は、適切な額が請求され得る。
【００４２】
一実施形態において、アドレスブロックのサイズは、プロバイダが、その空間の少なくとも一部分を広告するべき領域を選択的に選ぶことができるように、顧客に対して十分に大きいように選択することができる。別の実施形態において、大量のトラフィックがプロバイダネットワーク上で運搬される必要があるであろうという理解の下、一部または全ての領域において広告することができる、事前に割り当てられたアドレスのブロックを使用することができる。大きい顧客は、潜在的に、グローバルに広告されるブロックから、いくつかの再マッピング可能なアドレスを利用し得、プロバイダは、どのようにトラフィックをより小規模で方向付けるかの判断に対処することができる。
【００４３】
これらの実施形態のうちの少なくとも一部において、顧客は、依然として、多くの望ましい障害関連の特徴を受信することができる。従来のシステムにおいて、再マッピング可能なアドレスを使用して、バージニア州においていくつかの再マッピング可能なアドレスを有する顧客は、バージニア州においてトランジットの停止がある場合、それらのアドレスは、少なくとも一時的に利用不可能であり、要求は、ネットワークバックボーンにヒットするとすぐに、ドロップするため、問題を経験するであろう。しかしながら、顧客が、グローバルな再マッピング可能なアドレス群をレンタルしている場合、それらのアドレスは、バージニア州にマッピングされる場合があるが、バージニア州がインターネットから外れる時、これらのアドレスが依然として、インターネット上の他の存在点（ｐｏｉｎｔ  ｏｆ  ｐｒｅｓｅｎｃｅ：ＰＯＰ）の全てにおいて公示されるように、世界中の多くのポイントにおいて公示することができる。このため、顧客は、別の領域において、インスタンスを起動させることができ、グローバルな再マッピング可能なアドレスのうちの１つ以上は、サービスが、迅速に、再び利用可能となるように、そのインスタンスにマッピングすることができる。かかるプロセスの利点は、インターネットＢＧＰまたはＤＮＳが伝搬するのを待機するラグタイムまたは遅延が無いように、動作全体を完全にプロバイダネットワーク内に含有することができるということである。顧客は、彼らのインターネットサービスプロバイダと相互作用する必要はないが、代わりに、例えば、ＤＮＳ名およびＩＰアドレスを、かなり迅速に、再び利用可能にすることができるように、プロバイダへの１つまたは２つのＡＰＩ呼び出しを行うことができる。
【００４４】
一部の場合において、プロバイダは、ステータスを監視することができ、必要に応じて、アドレスを自動的に再マッピングすることができ、それにより、顧客は、停止を検出する必要がない、および／または任意の関連問題に対処する必要がある。少なくとも一部の実施形態において、顧客は、どのようにアドレスが再マッピングされるべきか、およびそれらのアドレスを再マッピングさせる状況または基準を指定するための１つ以上の方針を指定することができる。一部の場合において、顧客は、あるマッピングが、顧客が予め指定する自動的様式において、一定の時間に発生するように、方針を指定することができる。他の場合において、顧客は、ある再マッピングが、あるタイプの事象（例えば、領域障害）の発生に応答して、発生するべきであることを指定することができる。
【００４５】
少なくとも一部の実施形態において、各領域は、顧客がプロバイダとのアドレス空間を有する、互いの領域について知っている。例えば、１つ以上のトンネルで、それらの領域間で確立される通信が存在する可能性がある。どのアドレス、またはアドレス空間の何のセクションが、現在、領域の外部にあるかを示す、マッピングのリストを維持することができる。このため、トラフィックが、現在、第２の領域にマッピングされる、グローバルな再マッピング可能なアドレスに対して、第１の領域に入ってくる時、プロバイダは、送信先領域を判断するように、入ってくるトラフィックにおいて、アドレス翻訳および送信先ルックアップを行うことができる。第１の領域は、第２の領域のアイデンティティ以外の任意の情報を判断することができる場合があるが、トラフィックを、トンネルに沿って、第２の領域へ方向付けることができる。一度、第２の領域に来ると、トラフィックがそのポイントにおいてローカルであるため、適切なルーティングプロトコルルックアップを実施することができる。
【００４６】
本実施例において、ロサンゼルスおよびバージニア州といった領域は、常に、所与のＩＰアドレスをインターネット上へ広告することができる。ユーザが、バージニア州内の店に座っている場合、ローカルＩＳＰは、一般的に、ホットポテトルーティング手法を使用して、迅速に、そのトラフィックを取り除くことを好む。このため、ＩＳＰは、一般的に、トラフィックを、バージニア州領域に方向付ける。しかしながら、バージニア州において、トランジット停止といった発生がある場合、バックボーンＩＳＰは、バックボーンがＬ．Ａ．領域に情報を運搬することができるように、依然として、Ｌ．Ａ．からの公示を受信するであろう。
【００４７】
一部の実施形態において、アドレスは、要求を処理するために実際に使用されるものよりも多くの領域から公示することができる。例えば、グローバルな再マッピング可能なアドレスは、世界中の５つの異なる領域の各々から公示することができる。アドレス自体は、バージニア州およびアイルランドにおける例といった、それらの領域のうちの２つにマッピングされる場合がある。マッピングは、バージニア州に到着するトラフィックが、バージニア州においてサーブされ、アイルランドに到着するトラフィックが、アイルランドにおいてサーブされるように、構成することができる。マッピングはまた、米国西海岸領域に到着するトラフィックがバージニア州へ方向付けられ、アジアに到着するトラフィックがアイルランドへ方向付けられる、等のように、構成することができる。このため、アドレスは、５つの異なる場所において公示されるが、それらの場所のうちの２つのみへ方向付けられる、およびそれらによってサーブされる。少なくとも一部の実施形態において、ルーティングは構成によって判断されるため、知能は無い。少なくとも一部の実施形態において、そのトラフィックが、現在の負荷、時刻等といった種々の要因に基づいて、異なる場所へルーティングされることを指示する、内蔵知能または方針が存在し得る。
【００４８】
一部の実施形態において、ステータス検出またはフローハッシングが無いが、トラフィックが、現在の時間帯といった要因に基づいて、特定の領域へ方向付けられる、エニーキャスト手法を使用することができる。本明細書において使用される際、エニーキャストは、概して、同じ送信先アドレスに全て関連付けられる、潜在的な受信先群のメンバへトラフィックをルーティングするための、当該技術分野において既知の手法を指す。少なくとも一部の実施形態において、どこでそのトラフィックが受信されるかに依存して、任意の時間または常に、トラフィックを方向付けるべき特定の領域を含むことができる、静的構成情報を提供することができる。他の実施形態において、静的構成情報は、トラフィックを方向付けることができる種々の領域の順序またはランキングを含むことができる。例えば、他の領域は、ネットワーク近接性に基づいて、ランク付けすることができる。このため、トラフィックが特定のアドレスに対して入ってくる時、グローバルな再マッピング可能なアドレスがアクティブである場所に関して、判断を行うことができ、種々の領域の順序を判断するためにリストを調べることができる。少なくとも一実施形態において、トラフィックは、ランキングリストにおいて最高である、アドレスがアクティブである領域へ方向付けられる。一実施例において、図４に例解されるものといったランキングリスト４００は、（降順に）Ｌ．Ａ．、バージニア州、およびアイルランドを列記する場合があり、トラフィックに対するグローバルなアドレスは、アイルランドおよびバージニア州においてアクティブである場合がある。この場合、トラフィックは、バージニア州が、アドレスがアクティブである、最高にランク付けされた領域であるため、そこへ方向付けられるであろう。
【００４９】
少なくとも一部の実施形態において、顧客は、例えば、種々のまたは特定の時間に、ランキングを調節するように、静的構成情報を特定および／または更新する能力を有することができる。例えば、顧客は、そのトラフィックを、ミネソタ州と関連付けられる領域内の場所へ方向付けることを指定したい場合がある。図２を参照して説明されるものといったシステムを使用して、顧客は、更新された構成情報を特定するＡＰＩ呼び出しを提出することができ、次いで、この情報は、必要な構成リスト（複数を含む）を更新するように、必要に応じて伝搬させることができる。少なくとも一部の実施形態において、顧客は、異なる領域に対する、および／または異なる時間において、異なる構成情報または方針を特定することができる。本開示を考慮すると明らかであるべきように、種々の他のタイプの情報も、含める、または利用することができる。
【００５０】
少なくとも一部の実施形態において、適切な領域の判断は、より動的とすることができる。例えば、その場所が存続しており、かつ利用可能であるかどうかといった、少なくとも１つの領域のステータス、ならびに現在の領域からのその領域までの距離、および現在の領域と潜在的な標的領域との間の負荷といった、他の情報に関して、判断を行うことができる。一実施例において、トラフィックは、正常な条件下で、バージニア州に方向付けられる場合がある、Ｌ．Ａ．において受信される場合がある。現在、バージニア州を利用不可能にする、東海岸での大規模なネットワーク事象が存在する場合、トラフィックは、代わりに、この場合は、アジアに位置し得る、次に近い利用可能な領域へルーティングすることができる。バージニア州がオンラインに戻った時、バージニア州は、再び、より良好な選択肢となる場合があり、そのため、その後のトラフィックは、バージニア州へルーティングされる場合がある。種々の他の要因も、動的決定に含めることができる。例えば、顧客群の大多数が、西海岸に存在し、比較的少数が他の場所に存在する場合がある。したがって、顧客は、顧客トラフィックの大部分が指定される領域へ行き、より少ない量が他方の領域へ行く、重み付けされたトラフィックの均衡化を要求したい場合がある。いくつかの他のかかる方針のうちのいずれもまた、種々の実施形態の範囲内で実装することができる。
【００５１】
種々の方針は、プロバイダによっても実装される場合がある。例えば、プロバイダは、時刻に基づいて、世界中でどこに最高の負荷があるか、日中および夜間の期間における相対相違に基づいて、世界中でどこにその負荷がシフトするか等に基づいて、トラフィックをルーティングすることによって、平均パス長を短縮するように、上で述べられるように、トラフィックが、一日中、異なる領域へルーティングされる、「太陽を追尾する」タイプの方針を実装する場合がある。かかる方針はまた、グローバルな自動スケールを実施することもでき、異なる領域は、時刻または他のかかる要因に基づいて、異なる量のトラフィックを受信、処理、および／または送信することができる。一部の実施形態において、顧客は、大多数のトラフィックが、現在の領域に比較的ローカルにある場所へ適合するために、２４時間ごとにわたり、「世界中」のサイトまたはアプリケーションを移動することができる。
【００５２】
種々の従来の手法は、いくらかのレベルのグローバルな要求ルーティングソリューションを提供するということが理解されるべきである。例えば、Ｃａｍｂｒｉｄｇｅ，  ＭａｓｓａｃｈｕｓｅｔｔｓのＡｋａｍａｉ  Ｔｅｃｈｎｏｌｏｇｉｅｓは、容量に基づいて、動的に負荷を方向付ける能力を有するグローバルなＤＮＳディレクタとともに、アプリケーションが、ネットワークのエッジで実行されることを可能にする、エッジソリューションを提供する。グローバルなＤＮＳディレクタは、データプレーン上では動作するわけではなく、ＤＮＳレベルで均衡化に対処するのみである、負荷バランサとして作用することができる。異なる時間帯において、２つのデータセンタが存在する場合、ＤＮＳディレクタは、現在の容量の量を示す、各時間帯からの負荷バランサ（または他の構成要素）からの情報を取得することができ、ディレクタは、その容量に少なくとも部分的に基づいて、ＤＮＳ応答に重み付けすることができる。例えば、負荷または群メンバの変化がある（即ち、いくつかの追加のサーバがオンラインになる）場合、ＤＮＳディレクタは、適宜決定を行うことができる。かかる手法は、その能力において比較的制限され、強力に一貫性があるわけではない。さらに、本明細書において述べられる手法に対して、いくらかのタイムラグが存在する。従来の手法は、特に、サービスプロバイダレベルでは、グローバルな再マッピング可能なＩＰアドレスを利用せず、このため、本開示における種々の利点または実装を提供することができない。
【００５３】
ある従来のシステムに関して、種々の実施形態の相違のうちの少なくとも一部を解説するために使用することができる手法は、図５（ａ）および５（ｂ）に関して説明することができる。図５（ａ）において、上部層としてのインターネット５０２、中間層としてのサービスプロバイダ５０４、および下部プロトコル層５０６（例えば、ルーティングプロトコル基盤）を含む、３つのレベル描写５００が例解される。プロトコル層は、良好に接続され、完全にマッピングされ、皆が、プロトコル層の同じエリア内に参加する。図５（ａ）の従来の手法において、インターネットがサービスプロバイダに「タッチする」、多くの異なるポイント５０８が存在する。厳密にそれらのポイントのうちの１つが、トラフィックをルーティングする目的で、特定のＩＰアドレスを公示するであろう。しかしながら、図５（ｂ）の手法において、サービスプロバイダ５１４がインターネット５１２にタッチする、それらのポイントのうちの２つ以上が、同じグローバルな再マッピング可能なＩＰアドレスを公示することができる。次いで、ローカルに、ＩＰアドレスが公示されるサイトにおいて、そのＩＰに対して入ってくるトラフィックは、プロトコル層５１６が種々の場所５１８を相互接続することができるように、プロトコル固有の情報とともにカプセル化することができる。
【００５４】
種々の実施形態において、相互接続は、ＮＡＴ翻訳に対する通常のＩＰ等といった、ルーティングプロトコル基盤が存在しない場合、他の手法を使用して提供することができる。例えば、トラフィックは、インターネットから来て、領域固有である、比較的遅く移動するアドレスに翻訳され得る、特定のグローバルなＩＰアドレスへ行くことができる。次いで、トラフィックは、その領域に向かって前進し得、その領域にある時、アドレスを実際のホストのアドレスに翻訳して、トラフィックを受信し、これは、はるかに速く移動するマッピングを含むことができる。一実施例において、２つのＮＡＴ翻訳デバイスは、送信元領域が送信先ＩＰアドレスにコード化される場合、２つ以上のＩＰアドレスが存在し、それらのアドレスのうちの少なくとも１つが、グローバルな再マッピング可能なＩＰアドレスである場合に、使用することができる。グローバルなＩＰアドレスに向かうトラフィックを受信することができ、これは、領域固有の再マッピング可能なＩＰアドレスへ、効果的に再マッピングすることができる。応答トラフィックは、同様の様式で再マッピングすることができる。
【００５５】
かかる手法は、従来の二方向マッピングの代わりに（またはそれに加えて）、効果的に一方向マッピングを利用する。以下のＩＰアドレスでの状況を考慮されたい。
Ａ＝グローバルな再マッピング可能なＩＰアドレス
Ｂ＝Ｌ．Ａ．固有のＩＰアドレス
Ｃ＝内部プロバイダＩＰアドレス（例えば、ホスト／インスタンスアドレス）
Ｄ＝Ｌ．Ａ．固有のＩＰアドレス
トラフィックが、グローバルなアドレスＡに対応する送信先を有するＬ．Ａ．に到着する実施例において、そのトラフィックは、適切なインスタンス等に配信されるべき内部アドレスＣに直接マッピングすることができる。これは、従来の手法を使用して、ルーティングが作用する方法と同様である。代わりに、トラフィックが、グローバルなアドレスＡに向けられる、バージニア州といった、別の領域に到着する場合、バージニア州は、インターネットからのトラフィックをＬ．Ａ．内のアドレスＢへマッピングすることができるように、Ａ→Ｂへの一方向マッピングを有することができる。プロバイダは、Ｂがメンバであるアドレスブロック全体が、Ｌ．Ａ．内にあるということに気付くことができるため、プロバイダは、トラフィックが意図されるインスタンスに到達することができるように、Ｂ→Ｃへの一方向マッピングを有するＬ．Ａ．に、インターネット上で、プロバイダのバックボーンを下って、トラフィックを送信することができる。次いで、バージニア州に運搬し戻すことを必要とせずに、トラフィックが直接、インターネットに行くことができるように、いずれの戻りトラフィックも、直接再マッピングに従って、Ｃ→Ａに行くことができる。
【００５６】
少なくとも一部の実施形態において、送信元領域はまた、かかる手法において、コード化することができる。例えば、アイルランドは、Ａ→ＢではなくＡ→Ｄのマッピングを有する場合があるが、ＢおよびＤの両方は、Ｌ．Ａ．に位置する。アイルランドにおいて受信されるＡに向けられるトラフィックは、送信先アドレスをＤへ変更するように、ＮＡＴプロセスを受け得、それにより、トラフィックを、バックボーンまたはＷＡＮ上で、Ｌ．Ａ．へ送信することができ、そこで、先の実施例と同様に、同様のＤ→Ｃマッピングを実施することができる。しかしながら、この場合、システムは、バージニア州に進入したトラフィックと、アイルランドに進入したトラフィックとの間で、差別化することができる。かかる手法は、Ｌ．Ａ．における、トラフィックが進入した領域（しかしながら、必ずしもインスタンスではない）の判断を可能にする。かかる手法は、中間ＩＰが公的にルーティング可能である場合、領域間のトラフィックが、プロバイダネットワーク上でバックホールされる代わりに、インターネットに押し戻されることを可能にすることができる。少なくとも一部の実施形態において、バックホールすべきか、またはインターネット上へ押し出すかどうかの決定は、現在の負荷およびトランジット価格といったいくつかの要因に基づいて、行うことができる。
【００５７】
図６は、種々の実施形態に従って使用することができる、グローバルなアドレスを使用して、トラフィックをルーティングするための例示的なプロセス６００を例解する。本実施例において、グローバルな再マッピング可能なアドレスは、少なくとも１つの顧客インスタンスに対して選択６０２される。述べられるように、アドレスは、種々の他のタイプの送信先も指摘することができる。グローバルなアドレスは、中間領域アドレスまたは個々のインスタンスアドレスといった、任意の適切な内部または中間アドレスにもマッピング６０４することができる。次いで、グローバルなアドレスは、１つ以上の領域から公示６０６することができ、これは、本明細書において述べられるように、任意の適切な位置とすることができる。また、述べられるように、グローバルなアドレスが公示される領域は、種々の時間に変化することができる。トラフィックが、グローバルな再マッピング可能なアドレスに対して向けられる領域のうちの１つへその後受信される６０８時、送信先領域を判断６１０することができる。述べられるように、これは、構成情報に少なくとも部分的に基づいた静的判断とすることができるか、または現在の負荷、現在の利用可能性、領域への距離、ランキング情報等といった要因に基づいた、動的決定とすることができる。
【００５８】
判断された送信先領域が、トラフィックが受信されたものと同じ領域であると判断６１２される場合、トラフィックを、適切なインスタンスに対する内部アドレスへ再マッピングする６１４ことができ、トラフィックを、そのインスタンスへ配信する６１６ことができる。トラフィックが受信された領域が、判断されるような送信先領域ではない場合、トラフィックは、送信先領域へ再マッピングする６１８ことができ、送信先領域へ転送する６２０ことができる。述べられるように、この転送は、本明細書において述べられる種々の要因に依存して、私的プロバイダネットワークまたは公的ネットワーク上で行うことができる。トラフィックが送信先に到達する時、トラフィックは、適宜、インスタンスへ再マッピングおよび配信することができる。
【００５９】
種々の実施形態において、同様のマッピングおよび翻訳は、ＤＮＳレベルでも実施することができる。例えば、プロバイダが、所与のホストに対するＤＮＳを制御する場合、ＤＮＳ応答は、翻訳が、ＩＰアドレス間ではなくむしろ、ＤＮＳ名とＩＰアドレスとの間であるように、修正することができる。かかる手法は、例えば、ＮＡＴ翻訳または他のプロトコル固有のカプセル化の代わりに使用することができる。
【００６０】
さらに、ある実施形態は、異なる方法で、変更時前後に受信されるトラフィックに対処することができる。例えば、グローバルなＩＰおよびＤＮＳ名を有するホストは、そのＤＮＳ名を新たな領域へルーティングさせたい場合がある。一部の実施形態において、旧領域で受信される全てのトラフィックは、ドロップされる可能性がある。しかしながら、少なくとも一部の実施形態において、システムは、最終的な送信先がまだ分からない、または利用可能でない可能性がある場合でさえ、トラフィックを新たな領域へ方向付けることができる。状態情報が維持されている、さらに他の実施形態において、取引は、先の領域においてライブであったサービスであり続けることができる。既存の取引は、旧領域において処理することができ、新たなトラフィックは、遷移期間中、トラフィックをドロップすることを回避するために、新たな領域へ送信される。
【００６１】
種々の他の手法も、上で説明される機能性のうちの少なくとも一部を利用することができる。例えば、インターネットプロトコルバージョン６（ＩＰｖ６）を利用するシステムは、ＩＰｖ６が従来の手法に従うＮＡＴでは利用しない場合でさえも、かかる手法を利用することができる。しかしながら、本明細書において述べられる種々のアドレス翻訳手法を利用することができるように、中間ＩＰアドレスを依然として使用することができる。他の手法において、グローバルなＩＰから領域固有のＩＰへの第１の翻訳を有した領域に到着するトラフィックは、通常のように、グローバルに固有のＩＰアドレスに翻訳し戻し、配信することができる。少なくとも一部の実施形態において、アドレス公示は、クラウドフロントの存在点（ＰＯＰ）に延長することができる。かかる手法を使用して、任意の所望の調節をより迅速に行うことができるように、トラフィックを、プロバイダのネットワーク上へ迅速に移動させることができる。
【００６２】
種々の実施形態は、以下の項を考慮して説明することができる。
【００６３】
第１項．ネットワークトラフィックを方向付けるコンピュータ実装方法であって、
実行可能な命令とともに構成される１つ以上のコンピュータシステムの制御下で、
グローバルな再マッピング可能なインターネットプロトコル（ＩＰ）アドレスを、複数のネットワーク場所の少なくとも１つのネットワーク場所に位置する、少なくとも１つの仮想インスタンスへマッピングすることと、
それらのネットワーク場所のうちの少なくとも２つから、グローバルな再マッピング可能なＩＰアドレスを公示することと、
グローバルな再マッピング可能なＩＰアドレスが公示される、少なくとも２つのネットワーク場所の受信ネットワーク場所へのネットワークトラフィックを受信することと、
ネットワークトラフィックに対する送信先ネットワーク場所を判断することと、
送信先ネットワーク場所が受信ネットワーク場所である時、ネットワークトラフィックを再マッピングし、少なくとも１つの仮想インスタンスの標的インスタンスへ、ネットワークトラフィックを配信することと、
送信先ネットワーク場所が、受信ネットワーク場所とは異なる時、
送信先ネットワーク場所に対する中間ＩＰアドレスへ、ネットワークトラフィックを再マッピングすることと、
ネットワークトラフィックを、送信先ネットワーク場所における中間ＩＰアドレスへ送信することと、
ネットワークトラフィックが送信先ネットワーク場所で受信される時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的インスタンスへ配信することと、を含む、方法。
【００６４】
第２項．
ネットワークトラフィックを受信するサービスプロバイダの私的ネットワーク上で、またはインターネット上で、送信先ネットワーク場所における中間ＩＰアドレスへ、ネットワークトラフィックを送信するかどうかを判断することをさらに含む、第１項に記載のコンピュータ実装方法。
【００６５】
第３項．私的ネットワークまたはインターネット上で、中間ＩＰアドレスへネットワークトラフィックを送信するかどうかを判断することは、私的ネットワークの現在の負荷に少なくとも部分的に基づく、請求項２に記載のコンピュータ実装方法。
【００６６】
第４項．ネットワークトラフィックを方向付けるコンピュータ実装方法であって、
実行可能な命令とともに構成される１つ以上のコンピュータシステムの制御下で、
サービスプロバイダネットワークへのネットワークトラフィックを受信することであって、ネットワークトラフィックは、サービスプロバイダネットワークの少なくとも１つのポイントから公示される、グローバルな再マッピング可能なアドレスへ受信され、各ポイントは、異なるネットワーク場所に存在すること、およびサービスプロバイダネットワークの標的送信先へマッピングされることが可能である、受信することと、
標的送信先の送信先ネットワーク場所が、ネットワークトラフィックが受信される受信ネットワーク場所と同じである時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的送信先へ配信することと、
送信先ネットワーク場所が、受信ネットワーク場所とは異なる時、
ネットワークトラフィックを、送信先ネットワーク場所に対するサービスプロバイダネットワークの中間アドレスへ再マッピングすることと、
ネットワークトラフィックを、送信先ネットワーク場所における中間アドレスへ送信することと、
ネットワークトラフィックが送信先ネットワーク場所で受信される時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的送信先へ配信することと、を含む、方法。
【００６７】
第５項．グローバルな再マッピング可能なアドレスは、サービスプロバイダネットワークの少なくとも２つのポイントから公示される、第４項に記載のコンピュータ実装方法。
【００６８】
第６項．再マッピング可能なグローバルアドレスは、グローバルな再マッピング可能なインターネットプロトコル（ＩＰ）アドレスであり、
サービスプロバイダは、ドメイン名システム（ＤＮＳ）またはボーダゲートウェイプロトコル（ｂｏｒｄｅｒ  ｇａｔｅｗａｙ  ｐｒｏｔｏｃｏｌ：ＢＧＰ）ルーティングのうちの少なくとも１つを使用して、ネットワークトラフィックのグローバルなルーティングを可能にする、第４項に記載のコンピュータ実装方法。
【００６９】
第７項．標的送信先は、マルチテナントリソース環境における、少なくとも１つの仮想機械に対応する、第４項に記載のコンピュータ実装方法。
【００７０】
第８項．標的送信先に対応する顧客は、標的送信先を判断する上で有用な少なくとも１つの方針を提出することが可能になる、第４項に記載のコンピュータ実装方法。
【００７１】
第９項．顧客は、少なくとも１つのアプリケーションプログラミングインターフェース（ＡＰＩ）を通して、更新された方針を提出することができる、第７項に記載のコンピュータ実装方法。
【００７２】
第１０項．顧客は、ネットワーク場所ごとに少なくとも１つの方針を提出することができる、第８項に記載のコンピュータ実装方法。
【００７３】
第１１項．異なるネットワーク場所は、地理的に分散した領域、または異なるプロバイダによって運用されるネットワークのうちの少なくとも１つに対応する、第４項に記載のコンピュータ実装方法。
【００７４】
第１２項．標的送信先を判断するための方針は、特定の時刻に、ネットワークトラフィックを方向付けるべきネットワーク場所を指定する、第４項に記載のコンピュータ実装方法。
【００７５】
第１３項．少なくとも１つの方針は、標的送信先を判断するために利用され、少なくとも１つの方針は、ネットワークトラフィックの発信場所、ネットワークトラフィックに対応する顧客のタイプ、またはネットワークトラフィックと関連付けられる財務的考慮の量のうちの少なくとも１つに基づいて、標的送信先を判断する、第４項に記載のコンピュータ実装方法。
【００７６】
第１４項．標的送信先は、ネットワークトラフィックが受信されるネットワーク場所に少なくとも部分的に基づいて、トラフィックをルーティングすべきネットワーク場所を示す、静的構成情報を使用して、判断される、第４項に記載のコンピュータ実装方法。
【００７７】
第１５項．標的送信先は、あるネットワーク場所の現在の負荷、およびあるネットワーク場所のネットワーク近接性のうちの少なくとも１つを含む要因に基づいて、動的に判断される、第４項に記載のコンピュータ実装方法。
【００７８】
第１６項．標的送信先は、種々のネットワーク場所をランク付けするリスト、およびグローバルに再マッピング可能なアドレスがアクティブである、ネットワーク場所のリストを使用して判断される、第４項に記載のコンピュータ実装方法。
【００７９】
第１７項．グローバルな再マッピング可能なアドレスは、異なる国および異なる大陸のうちの少なくとも１つにおけるネットワーク場所から、公示されることが可能である、第４項に記載のコンピュータ実装方法。
【００８０】
第１８項．ネットワークトラフィックは、公的または私的ネットワークを使用して、中間アドレスへ送信されることが可能である、第４項に記載のコンピュータ実装方法。
【００８１】
第１９項．グローバルな再マッピング可能なアドレス、中間アドレス、および送信先アドレス間のマッピングのうちの少なくとも一部は、一方向である、第４項に記載のコンピュータ実装方法。
【００８２】
第２０項．グローバルな再マッピング可能なアドレスは、グローバルな再マッピング可能なアドレスが公示される、いくつかのネットワーク場所よりも少ないネットワーク場所へマッピングされることが可能である、第４項に記載のコンピュータ実装方法。
【００８３】
第２１項．グローバルな再マッピング可能なアドレスが公示される、少なくとも１つのネットワーク場所は、少なくともあるタイプのトラフィックが、処理のために伝送されることができるか、または承認される、ローカルリソースを有しない、第１７項に記載のコンピュータ実装方法。
【００８４】
第２２項．ネットワークトラフィックは、エニーキャスト手法を使用して方向付けられる、第４項に記載のコンピュータ実装方法。
【００８５】
第２３項．顧客は、重み付けされたトラフィックの均衡化を指定することができ、受信されたトラフィックのおおよその量は、少なくとも１つのネットワーク場所へ方向付けられる、第４項に記載のコンピュータ実装方法。
【００８６】
第２４項．アドレスは、新たな仮想機械へグローバルに再マッピング可能であり、既存の取引は、先の仮想機械を使用して処理することが可能である一方、新たな取引は、処理のために、新たな仮想機械へ方向付けられる、第４項に記載のコンピュータ実装方法。
【００８７】
第２５項．ネットワークトラフィックを管理するためのシステムであって、
プロセッサと、
プロセッサによって実行される時、プロセッサに、
サービスプロバイダネットワークへのネットワークトラフィックを受信することであって、ネットワークトラフィックは、サービスプロバイダネットワークの少なくとも１つのポイントから公示される、グローバルな再マッピング可能なアドレスへ受信され、各ポイントは、異なるネットワーク場所に存在すること、およびサービスプロバイダネットワークの標的送信先へマッピングされることが可能である、受信することと、
標的送信先の送信先ネットワーク場所が、ネットワークトラフィックが受信される受信ネットワーク場所と同じである時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的送信先へ配信することと、
送信先ネットワーク場所が、受信ネットワーク場所とは異なる時、
ネットワークトラフィックを、送信先ネットワーク場所に対するサービスプロバイダネットワークの中間アドレスへ再マッピングすることと、
ネットワークトラフィックを、送信先ネットワーク場所における中間アドレスへ送信し、それにより、ネットワークトラフィックが送信先ネットワーク場所で受信される時、ネットワークトラフィックを標的送信先へ再マッピングおよび配信することができることと、を行わせる、命令を含む、メモリデバイスと、を備える、システム。
【００８８】
第２６項．標的送信先は、方針、ランキングリスト、ネットワーク負荷、または静的構成のうちの少なくとも１つに従って判断される、第２５項に記載のシステム。
【００８９】
第２７項．ネットワークトラフィックは、公的または私的ネットワークを使用して、中間アドレスへ送信されることが可能である、第２５項に記載のシステム。
【００９０】
第２８項．ネットワークトラフィックを管理するための命令を記憶する、非一時的なコンピュータが読み取り可能な記憶媒体であって、命令は、プロセッサによって実行される時、プロセッサに、
サービスプロバイダネットワークへのネットワークトラフィックを受信することであって、ネットワークトラフィックは、サービスプロバイダネットワークの少なくとも１つのポイントから公示される、グローバルな再マッピング可能なアドレスへ受信され、各ポイントは、異なるネットワーク場所に存在すること、およびサービスプロバイダネットワークの標的送信先へマッピングされることが可能である、受信することと、
標的送信先の送信先ネットワーク場所が、ネットワークトラフィックが受信される受信ネットワーク場所と同じである時、ネットワークトラフィックを再マッピングし、ネットワークトラフィックを標的送信先へ配信することと、
送信先ネットワーク場所が、受信ネットワーク場所とは異なる時、
ネットワークトラフィックを、送信先ネットワーク場所に対するサービスプロバイダネットワークの中間アドレスへ再マッピングすることと、
ネットワークトラフィックを、送信先ネットワーク場所における中間アドレスへ送信し、それにより、ネットワークトラフィックが送信先ネットワーク場所で受信される時、ネットワークトラフィックを標的送信先へ再マッピングおよび配信することができることと、を行わせる、非一時的なコンピュータが読み取り可能な記憶媒体。
【００９１】
第２９項．グローバルな再マッピング可能なアドレス、中間アドレス、および送信先アドレス間のマッピングのうちの少なくとも一部は、一方向である、第２８項に記載の非一時的なコンピュータが読み取り可能な記憶媒体。
【００９２】
上で述べられるように、種々の実施形態は、一部の場合において、いくつかのアプリケーションのうちのいずれかを動作させるために使用することができる、１つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができる、多種多様な動作環境において、実装することができる。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータといった、いくつかの汎用パーソナルコンピュータ、ならびにモバイルソフトウェアを実行し、いくつかのネットワーキングおよびメッセージングプロトコルをサポートすることが可能なセルラ、無線、および手持ち式のデバイスのうちのいずれも含むことができる。かかるシステムはまた、開発およびデータベース管理といった目的のための多様な商業的に利用可能なオペレーティングシステムおよび他の既知のアプリケーションのうちのいずれかを実行する、いくつかのワークステーションを含むことができる。これらのデバイスはまた、ダミー端末、シンクライアント、ゲームシステム、およびネットワークを介して通信することが可能な他のデバイスといった、他の電子デバイスを含むことができる。
【００９３】
種々の態様はまた、サービス志向のアーキテクチャの一部であり得るように、少なくとも１つのサービスまたはウェブサービスの一部として実装することができる。ウェブサービスといったサービスは、例えば、拡張マークアップ言語（ＸＭＬ）様式のメッセージを使用することによって、任意の適切なタイプのメッセージングを使用して通信し、ＳＯＡＰ（「シンプル・オブジェクト・アクセス・プロトコル（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）」に由来）といった適切なプロトコルを使用して交換することができる。かかるサービスによって提供または実行されるプロセスは、ウェブサービス記述言語（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：ＷＳＤＬ）といった任意の適切な言語で書くことができる。ＷＳＤＬといった言語を使用することは、種々のＳＯＡＰフレームワークにおける、クライアント側コードの自動生成といった機能性を可能にする。
【００９４】
ほとんどの実施形態は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、およびＡｐｐｌｅＴａｌｋといった、多様な商業的に利用可能なプロトコルのうちのいずれかを使用した通信をサポートするための、当業者にはよく知られているであろう、少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想私的ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびこれらの任意の組み合わせとすることができる。
【００９５】
ウェブサーバを利用する実施形態において、ウェブサーバは、多様なサーバまたはミッドティアアプリケーションのいずれかを実行することができ、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａサーバ、およびビジネスアプリケーションサーバが含まれる。サーバ（複数を含む）はまた、例えば、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋といった任意のプログラミング言語、またはＰｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬ、ならびにこれらの組み合わせといった任意のスクリプト言語で書かれる、１つ以上のスクリプトまたはプログラムとして実装されてもよい、１つ以上のウェブアプリケーションを実行することによって、ユーザデバイスからの応答要求におけるプログラムまたはスクリプトを実行することが可能であってもよい。サーバ（複数を含む）はまた、限定することなく、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、およびＩＢＭ（登録商標）から商業的に利用可能なものを含む、データベースサーバを含んでもよい。
【００９６】
環境は、上で述べられるような多様なデータストアおよび他のメモリおよび記憶媒体を含むことができる。これらは、コンピュータのうちの１つ以上にローカルな（および／もしくはその中に常駐する）、またはネットワークにわたって、コンピュータのうちのいずれかもしくは全てからリモートの記憶媒体上といった多様な場所に常駐することができる。特定の組の実施形態において、情報は、当業者にはよく知られているストレージエリアネットワーク（「ＳＡＮ」）に常駐してもよい。同様に、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を実施するためのいずれの必要なファイルも、適切に、ローカルおよび／またはリモートで記憶されてもよい。システムが、コンピュータ化されたデバイスを含む場合、かかる各デバイスは、バスを介して電気的に結合されてもよいハードウェア要素を含むことができ、要素には、例えば、少なくとも１つの中央処理装置（ＣＰＵ）、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド）、および少なくとも１つの出力デバイス（例えば、表示デバイス、プリンタ、またはスピーカ）が含まれる。かかるシステムはまた、ディスクドライブ、光学記憶デバイス、およびランダムアクセスメモリ（「ＲＡＭ」）または読み取り専用メモリ（「ＲＯＭ」）といったソリッドステート記憶デバイス、ならびに取り外し可能なメディアデバイス、メモリカード、フラッシュカード等といった、１つ以上の記憶デバイスを含んでもよい。
【００９７】
かかるデバイスはまた、上で説明されるように、コンピュータが読み取り可能な記憶媒体読取器、通信デバイス（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイス等）、およびワーキングメモリを含むことができる。コンピュータが読み取り可能な記憶媒体読取器は、コンピュータが読み取り可能な記憶媒体と接続、またはそれを受容するように構成することができ、一時的および／またはより永続的に、コンピュータが読み取り可能な情報を含有、記憶、伝送、および取り出しするための、リモート、ローカル、固定、および／または取り外し可能な記憶デバイス、ならびに記憶媒体を表す。システムおよび種々のデバイスはまた、典型的に、いくつかのソフトウェアアプリケーション、モジュール、サービス、または少なくとも１つのワーキングメモリデバイス内に位置する他の要素を含み、オペレーティングシステム、およびクライアントアプリケーションまたはウェブブラウザといったアプリケーションプログラムが含まれる。代替の実施形態は、上で説明されるものからの多数の改変を有し得るということが理解されるべきである。例えば、カスタム化されたハードウェアもまた、使用される場合がある、および／または特定の要素が、ハードウェア、ソフトウェア（アプレットといったポータブルソフトウェアを含む）、またはその両方において、実装される場合がある。さらに、ネットワーク入力／出力デバイスといった他のコンピューティングデバイスへの接続が採用されてもよい。
【００９８】
コード、またはコードの一部分を含有するための記憶媒体およびコンピュータが読み取り可能な媒体は、記憶媒体および通信媒体を含む、当該技術分野において既知の任意の適切な媒体を含むことができ、コンピュータが読み取り可能な命令、データ構造、プログラムモジュール、または他のデータといった情報の記憶および／または伝送のための任意の方法または技術において実装される、揮発性および非揮発性の取り外し可能な、および取り外し不可能な媒体に限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイス、あるいは所望の情報を記憶するために使用することができ、システムデバイスによってアクセスすることができる、任意の他の媒体が含まれる。本開示および本明細書において提供される教示に基づいて、当業者は、種々の実施形態を実装するための他の仕方および／または方法を理解するであろう。
【００９９】
したがって、本明細書および図面は、制限的な意味ではなくむしろ例解的な意味で見なされるものとする。しかしながら、請求項に記載される本発明の広義の精神および範囲から逸脱することなく、それに種々の修正および変更が行われ得るということが明白であろう。
【図１】
0005727053.tif 000002
【図２】
0005727053.tif 000003
【図３】
0005727053.tif 000004
【図４】
0005727053.tif 000005
【図５（ａ）】
0005727053.tif 000006
【図５（ｂ）】
0005727053.tif 000007
【図６】
0005727053.tif 000008