(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-05
(45)【発行日】2022-09-13
(54)【発明の名称】コンピュータ実施方法及びシステム
(51)【国際特許分類】
H04L 61/5061 20220101AFI20220906BHJP
H04L 41/0895 20220101ALI20220906BHJP
【FI】
H04L61/5061
H04L41/0895
(21)【出願番号】P 2021501315
(86)(22)【出願日】2019-07-16
(86)【国際出願番号】 US2019042067
(87)【国際公開番号】W WO2020018582
(87)【国際公開日】2020-01-23
【審査請求日】2021-03-05
(32)【優先日】2018-07-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ゴエリッツ、ジェイソン
(72)【発明者】
【氏名】ニコライエフ、レオニード
(72)【発明者】
【氏名】パケット、ダニエル ラルフ
(72)【発明者】
【氏名】パンディ、アヌパム
【審査官】鈴木 香苗
(56)【参考文献】
【文献】特表2014-512739(JP,A)
【文献】中国特許出願公開第106060014(CN,A)
【文献】特開2011-204077(JP,A)
【文献】特開2015-164067(JP,A)
【文献】特開2015-035034(JP,A)
【文献】米国特許出願公開第2014/0075047(US,A1)
【文献】特表2017-520823(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 61/5061
H04L 41/0895
(57)【特許請求の範囲】
【請求項1】
アドレス空間をプロバイダネットワークに移行する要求を受信することであって、前記要求は少なくとも1つのアドレス範囲を含む、前記受信することと、
インターネットレジストリを使用して前記要求を認可することと、
前記アドレス空間の少なくとも一部を、前記プロバイダネットワークの少なくとも1つのエリアにプロビジョニングすることと、
前記アドレス空間の前記少なくとも一部をアドバタイズする要求を受信することと、
前記アドレス空間の前記少なくとも一部をアドバタイズすることと、
前記アドレス空間の前記少なくとも一部の中の少なくとも1つのアドレスを、前記プロバイダネットワーク内の少なくとも1つのリソースに割り当てることと、
移行ステータス要求を受信することと、
前記アドレス空間のステータスを示す移行ステータス応答を送信することであって、前記アドレス空間の前記ステータスには、プロビジョニング完了、プロビジョニング中、プロビジョニング解除完了、またはアドバタイズ中のうちの1つが含まれる、前記送信することと、
を含む、コンピュータ実施方法。
【請求項2】
前記インターネットレジストリを使用して前記要求を認可することは、さらに、
前記インターネットレジストリから、前記アドレス空間に対応付けられたルートオリジン認可オブジェクトを取得することと、
前記ルートオリジン認可オブジェクトが、前記プロバイダネットワークに対応付けられた識別子を含むことを判定することと、
を含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記アドレス空間を移行する前記要求を認証すること、をさらに含む前記コンピュータ実施方法であって、前記認証することは、
前記ルートオリジン認可オブジェクトの少なくとも一部を復号化して、認可オブジェクトを取得すること、または、
前記アドレス空間に対応付けられたドメインネームサービスエントリから、前記認可オブジェクトを取得すること、
のうちの少なくとも1つを含む、請求項2に記載のコンピュータ実施方法。
【請求項4】
前記アドレス空間を前記プロバイダネットワークの少なくとも1つのエリアにプロビジョニングすることは、さらに、
前記アドレス空間を、前記プロバイダネットワークの第1のエリアの制御プレーンに追加することと、
前記アドレス空間を、前記プロバイダネットワークの第2のエリアの制御プレーンに追加することと、
を含む、請求項1~3のいずれか1項に記載のコンピュータ実施方法。
【請求項5】
前記アドレス空間を使用して、前記プロバイダネットワークの前記第1のエリア内に第1のアドレスプールを作成することと、
前記第1のアドレスプールから複数のネットワークアドレスを、前記プロバイダネットワークの前記第1のエリア内の第1の複数のリソースに割り当てることと、
前記アドレス空間を使用して、前記プロバイダネットワークの前記第2のエリア内に第2のアドレスプールを作成することと、
前記第2のアドレスプールから前記複数のネットワークアドレスを、前記プロバイダネットワークの前記第2のエリア内の第2の複数のリソースに対応付けることであって、前記第2の複数のリソースのうちの各リソースは、前記第1の複数のリソースのうちのリソースに対応し、ネットワークアドレスを共有する、前記対応付けることと、
前記プロバイダネットワークの前記第1のエリアから前記アドレス空間をアドバタイズすることと、
をさらに含む、請求項4に記載のコンピュータ実施方法。
【請求項6】
フェイルオーバイベントを検出することと、
前記プロバイダネットワークの前記第1のエリアからの前記アドレス空間のアドバタイズを停止することと、
前記プロバイダネットワークの前記第2のエリアから前記アドレス空間をアドバタイズすることと、
をさらに含む、請求項5に記載のコンピュータ実施方法。
【請求項7】
前記アドレス空間を使用して前記プロバイダネットワークの前記第1のエリア内にアドレスプールを作成することをさらに含み、
前記アドレスプールは複数のサブプールを含み、各サブプールはアカウントアクセスポリシーに対応付けられており、
各サブプールからの割り当ては認証サービスにより管理される、
請求項4~6のいずれか1項に記載のコンピュータ実施方法。
【請求項8】
前記アドレス空間をアドバタイズする要求を受信することは、さらに、
前記プロバイダネットワークの第1のエリアから前記アドレス空間の一部をアドバタイズする要求を受信することと、
前記アドレス空間の前記一部をアドバタイズすることと、
を含む、請求項1~7のいずれか1項に記載のコンピュータ実施方法。
【請求項9】
プロバイダネットワーク内に1つ以上のインスタンスを提供するよう、第1の1つ以上の電子デバイスにより実施されるハードウェア仮想化サービスと、
第2の1つ以上の電子デバイスにより実施される移行サービスと、
を備えるシステムであって、前記移行サービスは命令を含み、前記命令は実行されると、前記移行サービスに、
アドレス空間を前記プロバイダネットワークに移行する要求を受信することであって、前記要求は少なくとも1つのアドレス範囲を含む、前記受信することと、
前記アドレス空間の少なくとも一部を、前記プロバイダネットワークの少なくとも1つのエリアにプロビジョニングすることと、
前記アドレス空間の前記少なくとも一部をアドバタイズする要求を受信することと、
前記アドレス空間の前記少なくとも一部をアドバタイズすることであって、前記アドレス空間内の少なくとも1つのアドレスは、前記プロバイダネットワーク内の前記ハードウェア仮想化サービスにより提供される少なくとも1つのインスタンスに割り当てられる、前記アドバタイズすることと、
移行ステータス要求を受信することと、
前記アドレス空間のステータスを示す移行ステータス応答を送信することであって、前記アドレス空間の前記ステータスには、プロビジョニング完了、プロビジョニング中、プロビジョニング解除完了、またはアドバタイズ中のうちの1つが含まれる、前記送信することと、
を実行させる、システム。
【請求項10】
インターネットレジストリを使用して前記要求を認可するための前記命令は、実行されると、前記移行サービスに、さらに、
前記インターネットレジストリから、前記アドレス空間に対応付けられたルートオリジン認可オブジェクトを取得することと、
前記ルートオリジン認可オブジェクトが、前記プロバイダネットワークに対応付けられた識別子を含むことを判定することと、
を実行させる、請求項
9に記載のシステム。
【請求項11】
前記命令は、実行されると、前記移行サービスに、さらに、
前記アドレス空間を移行する前記要求を認証すること、を実行させ、前記認証することは、
前記ルートオリジン認可オブジェクトの少なくとも一部を復号化して、認可オブジェクトを取得すること、または、
前記アドレス空間に対応付けられたドメインネームサービスエントリから、前記認可オブジェクトを取得すること、
のうちの少なくとも1つを含む、請求項
10に記載のシステム。
【請求項12】
前記アドレス空間を前記プロバイダネットワークの少なくとも1つのエリアにプロビジョニングするための前記命令は、実行されると、前記移行サービスに、さらに、
前記アドレス空間を、前記プロバイダネットワークの第1のエリアの制御プレーンに追加することと、
前記アドレス空間を、前記プロバイダネットワークの第2のエリアの制御プレーンに追加することと、
を実行させる、請求項
9~
11のいずれか1項に記載のシステム。
【請求項13】
第2の1つ以上の電子デバイスにより実施されるアドレス割り当てサービスを、さらに備える前記システムであって、
前記アドレス割り当てサービスは命令を含み、前記命令は実行されると、前記アドレス割り当てサービスに、
前記アドレス空間を使用して、前記プロバイダネットワークの前記第1のエリア内に第1のアドレスプールを作成することと、
前記第1のアドレスプールから複数のネットワークアドレスを、前記プロバイダネットワークの前記第1のエリア内の第1の複数のインスタンスに割り当てることと、
前記アドレス空間を使用して、前記プロバイダネットワークの前記第2のエリア内に第2のアドレスプールを作成することと、
前記第2のアドレスプールから前記複数のネットワークアドレスを、前記プロバイダネットワークの前記第2のエリア内の第2の複数のインスタンスに対応付けることであって、前記第2の複数のインスタンスのうちの各インスタンスは、前記第1の複数のインスタンスのうちのインスタンスに対応し、ネットワークアドレスを共有する、前記対応付けることと、
前記プロバイダネットワークの前記第1のエリアから前記アドレス空間をアドバタイズすることと、
を実行させる、請求項
12に記載のシステム。
【請求項14】
前記命令は、実行されると、前記移行サービスに、さらに、
フェイルオーバイベントを検出することと、
前記プロバイダネットワークの前記第1のエリアからの前記アドレス空間のアドバタイズを停止することと、
前記プロバイダネットワークの前記第2のエリアから前記アドレス空間をアドバタイズすることと、
を実行させる、請求項
13に記載のシステム。
【請求項15】
前記命令は、実行されると、前記移行サービスに、さらに、
前記アドレス空間を使用して前記プロバイダネットワークの第1のエリア内にアドレスプールを作成すること、を実行させ、
前記アドレスプールは複数のサブプールを含み、各サブプールはアカウントアクセスポリシーに対応付けられており、
各サブプールからの割り当ては認証サービスにより管理される、
請求項9に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
多数の企業及び他の組織は、自身の業務を支援するための多数のコンピューティングシステムを相互接続するコンピュータネットワークを運用しており、コンピューティングシステムは、同じ場所に配置されている(例えばローカルネットワークの一部として)、あるいは複数の別個の地理的場所に配置されている(例えば1つ以上のプライベートまたはパブリックの中間ネットワークを介して接続されている)。例えば、単一の組織が自身のために運用するプライベートデータセンタ、及び顧客にコンピューティングリソースを提供するための事業主体が運用するパブリックデータセンタなど、著しい数の相互接続されたコンピューティングシステムを収容するデータセンタは、一般的なものとなっている。一部のパブリックデータセンタ運営者は、様々な顧客が所有するハードウェアのためのネットワークアクセス、電力、及び安全な設置設備を提供し、一方他のパブリックデータセンタ運営者は、顧客により利用可能なハードウェアリソースも含む「完全なサービス」設備を提供する。しかしながら、一般的なデータセンタの規模と範囲が拡大するにつれて、物理的コンピューティングリソースのプロビジョニング、運営、及び管理作業は、ますます複雑化している。
【0002】
汎用ハードウェアの仮想化技術の出現は、多様なニーズを持つ多くの顧客に、大規模なコンピューティングリソースを管理する点で利益をもたらし、様々なコンピューティングリソースを複数の顧客により効率的かつ安全に共有することが可能となった。例えば、仮想化技術は、単一の物理コンピューティングマシンがホストする1つ以上の仮想マシンを各ユーザに提供することにより、単一の物理コンピューティングマシンを複数のユーザ間で共有することを可能にし得る。このような仮想マシンはそれぞれ、別個の論理コンピューティングシステムとして機能するソフトウェアシミュレーションであり、ユーザに、自分が所与のハードウェアコンピューティングリソースの唯一の操作者及び管理者であると錯覚させ、また同時に様々な仮想マシン間のアプリケーション分離及び安全性を提供する。さらに、いくつかの仮想化技術は、複数の別個の物理コンピューティングシステムにわたる、複数の仮想プロセッサを有する単一の仮想マシンなど、2つ以上の物理リソースにわたる仮想リソースを提供可能である。別の例として、仮想化技術は、複数のデータストレージデバイスにわたり分散され得る仮想化データストアを各ユーザに提供することにより、データストレージハードウェアを複数のユーザ間で共有することを可能にし得る。このような仮想化データストアはそれぞれ、別個の論理データストアとして機能し、ユーザに、自分がデータストレージリソースの唯一の操作者及び管理者であると錯覚させる。
【0003】
本開示による様々な実施形態が、図面を参照して説明される。
【図面の簡単な説明】
【0004】
【
図1】いくつかの実施形態による、アドレス移行の環境を示す図である。
【
図2A】いくつかの実施形態による、アドレス移行の例を示す図である。
【
図2B】いくつかの実施形態による、アドレス移行の例を示す図である。
【
図3】いくつかの実施形態による、アドレス移行の環境を示す図である。
【
図4】いくつかの実施形態による、ルートサーバオーケストレータを示す図である。
【
図5A】いくつかの実施形態による、ディザスタリカバリにおけるアドレス移行の例を示す図である。
【
図5B】いくつかの実施形態による、ディザスタリカバリにおけるアドレス移行の例を示す図である。
【
図6】いくつかの実施形態による、移行されたアドレス空間のクロスアカウント使用の環境を示す図である。
【
図7】いくつかの実施形態による、アドレス移行のための例示的なアプリケーションプログラミングインターフェース(API)を示す図である。
【
図8】いくつかの実施形態による、アドレス移行のための方法の動作を示すフロー図である。
【
図9】いくつかの実施形態による、例示的なプロバイダネットワーク環境を示す。
【
図10】いくつかの実施形態による、顧客にストレージ仮想化サービス及びハードウェア仮想化サービスを提供する例示的なプロバイダネットワークのブロック図である。
【
図11】いくつかの実施形態で使用され得る例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0005】
アドレス移行のための方法、装置、システム、及び非一時的コンピュータ可読記憶媒体の様々な実施形態が説明される。いくつかの実施形態によれば、アドレス移行により、顧客は、自身の既存のパブリックルーティング可能なネットワークアドレス空間(例えばインターネットプロトコル(IP)バージョン4(IPv4)及び/またはIPバージョン6(IPv6)アドレス空間)の全てまたは一部を、プロバイダネットワーク(例えばサービスプロバイダがリソースをプロビジョニングするために使用する1つ以上のデータセンタ及び技術)に移動させて、プロバイダネットワーク内で使用することが可能となる。アドレス空間がプロバイダネットワークに移行されると、アドレスはアドレスプールに追加され、顧客のリソース(例えば計算インスタンス、ストレージインスタンス、データベースインスタンス、ロードバランサ、ネットワークアドレス変換(NAT)ゲートウェイなど)にアサインされ得る。
【0006】
これまで、独自のパブリックIPアドレス空間を有する顧客は、そのアドレス空間をプロバイダネットワークに移行することは不可能であった。その結果、顧客が自身のリソースを自身のデータセンタからプロバイダネットワークに移動させたい場合は、プロバイダネットワークによりこれらのリソースに新たなIPアドレスがアサインされた。しかしながら、アドレス空間は顧客にとって価値あるものであり得る。例えば、サービスの信頼性または他のパフォーマンスベンチマークは、特定のIPアドレスまたはIPアドレスの範囲に対して計算され得る。さらに、レガシー構成は、適切に実行するために特定のIPアドレスまたはIPアドレス範囲に依存し得る。例えば、IPアドレス範囲は、レガシーワークロードによりホワイトリスト登録され得、よって、ホワイトリスト登録された範囲外のIPアドレスに任意の変更を加えることは、レガシークライアントデバイスの大幅な再構成を要する。アドレス移行を提供することにより、基礎リソースがプロバイダネットワークに移行された後も、これらのサービスはシームレスに同じパフォーマンスベンチマークで作動し続けることができる。
【0007】
ネットワークアドレスがプロバイダネットワークに移行されると、顧客はネットワークアドレスの所有権を保持し得、プロバイダネットワークは、インターネット上のネットワークアドレスのアドバタイズメントを引き継ぎ得る。その後、移行されたアドレス空間は、プロバイダネットワーク内の任意の他のアドレス空間と同様に、顧客が使用することができる。例えば、顧客は、IPv4ネットワークアドレス空間を使用して、パブリックIPの自動アサイン、または静的IPアドレスを手動で割り当てるIP割り当てを行うことができ、IPv6空間のネットワークアドレスは、プライベートネットワークに与えられ得、所与のプライベートネットワークを介してサブネット及びインスタンスまたは他のリソースに与えられ得る。
【0008】
図1は、いくつかの実施形態による、アドレス移行の環境を示す図である。プロバイダネットワーク100は、計算リソース(例えばサーバをプロビジョニングすることなく仮想マシン(VM)インスタンス及び/またはコンテナの実行、バッチジョブの実行、コードの実行)、データ/ストレージリソース(例えばオブジェクトストレージ、ブロックレベルストレージ、データアーカイブストレージ、データベース及びデータベーステーブルなど)、ネットワーク関連リソース(例えば計算リソース、コンテンツ配信ネットワーク(CDN)、ドメインネームサービス(DNS)のグループを含む仮想ネットワークの構成)、アプリケーションリソース(例えばデータベース、アプリケーション構築/配備サービス)、アクセスポリシーまたはルール、識別ポリシーまたはルール、マシンイメージ、ルータ、及び他のデータ処理リソースなど、様々な種類のコンピューティング関連リソースのうちの1つ以上を利用する能力をユーザに提供する。これら及び他のコンピューティングリソースは、計算インスタンスを実行できるハードウェア仮想化サービス、データオブジェクトを格納できるストレージサービスなどのサービスとして、提供され得る。プロバイダネットワーク100のユーザ(または「顧客」)は、顧客アカウントに対応付けられた1つ以上のユーザアカウントを利用し得るが、これらの用語は、使用される文脈に応じて多少同じ意味で使われ得る。ユーザは、例えばアプリケーションプログラミングインターフェース(API)呼び出しの使用による、ウェブサイトまたはアプリケーションとして実施されるコンソールを介するなど、1つ以上のインターフェースを介して、1つ以上の中間ネットワーク106(例えばインターネット)にわたるプロバイダネットワーク100とインタラクトし得る。インターフェース(複数可)は、プロバイダネットワーク100の1つ以上の地域制御プレーン118の一部であり得、または1つ以上の地域制御プレーン118へのフロントエンドとして機能し得、1つ以上の地域制御プレーン118のそれぞれは、より直接的に顧客に提供され得るサービスをサポートし可能にする「バックエンド」サービスを含む。
【0009】
プロバイダネットワーク100は、これら及び他のコンピューティングリソースサービスを提供するために、仮想化技術に依存することが多い。例えば、仮想化技術を使用して、計算インスタンス(例えばゲストオペレーティングシステム(O/S)を使用するVM(ゲストO/Sは、基礎ホストO/Sの上部で作動してもしなくてもよいハイパーバイザを使用してさらに作動する)、VM内で作動してもしなくてもよいコンテナ、基礎ハイパーバイザなしに「ベアメタル」ハードウェア上で実行され得るインスタンス)を制御または利用する能力がユーザに提供され得、1つまたは複数の計算インスタンスは、単一の電子デバイスを使用して実施することができる。従って、ユーザは、プロバイダネットワークがホストする計算インスタンスを直接利用して様々なコンピューティングタスクを実行し得、またはプロバイダネットワークにより実行されるコードを提出することにより間接的に計算インスタンスを利用し得、次にプロバイダネットワークが計算インスタンスを利用してコードを実行する(通常、関与する基礎計算インスタンス(複数可)のいずれの制御または知識もユーザが有することはない)。
【0010】
いくつかの実施形態では、プロバイダネットワーク100は、エリア124A~124Cなどの複数のエリアを含み得る。各エリアは、他のエリアから(及びプロバイダネットワーク100内の示されていない全ての他のエリアから)論理的に分離され得る。例えば、各エリアは、1つ以上の物理データセンタによりサポートされる別個の論理データセンタであり得、各エリアが独自の電源及びネットワークインフラストラクチャを有し、あるエリアでの障害が別のエリアに影響を与える可能性が制限され得る。いくつかの実施形態では、エリア124A~124Cは、プロバイダネットワーク100の同じ一般的場所に配置され得(例えば地域に編成され得)、ここには、同じ地理的エリア(例えば州、国、国の一部など)に配置されたリソースが含まれ得る。プロバイダネットワーク100を様々な地域及びエリアに分割することにより、そこに格納されたデータ及び顧客インスタンスを障害イベントから保護することができる。例えば、第1のエリア124Aにおける障害は、第2のエリア124B内のリソースに影響を与え得ない。同様に、1つの地域における障害は、別の地域に配置されたリソースに影響を与え得ない。
図1に示されるように、地域制御プレーン118は、所与の地域内に配置された複数のエリア124A~124Cを制御し得る。いくつかの実施形態では、各地域は、独自の地域制御プレーンを有し得る。いくつかの実施形態では、プロバイダネットワークの異なるエリアが、独自の制御プレーンを有し得る。しかしながら、いくつかの実施形態では、プロバイダネットワーク100は、より少ない場所を有し得、及び/または地域とエリアとの関係は異なり得ることに留意されたい。例えば、サービスプロバイダは、論理データセンタでのみ、または抽象概念の地域レベルでのみ、サービスを提供し得る。よって、本開示は、エリアでプロバイダネットワークを実施するいずれの特定の方法にも限定されない。
【0011】
いくつかの実施形態では、アドレス空間をプロバイダネットワーク100に移行するために、番号1にて、顧客は、電子デバイス104(複数可)を使用して、地域インターネットレジストリ(RIR)114内の自身のアドレス空間に対応付けられたルートオリジン認可(ROA)が、プロバイダネットワークに対応付けられた識別子を含むように更新する。この更新は、1つ以上の電子コマンドをRIR114に送信することにより実行され得、電子コマンドは、ハイパーテキスト転送プロトコル(HTTP)メッセージまたは他のプロトコルを使用して伝送され得る。いくつかの実施形態では、更新は、更新されたファイルのアップロード、メッセージキューからの1つ以上の更新の読み込み、または他の更新技術により、実行され得る。ROAは、アドレス空間をアドバタイズすることを認可されたサービスプロバイダに対応付けられた自律システム番号(ASN)を含み得る(例えば1つ以上のIPプレフィックス)。さらに、RIRは、アドレス空間の所有者または譲受者を識別するWHOISレコードを保持し得る。WHOISレコードが古い、顧客名が変更したなどの場合には、顧客は、顧客がアドレス空間の所有者または譲受者であることを示すように、WHOISレコードを更新することができる。
【0012】
番号2にて、顧客は、1つ以上のアドレス範囲をプロバイダネットワーク100に移行するように、アドレス移行サービス(「AMS」)102に要求を送信し得る(電子デバイス104を介して)。いくつかの実施形態では、要求は、移行対象の1つ以上のアドレスプレフィックスを含むことができ、任意で各プレフィックスの記述を含み得る。ネットワークアドレス空間(例えばIPv4クラスレスドメイン間ルーティング(CIDR)ブロック(例えば172.31.0.0/20または10.0.0.0/16)、あるいはIPv6CIDRブロック(例えば2600:If16:67d:2000::/56))は、アドレス空間と称され得る。いくつかの実施形態では、顧客は、プロバイダネットワーク100に移行する自身のアドレス空間の1つ以上のサブネット(すなわち顧客が制御するアドレス空間全体より少ない)を指定し得る。例えば、顧客は、移行対象である256個のIPアドレスをサポートするCIDRブロック123.123.0.0./24を選択することができるが、顧客は、より大きなアドレスCIDRブロック(例えば64K個を超えるアドレスを含む123.123.0.0/16)を制御してもよい(またはしなくてもよい)。
【0013】
アドレス空間を移行する要求は、顧客デバイス(例えば電子デバイス104)から、プロバイダネットワーク100内のAMS102にて受信され得る(直接的に、またはアプリケーションプログラミングインターフェース(API)エンドポイント(例えばHTTPまたは同様のウェブサービスコマンドを処理するように構成されたサーバまたはサービスのURL)をホストする制御プレーンエンティティを介して間接的に)。いくつかの実施形態では、要求は、プロバイダネットワーク100のAPIエンドポイントに対する移行開始のAPI要求であり得る。付加的または代替的に、要求は、コンソールまたは他のユーザインターフェースを介して行われ得る。要求は、移行対象の1つ以上のアドレス範囲(例えば移行対象の1つ以上のプレフィックス)を含み得る。任意で、要求は、移行する各範囲の記述を含むことができる。
【0014】
番号3にて、要求が受信されると、AMSは、アドレス空間の所有権を検証し、プロバイダネットワークがアドレス空間のアドバタイズを認可されているか否かを判定し得る。いくつかの実施形態では、認可マネージャ108は、RIR114に対し、アドレス空間に対応付けられたROAを要求し得る。例えば、AMSは、ROAがプロバイダネットワーク100に対応付けられた識別子(例えばASN)を含むか否か、並びに要求者がアドレス空間の所有者及び/または譲受者であることをROA及び/またはWHOISレコードが示すか否かを判定し得る。いくつかの実施形態では、ROAは、暗号化された認可情報を含み得る。暗号化された認可情報は、アドレス空間を移行することを認可されたアドレス空間の所有者(例えば氏名、アカウント、または他の識別子)を識別し得る。いくつかの実施形態では、認可情報を復号化するための鍵は、移行要求で提供され得る(または識別され得る)。別の実施形態では、暗号化された認可情報は、認可マネージャ108が保持するまたはアクセス可能である鍵(例えば公開鍵/秘密鍵ペアの対称鍵または秘密鍵)を使用して復号化可能であり得る。例えば、上記の番号1にて、顧客は、鍵でデータを暗号化し、ROAに暗号化されたデータを配置することができる。次に、番号3にて、AMSは、鍵の複製(対称暗号化が使用される場合)または秘密鍵(非対称暗号化が使用される場合)により、データを復号化することができる。付加的または代替的に、顧客は、自身のアドレス空間に対応付けられたドメインネームサービス(DNS)エントリに、レコードを追加することができる。レコードは、上記で論述された暗号化された認可情報と同様の情報を含み得る。認可マネージャ108は、逆引きDNSを実行してレコードを取得し、レコードを使用して、アカウントがアドレス空間の移行を認可されているか否かを判定し得る。
【0015】
番号4Aにて、アドレス空間の認可及び検証の後、アドレス空間は、プロバイダネットワーク100にプロビジョニングされ得る。示されるように、プロビジョニングマネージャは、アドレス空間に対応する新たなエントリを、アドレスデータテーブル120に追加し得る。エントリはさらに、アドレス空間がプロビジョニングされるプロバイダネットワークの1つ以上のエリアを識別し得る。下記でさらに論述されるように、地域制御プレーン内のルートサーバオーケストレータは、アドレスデータベースからアドレス空間を引き出し、指定された各エリアにプロビジョニングし得る。いくつかの実施形態では、番号4Bに示されるように、プロビジョニングマネージャ110は、プロバイダネットワークとピアリングする1つ以上のトランジットプロバイダに、プロバイダネットワークによるアドレス空間のアドバタイズ意図を通知する。いくつかの実施形態では、このような通知には、アドレス空間がプロバイダネットワークによりアドバタイズされることを示すように、ルーティングアセットデータベース(RADb)または同様のものなどのルーティングレジストリを更新することが含まれ得る。いくつかの実施形態では、トランジットプロバイダ通知は、アドレス空間及びプロバイダネットワーク100によるアドバタイズ意図を示すメッセージが、キャリアに送信されることを含み得る。
【0016】
番号5にて、顧客は、移行のステータスを要求し得る。移行されるアドレス空間に応じて、前述の検証及び通知プロセスには、様々な時間がかかり得る。この間に、顧客デバイス104からAMS102にステータス要求が送信され得る。ステータス要求は、関与するアドレス空間(例えば移行される1つ以上のプレフィックス、または別の識別子、例えば移行のためにプロバイダネットワーク100により生成される一意的な識別子など)を含むまたは識別することができ、移行が完了したか否かを示すステータスメッセージが返され得る。あるいは、別の実施形態では、AMS102は、他の技術、例えば電子メールの送信、データベースまたはデータストアにおけるエントリの更新、ショートメッセージサービス(SMS)メッセージの送信などを使用して、または当業者には既知の別の通知技術を使用して、顧客に移行ステータス(または移行ステータスの変化)を通知することができる。
【0017】
移行が完了すると、顧客は、アドレス空間を配備するエリア(及び/または地域など)を選択することができる。いくつかの実施形態では、エリア(及び/または地域など)は、プロバイダネットワーク100により自動的に選択され得る。アドレス空間が配備されると、アドレス空間は、パブリックアドレスをリソース(例えば計算インスタンス、ロードバランサ、ゲートウェイ、ストレージインスタンス、プライベートネットワークなど)に自動アサインするために使用され得、及び/または顧客により「手動で」特定のパブリックアドレスを特定のリソースなどにアサインするために使用され得る。
【0018】
さらに、移行が完了すると、アドレス空間は、地域制御プレーン118に追加され、アドバタイズされる準備が整う。アドバタイズは、顧客により制御することができ、これにより、顧客は、自身のデータセンタから及びプロバイダネットワーク100からのアドバタイズを調整することが可能となる(例えばプロバイダネットワークからのアドバタイズを開始する前にデータセンタからのアドバタイズを停止する)。この時点で、アドレス空間を使用することができる。例えば、顧客は、アドレス空間のアドレスを使用してリソースを構成し得る。これにより、顧客は、アドバタイズが始まってトラフィックがプロバイダネットワークに向けられた時点に、自身のシステムがすぐに使用できるように、自身のインフラストラクチャを設定することが可能となる。
【0019】
番号6にて、移行が完了すると、アドレス空間をアドバタイズする要求が、顧客デバイス104からAMS102により受信され得る。上記で示されたように、いくつかの実施形態では、顧客が前の場所(例えばデータセンタ)からアドレス空間をアドバタイズすることを中止した(または中止しようとしている)時に、顧客がアドレス空間のアドバタイズを開始する要求を送信して(電子デバイス104を介して)、ルーティング情報の円滑な更新を可能にし、よって、アドレス空間に関わるトラフィックのルーティング問題を防止することが有益である。
【0020】
番号7にて、アドバタイズマネージャ112は、アドレスデータベース120において、移行されたアドレス空間に関する新たなエントリを更新して、アドレス空間をアドバタイズするエリア(及び/または地域など)、及びアドバタイズはそのエリア(及び/または地域)から開始されることを示し得る。番号8にて、地域制御プレーン118は、アドレスデータベース120からCIDRまたはプレフィックスを引き出し、対応するエリア内のルートサーバ及び/またはルータに対し、プロバイダネットワーク内及びインターネットへのアドレス空間のアドバタイズを開始するように命令し得る(例えば境界ゲートウェイプロトコル(BGP)、開放型最短経路優先(OSPF)、ルーティング情報プロトコル(RIP)、中間システム間連携(IS-IS)、拡張型内部ゲートウェイルーティングプロトコル(EIGRP)など、当業者には既知の1つ以上のルーティングプロトコルを使用して)。いくつかの実施形態では、アドレス空間は、配備される前に、プロバイダネットワークによりアドバタイズされ得る。いくつかの実施形態では、データがプロバイダネットワーク100に迅速にルーティングされ、次いでプロバイダネットワークにより好適なリソースに内部的にルーティングされるように、アドバタイズは、複数のエリア/地域から行われ得る。
【0021】
図2A及び
図2Bは、いくつかの実施形態による、アドレス移行の例を示す図である。
図2Aに示されるように、顧客データセンタ200(例えばプライベートデータセンタ、コロケーション施設など)は、様々なサーバ202、204をホストし、これらのサーバにアサインされたアドレスへのルートをアドバタイズし得る。例えば、アドバタイズできる最小のIPプレフィックスは、/24であり、これは一度に少なくとも256個のアドレスをアドバタイズできることを意味する。データセンタは、複数のプレフィックスまたはCIDRをアドバタイズし得る。
図2Aに示される例では、データセンタは、1.1.1.0/24及び1.1.2.0/24をアドバタイズしている。サーバ202には、1.1.1.0/24プレフィックスからIPアドレス1.1.1.1がアサインされ、サーバ204には、1.1.2.0/24プレフィックスからIPアドレス1.1.2.2がアサインされている。結果として、これらのサーバ宛てのトラフィックは、例えばインターネット208を通じて様々なルータ210A~210Cのうちの1つ以上を介して、データセンタ200へルーティングされる。番号1にて、1.1.1.0/24プレフィックスを移行する要求がアドレス移行サービス102に送信され得、要求はデータセンタ200内のデバイスにより発行されているように示されるが、いくつかのシナリオでは、要求は、代替的に、データセンタ200の外部(例えば個人宅、オフィス、プロバイダネットワーク100内など)のデバイスにより発行されてもよい。上記で論述されたように、AMS102は、アドレス空間を検証して、移行を認可することができる。
【0022】
図2Bに示されるように、移行が完了すると、移行されたプレフィックスからのアドレスは、プロバイダネットワーク100内のリソースにアサインされることができる。例えば、顧客により計算インスタンス206が起動された時に、計算インスタンス206にアドレス1.1.1.1がアサインされ得、同じアドレスがサーバ202にアサインされている。いくつかの実施形態では、アドレスは、インスタンスが起動された時に、インスタンスにアサインされ得る。例えば、顧客は、インスタンスにアサインするための特定のアドレスを選択し得る、またはインスタンスにアドレスをアサインするための特定のアドレスプールを選択し得る。いくつかの実施形態では、顧客は、移行されたアドレス空間から、プロバイダネットワークによりアドレスがインスタンスに自動アサインされるように指示し得る。いくつかの実施形態では、アドレスは、移行されたアドレス空間から、顧客に対応付けられたアカウントにアサインされ得、次に、このアドレスを使用して、顧客が所有するリソースへトラフィックが送られ得る。例えば、顧客のアカウントにアサインされたアドレスは、顧客が所有する計算インスタンスへトラフィックを送り得る。この計算インスタンスに障害が生じた場合、トラフィックは、プロバイダネットワーク内の顧客が所有する第2のインスタンスに転送され得る。いくつかの実施形態では、移行されたアドレス空間からアドレスを追加するように、またはインスタンスからアドレスを削除して、移行されたアドレス空間にアドレスを戻すように(例えば別のインスタンスにアサインするために)、インスタンスの構成の詳細は変更され得る。新たなインフラストラクチャがプロバイダネットワーク100内に設定された場合、番号2にて、顧客は(先と同様にデータセンタ200内またはデータセンタ200の外部から)、移行されたプレフィックスをアドバタイズする要求を、AMS102に送信し得る。いくつかの実施形態では、アドバタイズ要求を送信する前に、顧客は、当業者には既知の技術を使用して、データセンタ200が移行されたプレフィックスをアドバタイズすることを停止させ得る。示されるように、顧客は、データセンタ200に、1.1.2.0/24プレフィックスのアドバタイズのみ継続させ得る。アドバタイズ要求がAMS102により受信された後で、プロバイダネットワークは、1.1.1.0/24プレフィックスのアドバタイズを開始し得る。次に、このプレフィックスのルートは、インターネット208内のルータ210A~210Cにより更新され得る。その結果、1.1.2.0/24プレフィックスのアドレスへのインバウンドトラフィックは、引き続きデータセンタ200へルーティングされ得、一方、1.1.1.0/24プレフィックスのアドレスへのインバウンドトラフィックは、今度はプロバイダネットワーク100へルーティングされる。例えば、1.1.1.1宛てのトラフィックは、今度はプロバイダネットワーク100内の計算インスタンス206へルーティングされる。
【0023】
いくつかの実施形態では、顧客は、プロバイダネットワークまたはデータセンタが所与のアドレス空間またはアドレス空間の一部をアドバタイズしているか否かを制御し得る。例えば、顧客は、アドレスをデータセンタ200からネットワーク100へ移行することができる。論述されるように、アドレス空間は移行されてもプロバイダネットワーク100によりアドバタイズされ得ないため、トラフィックを引き続きデータセンタ200へルーティングすることが可能となる。顧客は、プロバイダネットワーク100内のアドレス空間の/24プレフィックス部分をアドバタイズすることを選択しながら、データセンタ200のアドレス空間の別の/24プレフィックス部分をアドバタイズし続けることができる。
【0024】
図3は、いくつかの実施形態による、アドレス移行の環境を示す図である。番号1にて、前述のように、アドレス空間をアドバタイズする要求が受信された後、アドバタイズマネージャ112により、アドレス空間に関する新たなエントリ300がアドレスデータベース120に追加される。エントリは、移行されたアドレス空間及びアドレス空間をアドバタイズするエリア及び/または地域を識別し得る。いくつかの実施形態では、地域制御プレーン118は、ルートサーバオーケストレータ302を含み得る。様々な実施形態では、下記でさらに論述されるように、ルートサーバオーケストレータは、様々なエリアのルートサーバに対するルートの追加及び取り消しを管理し得る。番号2にて、ルートサーバオーケストレータ302は、アドレスデータベースから新たなエントリ300を取得し得る。いくつかの実施形態では、ルートサーバオーケストレータは、新たなエントリがないかアドレスデータベース120を定期的に調べ得る。いくつかの実施形態では、新たなエントリが特定されると、新たなエントリは、アドレスデータベース内の残りのアドレス空間と共に取得され、アドバタイズされ得る。いくつかの実施形態では、プロバイダネットワーク100の各地域及び/またはエリアは、独自のアドレスデータベース120を含み得る。
【0025】
番号3にて、ルートサーバオーケストレータ302は、アドレスデータベース120からデータを読み出し、顧客のためにアドバタイズするアドレス及びアドレスをアドバタイズする場所を特定し得る。上記の例を続けると、ルートサーバオーケストレータ302は、アドレス空間をアドバタイズするエリア124Aのローカルに存在するルートサーバ304に、アドレス空間を送信することを決定し得る。ルートサーバ304は、例えば境界ゲートウェイプロトコル(BGP)接続306を介して、1つ以上のエッジルータ308とピアリングし得る。エリア124Aなどのプロバイダネットワークの所与のエリアは、プロバイダネットワークの基板層に複数のルートサーバを含み得る。ルートサーバオーケストレータ302は、アドレスデータベースからアドレスを読み出し、アドレスをルートサーバ304にプッシュし得る。各ルートサーバ304は、アドレスを自身のルートテーブルに追加し得る。いくつかの実施形態では、ルートサーバオーケストレータ302は、データベース内のアドレス集合全体を取得し、それらをルートサーバ304及びエッジルータ308にプッシュし得る。ルートサーバは、エッジルータ308とピアリングして、ルートサーバオーケストレータ302から受信したアドバタイズ命令に基づいて、アドレス空間をアドバタイズするようにエッジルータに対し動的に命令し得る(例えばBGPまたは別のプロトコルを使用して)。番号4にて、エッジルータ308は、プロバイダネットワーク100内のアドレス空間のアドバタイズを開始し、アドバタイズをインターネットにプッシュし得る。
【0026】
図4は、いくつかの実施形態による、ルートサーバオーケストレータの動作を示す図である。
図4に示されるように、地域制御プレーン118は、ルートサーバオーケストレータ302を含み得る。新たなルートがプロバイダネットワーク100に追加されると、ルートサーバオーケストレータ302は、更新された1つ以上のエントリをアドレスデータベース120から読み出し得る。番号1にて、ルートサーバオーケストレータ302は、新たなアドレス空間を、エリア124A内の第1のルートサーバ402Aにプッシュし得る。次に、ルートサーバオーケストレータ302は、ルートサーバ402A及びエッジルータ308Aから戻るルートを読み出し得る。成功した場合、番号2にて、ルートサーバオーケストレータ302は、更新されたアドレス空間を、そのエリア124A内の残りのルートサーバ402Bにプッシュし得る。次に、ルートサーバ402Bで再度テストされ得る。成功した場合には、番号3にて、新たなアドレス空間が、エリア124B、124Cそれぞれの1つのルートサーバ402C、402Dにプッシュされ得る。これらの新たなルートは、前と同様にテストされ得る。テストが成功した場合には、番号4に示されるように、新たなアドレス空間は、残りのエリア124B、124C内の残りのルートサーバ402E、402Fにプッシュされ得る。前述の実施形態では、アドバタイズするルートを追加するが、同様のプロセスが、アドバタイズしないルートを削除するために実行され得る。様々な実施形態では、新たなアドレス空間は、プロバイダネットワークの同じ地域内の複数のエリアからアドバタイズされ得る。
【0027】
いくつかの実施形態では、テストには、エッジルータ308A~308Cに問い合わせて、それらが新たなアドレス空間をアドバタイズしているか否かを判定することが含まれ得る。例えば、新たなアドレス空間がエリア124Aでアドバタイズされる場合、エリア124Aが新たな空間をアドバタイズしていることを確認するために、エッジルータ308Aに対し問い合わせが行われ得る。いくつかの実施形態では、簡易ネットワーク管理プロトコル(SNMP)または他のネットワークプロトコルを使用して、エッジルータに問い合わせが行われ得る。このテストにより、新たなルートが適切にアドバタイズされていること、及びルートの追加によりエッジルータに障害が発生していないことを確認することが可能となる。
【0028】
ルートが取り消された場合、例えば顧客がAMS102に対しアドレス空間のアドバタイズを停止するように命令した場合、1つのルートサーバのみがアドバタイズの停止を命令されているため(例えばエリア内の他のルートサーバは依然としてエッジルータにアドバタイズするように命令しているため)、このテストでは、ルートが取り消されたことを示し得ない。付加的または代替的に、エッジルータに問い合わせを行って、どのルートサーバがエッジルータにアドバタイズするように命令しているのかを特定することができる。例えば、エッジルータにアクセスしてアドバタイズ状態を取得することができ、及び/またはエッジルータに命令して、そのアドバタイズ状態を別のサーバ、ストレージ場所、または他の問い合わせ場所に出力させることができる。
【0029】
アドレス空間をプロバイダネットワークへ移行しプロビジョニングするための実施形態が、前述された。様々な実施形態では、アドレス空間はまた、同様の方法で、プロビジョニング解除され、プロバイダネットワークから削除され得る。例えば、顧客は、アカウント移行サービスに配備解除要求を送信して、配備された地域からプールを削除し得る。プールのどのアドレスも現在使用されていないことを確認するために1つ以上のチェックが実行され得、その後に、プールは地域から配備解除され得る。同様に、顧客は、プロビジョニング解除移行要求をアカウント移行サービスに送信して、移行されたアドレスをシステムから削除し得る。次に、アドレスデータベース(複数可)、地域制御プレーン、ルートサーバなどを更新するのと同様のプロセスを実行して、プロバイダネットワークからアドレス空間が削除され得る。
【0030】
IPアドレスなどのアドレスは、通常、CIDRによりグループ化されている。しかし、CIDRによるグループ化は、通常、柔軟性がない。例えば、CIDRが原因で、ユーザが5個のアドレスを有することは不可能であり、顧客は2の累乗(例えば4個のアドレス、8個のアドレスなど)に制限される。これにより、無駄なアドレスが生じ得る。従って、アドレスプールが作成され得、これにより、顧客のアドレス空間からのアドレスを任意でグループ化することが可能となる。例えば、アドレスプールは、1つ以上のCIDR、1つ以上の個別アドレス、またはこれらの組み合わせを有し得る。よって、アドレスプールは、アドレス管理リソースとなり、これにより、顧客は自身のアドレス空間を1つ以上のアドレスプールに分割することが可能となり、次に、1つ以上のアドレスプールは、プロバイダネットワーク内のリソースにアサインされ得る。いくつかの実施形態では、アドレス空間が移行されると、アドレス空間はアドレスプールに追加され得る。いくつかの実施形態では、プールが作成され、必要に応じてアドレスプールに対し、アドレスの追加及び削除が行われ得る。これにより、顧客は、アドレスを無駄にすることなく、自身のインフラストラクチャニーズを満たすアドレスグループを定義することが可能となる。
【0031】
図5A及び
図5Bは、いくつかの実施形態による、ディザスタリカバリにおけるアドレス移行の例を示す図である。
図5Aに示されるように、地域制御プレーン118は、アドレス割り当てサービス500を含み得る。いくつかの実施形態では、アドレス割り当てサービス500は、別個の制御プレーンで提供され得る。論述されるように、アドレス空間がプロバイダネットワーク100内に移行されると、アドレスプールは作成され得る。顧客は、プールを場所(例えばプロバイダネットワークの1つ以上のエリア503及び/または地域)にアサインし得、リソースにアドレスをアサインするために使用され得る1つ以上の場所に、プールを配備し得る。例えば、番号1にて、アドレス割り当てサービス500は、顧客デバイス104により発信された、エリア501内にIPプール504A及びエリア502内にIPプール504Bを作成する要求を受信し得る。番号2にて、IPプールがエリア501にアサインされ得、そのエリア内のエッジルータは、IPプールに対応するアドレス空間をアドバタイズするように命令され得る。計算インスタンス506A及び506Bは、エリア501内のIPプール504AからIPアドレスを割り当てられ得る。
【0032】
いくつかの実施形態では、アドレス空間は、プロバイダネットワーク100の複数のエリア及び/または地域にプロビジョニングされ得る。これにより、インフラストラクチャを各地域で作成し、アドレス空間からのアドレスを割り当てることが可能となる。アドレス空間は、プロバイダネットワークの単一の地域から一度にアドバタイズされ得る。しかし、複数の地域にプロビジョニングすることにより、1つの地域に障害が生じた場合、またはアドバタイズを行う地域を変更する必要が別に生じた場合、古い地域でのアドバタイズを停止して、新たな地域でのアドバタイズを開始することができる。ルート更新が伝播されると、トラフィックは、古い地域ではなく新たな地域のインフラストラクチャにルーティングされる。従って、
図5Aに示される例では、リカバリエリア502は、計算インスタンス506A及び506Bと同じIPアドレスを割り当てられた計算インスタンス506C及び506Dを含むインフラストラクチャを有し得る。エリア501がアドレス空間をアドバタイズしているため、割り当てられたIPアドレスへ向かう全てのトラフィックは、計算インスタンス506A及び506Bにルーティングされる。
【0033】
いくつかの実施形態では、各アドレスプール504A、504Bは、プロバイダネットワーク100に移行された1つ以上のアドレス空間からのアドレスの集合を含み得る。次に、アドレスは、アドレスプールから、計算インスタンス506などのリソースに割り当てられ得る。例えば、各プールは、2つの異なる/24プレフィックスなどの不連続のアドレス、または他のアドレス範囲を含み得る。所与のプールは、プロバイダネットワーク100に移行される追加のアドレス空間、またはプロバイダネットワーク100を介して利用可能な追加のアドレス空間もしくは特定のアドレスを含むように、拡張され得る。アドレスは、リソースが作成されるとアドレスプールからリソースに自動的にアサインされ(または静的にもしくは手動でアサインされ)、リソースが削除されるとプールに戻され得る。
【0034】
論述されるように、リカバリエリア502は、エリア内に対応するアドレス空間を設定することにより、ディザスタリカバリのために事前に構成することができる。例えば、リカバリエリア502にアドレス空間がプロビジョニングされると、アドレスがIPプール504Bから計算インスタンス506C及び506Dに割り当てられ得る。これらのアドレスは、計算インスタンス506A及び506Bに割り当てられたアドレスと同一であり得る。しかし、エリア501のみがアドバタイズを行っている場合は、これらのアドレスを使用して、リカバリエリア502にライブ(または本番)トラフィックがルーティングされることはない(ただしいくつかの実施形態では、計算インスタンス506A~506Dに他のプライベートまたはパブリックのネットワークアドレスをアサインすることで、計算インスタンス506A~506Dに構成トラフィックなどを送信することが可能となり得る)。リカバリエリア502を設定することにより、ディザスタリカバリ中にインフラストラクチャを迅速に交換され得る。
図5Aに示されるように、エリア501に障害が発生した場合、AMS102は、エリア501からのアドレス空間のアドバタイズを停止することができ、これは、ユーザからのコマンド(番号3A)に応じて、及び/または障害の検出(番号3B、例えばハートビートの監視、監視サービスにより生成されたアラートの受信などを介する)に応じて行われ得る。番号4にて、AMS102は、
図4に関して前述されたように、エリア501のアドバタイズからアドレス空間へのルートを削除するように、ルートサーバを更新させ得る。いくつかの実施形態では、エリアの障害は自動的に検出され得、アドバタイズは停止され得る。ただし、エリアでの障害に応じて、アドバタイズは障害に起因して停止され得るため、番号4で示されるメッセージ伝送は実行されてもされなくてもよい。
【0035】
図5Bに示されるように、エリア501の障害に続いて、番号5にて、アドレス空間のアドバタイズをエリア501からリカバリエリア502に更新するアドバタイズ要求が、AMS102に送信され得る。
図4に関して前述されたように、番号6にて、アドバタイズが更新され得る。
図5Aに関して上記で示されたように、いくつかの実施形態では、障害が検出された後、任意の番号5における顧客からの要求なしで、アドバタイズは自動的に更新され得る。よって、1つのエリアに障害が発生した場合、アドバタイズが更新され、新たなインフラストラクチャがトラフィックを受信し始め得る。
【0036】
いくつかの実施形態では、アドレス空間がバックアップエリアにプロビジョニングされていない場合、新たなエリアへプロビジョニングを行うために、迅速なプロビジョニングプロセスが実行され得る。例えば、アドレス空間は既にプロバイダネットワーク100に移行されていることから、
図1に関して前述された検証ステップ、認可ステップ、及びキャリア通知ステップは省略され得、アドレス空間は、アドレス空間が配備される新たなバックアップエリア及び/または地域内の地域制御プレーンに追加され得る。
図5A及び
図5Bに関して説明された実施形態は、プロバイダネットワーク100の異なるエリア間のディザスタリカバリを示す。いくつかの実施形態では、前述のプロセスと同様に、リカバリは、顧客センタからプロバイダネットワークに対して実行され得る。
【0037】
図6は、いくつかの実施形態による、移行されたアドレス空間のクロスアカウント使用の環境を示す図である。
図6に示されるように、アドレスプール600は、移行されたアドレス空間から作成され得る。アドレスプールは、プロバイダネットワーク識別子が対応付けられたプロバイダネットワークオブジェクトであり得る。次に、クロスアカウント認証サービス610などの認証サービスは、アクセス制御ルールをアドレスプールに適用して、アドレスがアドレスプールから割り当てられ得る及び/またはアドレスプールに戻され得る方法並びにそれを行う主体を制御し得る。
【0038】
いくつかの実施形態では、アドレスプールは、複数のサブプール602、604に分割され得る。各プールのアドレスは、アクセス制御ポリシーに基づいて、特定のアカウントにより作成されたリソースに割り当てられ得る。例えば、アドレスプール600は、テストサブプール602と本番サブプール604に分割され得る。番号1にて、テストチームを代表するアカウントA612に対応付けられたデバイスは、計算インスタンス606A及び606Bをテストで使用する要求を、ハードウェア仮想化サービス608から行い得る。番号2にて、ハードウェア仮想化サービス608は、要求されたインスタンスを作成し、アドレスプール600に対しアドレスを要求し得る。どのサブプールからアドレスを割り当てるかを決定するために、番号3にて、ハードウェア仮想化サービス608は、クロスアカウント認証サービス610に問い合わせて、アカウントAが所有するリソースにアドレスを割り当てることを認可されたサブプールを特定し得る。同様に、番号4にて、本番チームを代表し得るアカウントBは、ハードウェア仮想化サービス608に対し計算インスタンスを要求し得る。番号5にて、ハードウェア仮想化サービス608は、計算インスタンス606C及び606Dを作成し得る。これらのインスタンスには、クロスアカウント認証サービス610により管理されるアカウントポリシーに基づいて、本番サブプール604からアドレスが割り当てられ得る。このように各サブプールへのアクセスを管理することにより、テストチームメンバーが誤ってリソースを作成し、そのリソースに本番アドレスを割り当てることが防止される。いくつかの実施形態では、アカウントが新たなインスタンスの作成を要求する場合、要求は、インスタンスにアドレスを割り当てるための特定のアドレスプールを指定し得る。クロスアカウント認証サービス610は、アカウントが、要求したプールからアドレスを取得することを認可されているか否かを判定し得る。アカウントが認可されている場合、アドレスを割り当てることができ、アカウントが認可されていない場合、要求は拒否され得る。
【0039】
図7は、いくつかの実施形態による、アドレス移行のための例示的なアプリケーションプログラミングインターフェース(API)700を示す図である。
図7に示されるように、前述のように、様々なAPIが実施され得る。例えば、start-migration(移行開始)702コマンドが呼び出され、前述のアドレス移行プロセスが開始され得る。移行開始コマンドは、1つ以上のアドレスプレフィックスを受信し得、任意で各プリフィックスに関する説明を含み得る。いくつかの実施形態では、移行開始コマンドは、移行されるアドレス空間で作成された新たなアドレスプールに対応するアドレスプール識別子を返し得る。いくつかの実施形態では、移行開始コマンドは、アドレスプールフィールドを含み得る。アドレスプール識別子が提供された場合、移行される新たなアドレス空間は、指定されたアドレスプールに追加され得る。describe-migration-status(移行ステータス記述)704コマンドが呼び出され、前述のように移行のステータスが提供され得る。コマンドは、移行開始を呼び出した後に受信されたプール識別子を受信し得る。いくつかの実施形態では、移行ステータス記述は、プール識別子の代わりに、またはプール識別子に加えて、アドレスプレフィックスを受信し得る。移行が成功したか、失敗したか、または依然保留中であるかを示す応答が返され得る。
【0040】
いくつかの実施形態では、API700はまた、assign-pool-location(プール場所アサイン)706コマンドを含み得、これは、プロバイダネットワーク100の特定の地域及び/またはエリアにアドレスプールをアサインするために使用され得る。コマンドは、プール識別子と、地域またはエリア識別子とを受信し得る。API700はまた、deploy-pool(プール配備)708コマンドを含み得、これは、プールの識別子を受信し、呼び出されると、プールのアサインされた地域にプールが配備されるようにする。API700は、advertise-migration(移行アドバタイズ)710コマンドを含み得、これは、指定されたプールが、そのアサインされた地域でアドバタイズされるようにする。同様に、withdraw-advertising(アドバタイズ取り消し)712コマンドは、指定されたプールが、そのアサインされた地域でもうアドバタイズされないようにし得る。プロバイダネットワーク100に移行されたアドレスを削除するために、deprovision-migration(移行プロビジョン解除)714コマンドは、アドレス空間がプロバイダネットワークから削除される(例えばアドレス空間が追加された全ての地域制御プレーンから削除される)ようにすることができる。
【0041】
いくつかの実施形態では、API700は、undeploy-pool(プール配備解除)716コマンドを含み得、これは、プール識別子を受信して、プールが配備された地域及び/またはエリアからプールを削除することができる。APIはまた、describe-pools(プール記述)718コマンドを含み得、これは、エリア識別子を受信して、指定されたエリア内の各プールのプール詳細(例えばプールサイズ、使用中のアドレスなど)を提供する。APIはまた、allocate-address(アドレス割り当て)720コマンドを含み得、これは、アドレス(例えばランダムアドレス)を割り当てるための特定のプールを割り当てることができ、APIはまた、allocate-address(アドレス割り当て)722コマンドを含み得、これは、所与のプールから割り当てる特定のアドレスを指定することができる。
【0042】
図8は、いくつかの実施形態による、アドレス移行のための方法の動作800を示すフロー図である。動作800(あるいは本明細書で説明される他のプロセス、それらの変形形態及び/または組み合わせ)のうちの一部または全ては、実行可能命令で構成された1つ以上のコンピュータシステムの制御下で実行され、ハードウェアまたはそれらの組み合わせにより、1つ以上のプロセッサ上で集合的に実行されるコード(例えば実行可能命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として実施される。コードは、例えば、1つ以上のプロセッサにより実行可能な命令を含むコンピュータプログラムの形態で、コンピュータ可読記憶媒体に格納される。コンピュータ可読記憶媒体は、非一時的である。いくつかの実施形態では、動作800の1つ以上(または全て)は、他の図のアドレス移行サービス102により実行される。
【0043】
動作800は、ブロック802にて、アドレス空間をプロバイダネットワークに移行する要求を受信することを含み、要求は、少なくとも1つのアドレス範囲を含む。要求は、HTTP GETまたはPOST要求メッセージにより伝送され得、プロバイダネットワークのエンドポイントで受信され得、その後、プロバイダネットワークのエンドポイントは、要求をアドレス移行サービス102に転送し得る。
【0044】
動作800は、ブロック804にて、インターネットレジストリを使用して要求を認可することを含む。いくつかの実施形態では、認可することは、インターネットレジストリからアドレス空間に対応付けられたルートオリジン認可オブジェクトを取得することと、ルートオリジン認可オブジェクトがプロバイダネットワークに対応付けられた識別子を含むことを特定することと、を含み得る。いくつかの実施形態では、要求を認可することはさらに、前述のように、ルートオリジン認可オブジェクトから、及び/またはアドレス空間に対応付けられたDNSエントリの逆引きDNSから取得された認可オブジェクトを使用して、アドレス空間の所有権を確認することを含む。
【0045】
動作800は、ブロック806にて、アドレス空間の少なくとも一部を、プロバイダネットワークの少なくとも1つのエリアにプロビジョニングすることを含む。いくつかの実施形態では、プロビジョニングすることは、プロバイダネットワークの第1のエリアの制御プレーンにアドレス空間を追加することと、プロバイダネットワークの第2のエリアの制御プレーンにアドレス空間を追加することと、を含み得る。
【0046】
動作800は、ブロック808にて、アドレス空間の少なくとも一部をアドバタイズする要求を受信することを含む。要求は、HTTP GETまたはPOST要求メッセージ(あるいは他のメッセージ及び/またはプロトコル)により伝送され得、プロバイダネットワークのエンドポイントで受信され得、その後、プロバイダネットワークのエンドポイントは、要求をアドレス移行サービス102に転送し得る。いくつかの実施形態では、アドレス空間をアドバタイズする要求を受信することはさらに、プロバイダネットワークの第1のエリアからアドレス空間の一部をアドバタイズする要求を受信することと、アドレス空間の部分集合をアドバタイズすることと、を含み得る。動作800は、ブロック810にて、アドレス空間の少なくとも一部をアドバタイズすることを含む。動作800は、ブロック812にて、アドレス空間内の少なくとも1つのアドレスを、プロバイダネットワーク内の少なくとも1つのリソースに割り当てることを含む。
【0047】
いくつかの実施形態では、動作800はさらに、アドレス空間を移行する要求を認証することを含み得、認証することは、ルートオリジン認可オブジェクトの少なくとも一部を復号化して認可オブジェクトを取得することと、アドレス空間に対応付けられたドメインネームサービスエントリから認可オブジェクトを取得することとのうちの少なくとも1つを含む。
【0048】
いくつかの実施形態では、動作800はさらに、アドレス空間を使用して、プロバイダネットワークの第1のエリア内に第1のアドレスプールを作成することと、第1のアドレスプールから複数のネットワークアドレスを、プロバイダネットワークの第1のエリア内の第1の複数のリソースに割り当てることと、アドレス空間を使用して、プロバイダネットワークの第2のエリア内に第2のアドレスプールを作成することと、第2のアドレスプールから複数のネットワークアドレスを、プロバイダネットワークの第2のエリア内の第2の複数のリソースに割り当てることであって、第2の複数のリソースのうちの各リソースは、第1の複数のリソースのうちのリソースに対応し、ネットワークアドレスを共有する、当該割り当てることと、プロバイダネットワークの第1のエリアからアドレス空間をアドバタイズすることと、を含み得る。いくつかの実施形態では、認可データ(例えば認可オブジェクト)は、アドレス空間に対応付けられたDNSエントリ内のレコードからの逆引きDNSで取得され得る。
【0049】
いくつかの実施形態では、動作800はさらに、フェイルオーバイベントを検出することと、プロバイダネットワークの第1のエリアからのアドレス空間のアドバタイズを停止することと、プロバイダネットワークの第2のエリアからアドレス空間をアドバタイズすることと、を含み得る。いくつかの実施形態では、第1のアドレスプールは、複数のサブプールを含み、各サブプールは、アカウントアクセスポリシーに対応付けられており、各サブプールからの割り当ては、クロスアカウント認証サービスにより管理される。
【0050】
いくつかの実施形態では、動作800はさらに、移行ステータス要求を受信することと、アドレス空間のステータスを示す移行ステータス応答を送信することであって、アドレス空間のステータスには、プロビジョニング完了、プロビジョニング中、プロビジョニング解除完了、またはアドバタイズ中のうちの1つが含まれる、当該送信することと、を含み得る。
【0051】
いくつかの実施形態では、動作800は、インターネットプロトコル(IP)空間をプロバイダネットワークに移行する要求を受信することであって、要求は、少なくとも1つのアドレス範囲と、少なくとも1つのアドレス範囲の記述とを含む、当該受信することと、IP空間に対応付けられたIPプール識別子を返すことと、要求を認可するために、IP空間に対応付けられた地域インターネットレジストリに対しルートオリジン認可オブジェクトを要求することと、IPプールをプロバイダネットワークのエリアにアサインする要求を受信することと、IPプールを、プロバイダネットワークのエリア及びプロバイダネットワークの少なくとも1つの二次エリアにプロビジョニングすることと、プロバイダネットワークのエリアからIPプールをアドバタイズする要求を受信することと、プロバイダネットワークのエリアからIPプールをアドバタイズすることと、IPプール内の少なくとも1つのアドレスを、プロバイダネットワーク内の少なくとも1つの計算インスタンスに割り当てることと、を含み得る。
【0052】
いくつかの実施形態では、動作800は、IPプール内の少なくとも1つのアドレスを、プロバイダネットワークの少なくとも1つの二次エリア内の少なくとも1つの第2の計算インスタンスに割り当てることを含み得る。いくつかの実施形態では、動作800は、プロバイダネットワークのエリアからのアドバタイズを停止することと、プロバイダネットワークの少なくとも1つの二次エリアからアドバタイズを行うことと、を含み得る。
【0053】
いくつかの実施形態では、動作800はさらに、アドレス空間を使用してプロバイダネットワークの第1のエリア内にアドレスプールを作成することを含み得て、アドレスプールは複数のサブプールを含み、各サブプールはアカウントアクセスポリシーに対応付けられており、各サブプールからの割り当ては認証サービスにより管理される。
【0054】
図9は、いくつかの実施形態による、例示的なプロバイダネットワーク(または「サービスプロバイダシステム」)環境を示す。プロバイダネットワーク900は、1つ以上の仮想化サービス910を介して顧客にリソース仮想化を提供し得、これにより、顧客は、1つ以上のデータセンタにおけるプロバイダネットワーク(複数可)内のデバイス上で実施される計算リソース及びストレージリソースを含むがこれらに限定されない仮想化リソースのインスタンス912を、購入、レンタル、あるいは取得することが可能となる。ローカルインターネットプロトコル(IP)アドレス916は、リソースインスタンス912に対応付けられ得、ローカルIPアドレスは、プロバイダネットワーク900上のリソースインスタンス912の内部ネットワークアドレスである。いくつかの実施形態では、プロバイダネットワーク900はまた、顧客がプロバイダ900から取得し得るパブリックIPアドレス914及び/またはパブリックIPアドレス範囲(例えばインターネットプロトコルバージョン4(IPv4)またはインターネットプロトコルバージョン6(IPv6)アドレス)を提供し得る。上記で論述されたように、パブリックIPアドレスは、顧客が所有し、プロバイダネットワーク900に移行されたアドレス空間を含み得る。顧客が所有する移行されたアドレス空間は、プロバイダネットワークが所有するアドレス空間に追加され得る。移行されたアドレス空間は、顧客のリソースに割り当てられ、その顧客特有のアドレスプールに割り当て解除され戻され得るが、プロバイダネットワーク所有のアドレス空間は、プロバイダネットワークの様々な顧客が利用できるようにされ得る。
【0055】
従来、プロバイダネットワーク900は、仮想化サービス910を介して、サービスプロバイダの顧客(例えば1つ以上の顧客デバイス952を含む1つ以上の顧客ネットワーク950A~950Cを運用する顧客)が、顧客にアサインされたまたは割り当てられた少なくともいくつかのパブリックIPアドレス914を、顧客にアサインされた特定のリソースインスタンス912に、動的に対応付けることを可能にし得る。上記に論述された様々な実施形態によれば、アドレス空間がプロバイダネットワーク900に移行された後、顧客は同様に、自身のアドレス空間からアドレスを割り当て得る。プロバイダネットワーク900はまた、顧客が、顧客に割り当てられた1つの仮想化コンピューティングリソースインスタンス912に以前マッピングされていたパブリックIPアドレス914を、顧客に同様に割り当てられた別の仮想化コンピューティングリソースインスタンス912に再マッピングすることを可能にし得る。顧客ネットワーク950A~950C(複数可)のオペレータといったサービスプロバイダの顧客は、サービスプロバイダにより提供される仮想化コンピューティングリソースインスタンス912及びパブリックIPアドレス914を使用して、例えば、顧客特有アプリケーションを実施し、インターネットなどの中間ネットワーク940上で顧客アプリケーションを提示し得る。次に、中間ネットワーク940上の別のネットワークエンティティ920は、顧客ネットワーク950A~950C(複数可)により公開された宛先パブリックIPアドレス914へのトラフィックを生成し得、トラフィックは、サービスプロバイダデータセンタへルーティングされ、データセンタにて、ネットワーク基板を介して、宛先パブリックIPアドレス914へ現在マッピングされている仮想化コンピューティングリソースインスタンス912のローカルIPアドレス916へルーティングされる。同様に、仮想化コンピューティングリソースインスタンス912からの応答トラフィックは、ネットワーク基板を介して中間ネットワーク940に戻って、ソースエンティティ920へルーティングされ得る。
【0056】
本明細書で使用されるローカルIPアドレスは、プロバイダネットワーク内の例えばリソースインスタンスの内部すなわち「プライベート」のネットワークアドレスを指す。ローカルIPアドレスは、インターネット技術標準化委員会(IETF)のコメント要求(RFC)1918により確保されたアドレスブロック内及び/またはIETF RFC4193により指定されたアドレス形式のアドレスブロック内に存在し得、プロバイダネットワーク内で変更可能であり得る。プロバイダネットワークの外側から生じるネットワークトラフィックは、ローカルIPアドレスへ直接ルーティングされず、代わりに、トラフィックは、リソースインスタンスのローカルIPアドレスにマッピングされたパブリックIPアドレスを使用する。プロバイダネットワークは、パブリックIPアドレスからローカルIPアドレスへのマッピング、及びその逆方向のマッピングを実行するために、ネットワークアドレス変換(NAT)または同様の機能を提供するネットワークデバイスまたはアプライアンスを含み得る。
【0057】
パブリックIPアドレスは、サービスプロバイダにより、または顧客により、リソースインスタンスにアサインされるインターネット可変ネットワークアドレスである。パブリックIPアドレスにルーティングされたトラフィックは、例えば1:1NATを介して変換され、リソースインスタンスのそれぞれローカルIPアドレスに転送される。
【0058】
いくつかのパブリックIPアドレスは、プロバイダネットワークインフラストラクチャにより、特定のリソースインスタンスにアサインされ得、これらのパブリックIPアドレスは、標準パブリックIPアドレス、または単純に標準IPアドレスと称され得る。いくつかの実施形態では、標準IPアドレスをリソースインスタンスのローカルIPアドレスにマッピングすることは、全てのリソースインスタンスタイプのデフォルトの起動構成である。
【0059】
少なくともいくつかのパブリックIPアドレスは、プロバイダネットワーク900の顧客に割り当てられ得、または顧客により取得され得、次に、顧客は、自身の割り当てられたパブリックIPアドレスを、顧客に割り当てられた特定のリソースインスタンスにアサインし得る。これらのパブリックIPアドレスは、顧客パブリックIPアドレス、または単純に顧客IPアドレスと称され得る。顧客IPアドレスは、標準IPアドレスの事例のようにプロバイダネットワーク900によりリソースインスタンスにアサインされる代わりに、例えばサービスプロバイダにより提供されるAPIを介して、顧客によりリソースインスタンスにアサインされ得る。標準IPアドレスと異なり、顧客IPアドレスは、顧客アカウントに割り当てられ、必要または所望に応じて、それぞれの顧客により他のリソースインスタンスに再マッピングすることができる。顧客IPアドレスは、特定のリソースインスタンスではなく、顧客のアカウントに対応付けられ、顧客がそのIPアドレスを解除することを選択するまで、顧客はそのIPアドレスを制御する。従来の静的IPアドレスと異なり、顧客IPアドレスは、顧客が、顧客のパブリックIPアドレスを、顧客のアカウントに対応付けられた任意のリソースインスタンスに再マッピングすることにより、リソースインスタンスまたはアベイラビリティゾーンの障害をマスクすることを可能にする。顧客IPアドレスは、例えば、顧客が、顧客IPアドレスを代替リソースインスタンスに再マッピングすることにより、顧客のリソースインスタンスまたはソフトウェアの問題に対処することを可能にする。いくつかの実施形態では、顧客IPアドレスは、プロバイダネットワーク900により提供されるアドレス空間、及び/または顧客が所有しプロバイダネットワークに移行されたアドレス空間から、割り当てられ得る。
【0060】
図10は、いくつかの実施形態による、顧客にストレージサービス及びハードウェア仮想化サービスを提供する例示的なプロバイダネットワークのブロック図である。ハードウェア仮想化サービス1020は、多数の計算リソース1024(例えばVMなどの計算インスタンス)を顧客に提供する。計算リソース1024は、例えば、プロバイダネットワーク1000の顧客に(例えば顧客ネットワーク1050を実施する顧客に)レンタルまたはリースされ得る。各計算リソース1024には、1つ以上のローカルIPアドレスが提供され得る。プロバイダネットワーク1000は、計算リソース1024のローカルIPアドレスからパブリックインターネット発信先へ、及びパブリックインターネット発信元から計算リソース1024のローカルIPアドレスへ、パケットをルーティングするように構成され得る。
【0061】
プロバイダネットワーク1000は、例えばローカルネットワーク1056を介して中間ネットワーク1040に接続された顧客ネットワーク1050に、中間ネットワーク1040及びプロバイダネットワーク1000に接続されたハードウェア仮想化サービス1020を介して、仮想コンピューティングシステム1092を実施する能力を提供し得る。いくつかの実施形態では、ハードウェア仮想化サービス1020は、1つ以上のAPI1002、例えばウェブサービスインターフェースを提供し得、これを介して顧客ネットワーク1050は、例えばコンソール1094(例えばウェブベースアプリケーション、スタンドアロンアプリケーション、モバイルアプリケーションなど)により、ハードウェア仮想化サービス1020が提供する機能にアクセスし得る。いくつかの実施形態では、顧客ネットワーク1050の各仮想コンピューティングシステム1092は、プロバイダネットワーク1000において、顧客ネットワーク1050にリース、レンタル、あるいは提供される計算リソース1024に対応し得る。
【0062】
いくつかの実施形態では、前述のように、計算インスタンスなどの新たな計算リソース1024が起動され、ユーザが所有する移行されたアドレス空間からアドレスを割り当てられ得る。顧客は、コンソールまたは他のユーザインターフェースを介して計算インスタンスを起動させ得、インスタンスが属するネットワーク及びサブネットなど、そのインスタンスの詳細を構成し得る。いくつかの実施形態では、顧客は、新しいインスタンスに、移行されたアドレス空間からアドレスを手動でアサインし得る、または新しいインスタンスにアドレスを割り当てるためのプールを指定し得る。例えば、顧客は、インスタンスを構成する時に、自身の移行されたアドレス空間から作成されたプールを選択し得、インスタンスが起動されると、移行されたアドレス空間から(対応するプールを介して)アドレスがインスタンスに割り当てられ得る。
【0063】
仮想コンピューティングシステム1092及び/または別の顧客デバイス1090(例えばコンソール1094を介する)のインスタンスから、顧客は、例えば1つ以上のAPI1002を介して、ストレージ仮想化サービス1010の機能にアクセスして、プロバイダネットワーク1000が提供する仮想データストア1016のストレージリソース1018A~1018Nに対しデータアクセス及びデータ格納を行い得る。いくつかの実施形態では、仮想化データストアゲートウェイ(図示せず)が顧客ネットワーク1050に設けられ得、仮想化データストアゲートウェイは、少なくともあるデータ、例えば頻繁にアクセスされるデータまたは重要データをローカルにキャッシュし得、データの1次ストア(仮想化データストア1016)が維持されるように、1つ以上の通信チャンネルを介してストレージ仮想化サービス1010と通信して、ローカルキャッシュから新たなデータまたは変更されたデータをアップロードし得る。いくつかの実施形態では、ユーザは、仮想コンピューティングシステム1092を介して及び/または別の顧客デバイス1090上で、ローカル仮想化ストレージ1098としてユーザに映る仮想データストア1016のボリュームを、マウントしアクセスし得る。
【0064】
図10に図示されないが、仮想化サービス(複数可)はまた、API1002(複数可)を介してプロバイダネットワーク1000内のリソースインスタンスからもアクセスされ得る。例えば、顧客、アプライアンスサービスプロバイダ、または他のエンティティは、API1002を介してプロバイダネットワーク1000上の各自の仮想ネットワーク内の仮想化サービスにアクセスして、仮想ネットワーク内または別の仮想ネットワーク内の1つ以上のリソースインスタンスの割り当てを要求し得る。
【0065】
例示的システム
いくつかの実施形態では、本明細書で説明されるアドレス移行の技法の一部または全てを実施するシステムは、1つ以上のコンピュータアクセス可能媒体を含む、または1つ以上のコンピュータアクセス可能媒体にアクセスするように構成された汎用コンピュータシステム、例えば
図11に示されるコンピュータシステム1100などを含み得る。示される実施形態では、コンピュータシステム1100は、入力/出力(I/O)インターフェース1130を介してシステムメモリ1120に接続された1つ以上のプロセッサ1110を含む。コンピュータシステム1100はさらに、I/Oインターフェース1130に接続されたネットワークインターフェース1140を含む。
図11は、コンピュータシステム1100を単一のコンピューティングデバイスとして示すが、様々な実施形態では、コンピュータシステム1100は、1つのコンピューティングデバイス、または単一のコンピュータシステム1100として共働するように構成された任意の数のコンピューティングデバイスを含み得る。
【0066】
様々な実施形態では、コンピュータシステム1100は、1つのプロセッサ1110を含むユニプロセッサシステム、またはいくつか(例えば2つ、4つ、8つ、もしくは別の好適な個数)のプロセッサ1110を含むマルチプロセッサシステムであり得る。プロセッサ1110は、命令を実行可能な任意の好適なプロセッサであり得る。例えば、様々な実施形態では、プロセッサ1110は、様々な命令集合アーキテクチャ(ISA)、例えばx86、ARM、PowerPC、SPARC、もしくはMIPS‐ISA、または任意の他の好適なISAなどのうちのいずれかを実施する汎用プロセッサまたは組み込みプロセッサであり得る。マルチプロセッサシステムでは、プロセッサ1110のそれぞれは、通常、必ずしもではないが、同一のISAを実施し得る。
【0067】
システムメモリ1120は、プロセッサ1110(複数可)によりアクセス可能な命令及びデータを格納し得る。様々な実施形態では、システムメモリ1120は、ランダムアクセスメモリ(RAM)、静的RAM(SRAM)、同期式動的RAM(SDRAM)、不揮発性/フラッシュ型メモリ、または任意の他の種類のメモリなど、任意の好適なメモリ技術を使用して実施され得る。示される実施形態では、前述の方法、技術、及びデータなどの1つ以上の所望の機能を実施するプログラム命令及びデータは、システムメモリ1120内にコード1125及びデータ1126として格納されることが示される。
【0068】
一実施形態では、I/Oインターフェース1130は、プロセッサ1110と、システムメモリ1120と、ネットワークインターフェース1140または他の周辺インターフェースを含むデバイス内の任意の周辺デバイスとの間のI/Oトラフィックを調整するように構成され得る。いくつかの実施形態では、I/Oインターフェース1130は、1つの構成要素(例えばシステムメモリ1120)からのデータ信号を、別の構成要素(例えばプロセッサ1110)が使用するのに好適な形式に変換するために、任意の必要なプロトコル変換、タイミング変換、または他のデータ変換を実行し得る。いくつかの実施形態では、I/Oインターフェース1130は、例えば周辺構成要素相互接続(PCI)バス規格または汎用シリアルバス(USB)規格の変形など、様々な種類の周辺バスを介して取り付けられるデバイスのサポートを含み得る。いくつかの実施形態では、I/Oインターフェース1130の機能は、例えばノースブリッジ及びサウスブリッジなどの2つ以上の別個の構成要素に分割されてもよい。また、いくつかの実施形態では、システムメモリ1120へのインターフェースなどのI/Oインターフェース1130の機能の一部または全ては、プロセッサ1110に直接組み込まれてもよい。
【0069】
ネットワークインターフェース1140は、コンピュータシステム1100と、例えば
図1に示される他のコンピュータシステムまたはデバイスなどのネットワーク1150(複数可)に接続された他のデバイス1160との間で、データを交換可能なように構成され得る。様々な実施形態では、ネットワークインターフェース1140は、例えばイーサネット(登録商標)ネットワーク類など、任意の好適な有線または無線の汎用データネットワークを介した通信に対応し得る。さらに、ネットワークインターフェース1140は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの電気通信/電話ネットワークを介した、あるいはストレージエリアネットワーク(SAN)、例えばファイバチャネルSANを介した、あるいは任意の他の好適な種類のネットワーク及び/またはプロトコルを介した通信に対応し得る。
【0070】
いくつかの実施形態では、コンピュータシステム1100は、I/Oインターフェース1130(例えば周辺構成要素相互接続エクスプレス(PCI-E)規格のあるバージョン、またはQuickPath相互接続(QPI)もしくはUltraPath相互接続(UPI)などの別の相互接続を実施するバス)を使用して接続された1つ以上のオフロードカード1170(1つ以上のプロセッサ1175を含み、場合によっては1つ以上のネットワークインターフェース1140を含む)を含む。例えば、いくつかの実施形態では、コンピュータシステム1100は、計算インスタンスをホストするホスト電子デバイス(例えばハードウェア仮想化サービスの一部として作動する)として機能し得、1つ以上のオフロードカード1170は、ホスト電子デバイス上で実行される計算インスタンスを管理し得る仮想化マネージャを実行する。一例として、いくつかの実施形態では、オフロードカード1170(複数可)は、計算インスタンスの一時停止及び/または一時停止解除、計算インスタンスの起動及び/または終了、メモリ転送/コピー動作の実行など、計算インスタンス管理動作を実行し得る。これらの管理動作は、いくつかの実施形態では、コンピュータシステム1100の他のプロセッサ1110A~1110Nが実行するハイパーバイザと協働して(例えばハイパーバイザからの要求に応じて)、オフロードカード1170(複数可)により実行され得る。しかし、いくつかの実施形態では、オフロードカード1170(複数可)により実施される仮想化マネージャは、他のエンティティからの(例えば計算インスタンス自体からの)要求に対応し得、任意の別個のハイパーバイザと協働し得ない(または任意の別個のハイパーバイザにサービス提供し得ない)。
【0071】
いくつかの実施形態では、システムメモリ1120は、前述されたプログラム命令及びデータを格納するように構成されたコンピュータアクセス可能媒体の一実施形態であり得る。しかし、別の実施形態では、プログラム命令及び/またはデータは、異なる種類のコンピュータアクセス可能媒体上で受信、送信、または格納され得る。一般に、コンピュータアクセス可能媒体には、例えばI/Oインターフェース1130を介してコンピュータシステム1100に接続されたディスクまたはDVD/CDといった磁気媒体または光学媒体などの非一時的記憶媒体またはメモリ媒体が含まれ得る。非一時的コンピュータアクセス可能記憶媒体には、RAM(例えばSDRAM、ダブルデータレート(DDR)SDRAM、SRAMなど)、読み出し専用メモリ(ROM)など、コンピュータシステム1100のいくつかの実施形態にシステムメモリ1120または別の種類のメモリとして含まれ得る任意の揮発性または不揮発性媒体も含まれ得る。さらに、コンピュータアクセス可能媒体は、ネットワークインターフェース1140を介して実施され得るようなネットワーク及び/または無線リンクなどの通信媒体を介して伝達される伝送媒体または電気信号、電磁信号、もしくはデジタル信号などの信号を含み得る。
【0072】
上記の説明では、様々な実施形態が説明された。説明目的で、実施形態の完全な理解を提供するために、具体的な構成及び詳細が明らかにされた。しかしながら、実施形態は具体的な詳細を伴わずに実施され得ることは、当業者には明らかであろう。さらに、説明される実施形態を不明瞭にしないために、周知の特徴は省略または簡略化され得る。
【0073】
本明細書では、括弧で囲まれたテキスト及び破線(例えば大きい破線、小さい破線、鎖線、及び点)で囲まれたブロックを使用して、いくつかの実施形態に付加的特徴を追加する任意の動作が説明される。しかしながら、このような表記は、これらが唯一の選択肢または任意の動作であること、及び/または実線で囲まれたブロックは、特定の実施形態では任意ではないことを意味すると、理解されるべきではない。
【0074】
接尾辞文字を有する参照番号(例えば124A~124C、210A~210C、302A~302F、404A、404B、406A~406D、606A~606Dなど)を使用して、様々な実施形態で言及されるエンティティの1つ以上のインスタンスが存在し得こと、複数のインスタンスが存在する場合、それぞれが同一である必要はないが、代わりにいくつかの一般的な特性を共有し得る、または同じように作動し得ることが示され得る。さらに、使用される特定の接尾辞は、特に反対の指示がない限り、特定の数のエンティティが存在することを意味するものではない。従って、同じまたは異なる接尾辞文字を使用する2つのエンティティは、様々な実施形態において同じ数のインスタンスを有しても有さなくてもよい。
【0075】
「一実施形態」、「実施形態」、「例示的な実施形態」などへの言及は、説明される実施形態が特定の特徴、構造、または特性を含み得ることを示すが、あらゆる実施形態が必ずしも特定の特徴、構造、または特性を含むわけではあり得ない。さらに、このような句は、必ずしも同じ実施形態を指すわけではない。さらに、特定の特徴、構造、または特性が実施形態に関連して説明される場合、他の実施形態と関連してこのような特徴、構造、または特性を備えることは、明確に記載されているか否かに関わらず、当業者の知識の範囲内であると考えられる。
【0076】
さらに、前述の様々な実施形態では、特に断りのない限り、「A、B、またはCのうちの少なくとも1つ」という句などの選言的表現は、A、B、またはCのいずれか、あるいはこれらの任意の組み合わせ(例えばA、B、及び/またはC)を意味すると理解されることが意図される。よって、選言的表現は、所与の実施形態に少なくとも1つのA、少なくとも1つのB、または少なくとも1つのCがそれぞれ存在する必要があることを意味する意図はなく、またそのように理解されるべきではない。
【0077】
開示される技術の少なくともいくつかの実施形態は、以下の条項を考慮して説明され得る。
1.プロバイダネットワークのエンドポイントにて、インターネットプロトコル(IP)空間を前記プロバイダネットワークに移行する要求を受信することであって、前記要求は、少なくとも1つのアドレス範囲と、前記少なくとも1つのアドレス範囲の記述とを含む、前記受信することと、
前記IP空間に対応付けられた地域インターネットレジストリからのルートオリジン認可オブジェクトを使用して、前記要求を認可することと、
前記IP空間に対応するIPプールを前記プロバイダネットワークのエリアにアサインする要求を受信することと、
前記IPプールを、前記プロバイダネットワークの前記エリア及び前記プロバイダネットワークの少なくとも1つの二次エリアにプロビジョニングすることと、
前記プロバイダネットワークの前記エリアから前記IPプールをアドバタイズする要求を受信することと、
前記プロバイダネットワークの前記エリアから前記IPプールをアドバタイズすることと、
前記IPプール内の少なくとも1つのアドレスを、前記プロバイダネットワーク内の少なくとも1つの計算インスタンスに割り当てることと、
を含む、コンピュータ実施方法。
【0078】
2.前記IPプール内の前記少なくとも1つのアドレスを、前記プロバイダネットワークの少なくとも1つの二次エリア内の少なくとも1つの第2の計算インスタンスに割り当てること、
をさらに含む、条項1に記載のコンピュータ実施方法。
【0079】
3.前記プロバイダネットワークの前記エリアからのアドバタイズを停止することと、
前記プロバイダネットワークの前記少なくとも1つの二次エリアからアドバタイズを行うことと、
をさらに含む、条項1または2のいずれか1項に記載のコンピュータ実施方法。
【0080】
4.アドレス空間をプロバイダネットワークに移行する要求を受信することであって、前記要求は少なくとも1つのアドレス範囲を含む、前記受信することと、
インターネットレジストリを使用して前記要求を認可することと、
前記アドレス空間の少なくとも一部を、前記プロバイダネットワークの少なくとも1つのエリアにプロビジョニングすることと、
前記アドレス空間の前記少なくとも一部をアドバタイズする要求を受信することと、
前記アドレス空間の前記少なくとも一部をアドバタイズすることと、
前記アドレス空間の前記少なくとも一部の中の少なくとも1つのアドレスを、前記プロバイダネットワーク内の少なくとも1つのリソースに割り当てることと、
を含む、コンピュータ実施方法。
【0081】
5.前記インターネットレジストリを使用して前記要求を認可することは、さらに、
前記インターネットレジストリから、前記アドレス空間に対応付けられたルートオリジン認可オブジェクトを取得することと、
前記ルートオリジン認可オブジェクトが、前記プロバイダネットワークに対応付けられた識別子を含むことを判定することと、
を含む、条項4に記載のコンピュータ実施方法。
【0082】
6.前記アドレス空間を移行する前記要求を認証すること、をさらに含む前記コンピュータ実施方法であって、前記認証することは、
前記ルートオリジン認可オブジェクトの少なくとも一部を復号化して、認可オブジェクトを取得すること、または、
前記アドレス空間に対応付けられたドメインネームサービスエントリから、前記認可オブジェクトを取得すること、
のうちの少なくとも1つを含む、条項5に記載のコンピュータ実施方法。
【0083】
7.前記アドレス空間を前記プロバイダネットワークの少なくとも1つのエリアにプロビジョニングすることは、さらに、
前記アドレス空間を、前記プロバイダネットワークの第1のエリアの制御プレーンに追加することと、
前記アドレス空間を、前記プロバイダネットワークの第2のエリアの制御プレーンに追加することと、
を含む、条項4~6のいずれか1項に記載のコンピュータ実施方法。
【0084】
8.前記アドレス空間を使用して、前記プロバイダネットワークの前記第1のエリア内に第1のアドレスプールを作成することと、
前記第1のアドレスプールから複数のネットワークアドレスを、前記プロバイダネットワークの前記第1のエリア内の第1の複数のリソースに割り当てることと、
前記アドレス空間を使用して、前記プロバイダネットワークの前記第2のエリア内に第2のアドレスプールを作成することと、
前記第2のアドレスプールから前記複数のネットワークアドレスを、前記プロバイダネットワークの前記第2のエリア内の第2の複数のリソースに対応付けることであって、前記第2の複数のリソースのうちの各リソースは、前記第1の複数のリソースのうちのリソースに対応し、ネットワークアドレスを共有する、前記対応付けることと、
前記プロバイダネットワークの前記第1のエリアから前記アドレス空間をアドバタイズすることと、
をさらに含む、条項7に記載のコンピュータ実施方法。
【0085】
9.フェイルオーバイベントを検出することと、
前記プロバイダネットワークの前記第1のエリアからの前記アドレス空間のアドバタイズを停止することと、
前記プロバイダネットワークの前記第2のエリアから前記アドレス空間をアドバタイズすることと、
をさらに含む、条項8に記載のコンピュータ実施方法。
【0086】
10.前記アドレス空間を使用して前記プロバイダネットワークの前記第1のエリア内にアドレスプールを作成することをさらに含み、
前記アドレスプールは複数のサブプールを含み、各サブプールはアカウントアクセスポリシーに対応付けられており、
各サブプールからの割り当ては認証サービスにより管理される、
をさらに含む、条項4~9のいずれか1項に記載のコンピュータ実施方法。
【0087】
11.
前記アドレス空間をアドバタイズする要求を受信することは、さらに、
前記プロバイダネットワークの第1のエリアから前記アドレス空間の一部をアドバタイズする要求を受信することと、
前記アドレス空間の前記一部をアドバタイズすることと、
を含む、条項4~10のいずれか1項に記載のコンピュータ実施方法。
【0088】
12.移行ステータス要求を受信することと、
前記アドレス空間のステータスを示す移行ステータス応答を送信することであって、前記アドレス空間の前記ステータスには、プロビジョニング完了、プロビジョニング中、プロビジョニング解除完了、またはアドバタイズ中のうちの1つが含まれる、前記送信することと、
をさらに含む、条項4~11のいずれか1項に記載のコンピュータ実施方法。
【0089】
13.プロバイダネットワーク内に1つ以上のインスタンスを提供するよう、第1の1つ以上の電子デバイスにより実施されるハードウェア仮想化サービスと、
第2の1つ以上の電子デバイスにより実施される移行サービスと、
を備えるシステムであって、前記移行サービスは命令を含み、前記命令は実行されると、前記移行サービスに、
アドレス空間を前記プロバイダネットワークに移行する要求を受信することであって、前記要求は少なくとも1つのアドレス範囲を含む、前記受信することと、
前記アドレス空間の少なくとも一部を、前記プロバイダネットワークの少なくとも1つのエリアにプロビジョニングすることと、
前記アドレス空間の前記少なくとも一部をアドバタイズする要求を受信することと、
前記アドレス空間の前記少なくとも一部をアドバタイズすることであって、前記アドレス空間内の少なくとも1つのアドレスは、前記プロバイダネットワーク内の前記ハードウェア仮想化サービスにより提供される少なくとも1つのインスタンスに割り当てられる、前記アドバタイズすることと、
を実行させる、前記システム。
【0090】
14.インターネットレジストリを使用して前記要求を認可するための前記命令は、実行されると、前記移行サービスに、さらに、
前記インターネットレジストリから、前記アドレス空間に対応付けられたルートオリジン認可オブジェクトを取得することと、
前記ルートオリジン認可オブジェクトが、前記プロバイダネットワークに対応付けられた識別子を含むことを判定することと、
を実行させる、条項13に記載のシステム。
【0091】
15.前記命令は、実行されると、前記移行サービスに、さらに、
前記アドレス空間を移行する前記要求を認証すること、を実行させ、前記認証することは、
前記ルートオリジン認可オブジェクトの少なくとも一部を復号化して、認可オブジェクトを取得すること、または、
前記アドレス空間に対応付けられたドメインネームサービスエントリから、前記認可オブジェクトを取得すること、
のうちの少なくとも1つを含む、条項14に記載のシステム。
【0092】
16.前記アドレス空間を前記プロバイダネットワークの少なくとも1つのエリアにプロビジョニングするための前記命令は、実行されると、前記移行サービスに、さらに、
前記アドレス空間を、前記プロバイダネットワークの第1のエリアの制御プレーンに追加することと、
前記アドレス空間を、前記プロバイダネットワークの第2のエリアの制御プレーンに追加することと、
を実行させる、条項13~15のいずれか1項に記載のシステム。
【0093】
17.第2の1つ以上の電子デバイスにより実施されるアドレス割り当てサービスを、さらに備える前記システムであって、
前記アドレス割り当てサービスは命令を含み、前記命令は実行されると、前記アドレス割り当てサービスに、
前記アドレス空間を使用して、前記プロバイダネットワークの前記第1のエリア内に第1のアドレスプールを作成することと、
前記第1のアドレスプールから複数のネットワークアドレスを、前記プロバイダネットワークの前記第1のエリア内の第1の複数のインスタンスに割り当てることと、
前記アドレス空間を使用して、前記プロバイダネットワークの前記第2のエリア内に第2のアドレスプールを作成することと、
前記第2のアドレスプールから前記複数のネットワークアドレスを、前記プロバイダネットワークの前記第2のエリア内の第2の複数のインスタンスに対応付けることであって、前記第2の複数のインスタンスのうちの各インスタンスは、前記第1の複数のインスタンスのうちのインスタンスに対応し、ネットワークアドレスを共有する、前記対応付けることと、
前記プロバイダネットワークの前記第1のエリアから前記アドレス空間をアドバタイズすることと、
を実行させる、条項16に記載のシステム。
【0094】
18.前記命令は、実行されると、前記移行サービスに、さらに、
フェイルオーバイベントを検出することと、
前記プロバイダネットワークの前記第1のエリアからの前記アドレス空間のアドバタイズを停止することと、
前記プロバイダネットワークの前記第2のエリアから前記アドレス空間をアドバタイズすることと、
を実行させる、条項17に記載のシステム。
【0095】
19.前記命令は、実行されると、前記移行サービスに、さらに、
前記アドレス空間を使用して前記プロバイダネットワークの前記第1のエリア内にアドレスプールを作成することをさらに含み、
前記第1のアドレスプールは複数のサブプールを含み、各サブプールはアカウントアクセスポリシーに対応付けられており、
各サブプールからの割り当ては認証サービスにより管理される、前記作成すること、
を実行させる、条項13~18のいずれか1項に記載のシステム。
【0096】
20.前記アドレス空間をアドバタイズする要求を受信するための前記命令は、実行されると、前記移行サービスに、さらに、
前記プロバイダネットワークの第1のエリアから前記アドレス空間の一部をアドバタイズする要求を受信することと、
前記アドレス空間の前記一部をアドバタイズすることと、
を実行させる、条項13~18のいずれか1項に記載のシステム。
【0097】
明細書及び図面は、従って、限定的ではなく例示的な意味で考えられるべきである。しかしながら、特許請求の範囲に明記される本開示のより広い趣旨及び範囲から逸脱することなく、明細書及び図面に様々な修正及び変更が行われてもよいことは、明らかである。