特許第5746312号(P5746312)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

特許5746312複製されたデータインスタンスのプロビジョニングおよび管理
<>
  • 特許5746312-複製されたデータインスタンスのプロビジョニングおよび管理 図000002
  • 特許5746312-複製されたデータインスタンスのプロビジョニングおよび管理 図000003
  • 特許5746312-複製されたデータインスタンスのプロビジョニングおよび管理 図000004
  • 特許5746312-複製されたデータインスタンスのプロビジョニングおよび管理 図000005
  • 特許5746312-複製されたデータインスタンスのプロビジョニングおよび管理 図000006
  • 特許5746312-複製されたデータインスタンスのプロビジョニングおよび管理 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5746312
(24)【登録日】2015年5月15日
(45)【発行日】2015年7月8日
(54)【発明の名称】複製されたデータインスタンスのプロビジョニングおよび管理
(51)【国際特許分類】
   G06F 12/00 20060101AFI20150618BHJP
【FI】
   G06F12/00 531D
【請求項の数】13
【全頁数】31
(21)【出願番号】特願2013-262835(P2013-262835)
(22)【出願日】2013年12月19日
(62)【分割の表示】特願2012-536964(P2012-536964)の分割
【原出願日】2010年10月26日
(65)【公開番号】特開2014-53050(P2014-53050A)
(43)【公開日】2014年3月20日
【審査請求日】2013年12月19日
(31)【優先権主張番号】12/606,093
(32)【優先日】2009年10月26日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】グラント アレクサンダー マクドナルド マクアリスター
(72)【発明者】
【氏名】スワミナサン シヴァサブラマニアン
【審査官】 菊池 智紀
(56)【参考文献】
【文献】 特開2006−048676(JP,A)
【文献】 特表2009−522659(JP,A)
【文献】 特開2009−230742(JP,A)
【文献】 特開2006−011874(JP,A)
【文献】 特開2003−330781(JP,A)
【文献】 国際公開第2008/058230(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
複製されたデータベースを生成する、コンピュータ実装された方法であって、
実行可能命令により設定された、1つまたは複数のコンピュータシステムであって、データレポジトリまたはデータストレージを含むデータ環境と、前記データ環境とは別個の制御環境であって、前記データ環境の態様の管理に有用なコンポーネントを含む制御環境とを有するコンピュータシステムの制御下で、
サービスリクエストを前記制御環境に発行することを可能にするインターフェースを提供することであって、各サービスリクエストは、前記データ環境において、データベースに関して実行される特定の動作に対応する、提供することと、
前記インターフェースを通しての、前記複製されたデータベースを生成するための前記サービスリクエストの受信に応答して、
前記複製されたデータベースに対する第1インスタンスレプリカおよび第2インスタンスレプリカが、前記データ環境においてプロビジョンされるようにし、
複製機構により、前記第1インスタンスレプリカの前記複製されたデータベースに対する任意の書込操作を前記第2インスタンスレプリカに適用させ
前記第1インスタンスレプリカを介して前記複製れたデータベースにアクセスすることができるように、前記第1インスタンスレプリカに関連するドメインネームシステム(DNS)名またはネットワークアドレス情報を提供し、
前記第1インスタンスレプリカに関連する前記DNS名または前記ネットワークアドレス情報が、前記第1インスタンスレプリカの障害時に前記第2インスタンスレプリカに関連付けられるようにすることとを含み、
前記第1インスタンスレプリカが、前記データ環境においてプロビジョンされるようにすることは、1つまたは複数のワークフロータスクを含み、前記1つまたは複数のワークフロータスクは、1つまたは複数のブロックストレージボリュームが前記第1インスタンスレプリカに対して割り当てられ、アタッチされるようにすること、前記第1インスタンスレプリカに対するホストマネージャがインストールされ、開始されるようにすること、前記第1インスタンスレプリカに対する前記ブロックストレージボリュームがマウントされるようにすること、前記第1インスタンスレプリカに対するファイルシステムが生成されるようにすること、前記第1インスタンスレプリカに対する1つまたは複数の論理ボリュームが生成されるようにすること、のうちの少なくとも1つを含む、
方法。
【請求項2】
前記第1インスタンスレプリカおよび前記第2インスタンスレプリカが、単一の第1データゾーンにおいて、別個の地理的位置における別個のデータゾーンにおいて、複数の地理的位置にわたる単一の第2データゾーンにおいて、または単一の地理的領域内の複数のデータゾーンにわたり、プロビジョンされる、請求項1に記載の方法。
【請求項3】
前記インターフェースが、前記第1インスタンスレプリカがプロビジョンされる第1の位置、または、前記第2インスタンスレプリカがプロビジョンされる第2の位置のうちの少なくとも1つの位置の指定を有効にする、請求項1に記載の方法。
【請求項4】
前記第1インスタンスレプリカおよび前記第2インスタンスレプリカが、前記データ環境においてプロビジョンされるようにすること、および、前記複製機構により前記第1インスタンスレプリカの前記複製されたデータベースに対する任意の書込操作を前記第2インスタンスレプリカに適用させことはそれぞれ、前記データ環境において1つまたは複数のホストマネージャによって実行される1つまたは複数のホストタスクに対応する、1つまたは複数のワークフロータスクを含む、請求項1に記載の方法。
【請求項5】
前記第1インスタンスレプリカが前記データ環境においてプロビジョンされるようにすることは、1つまたは複数のワークフロータスクを含み、前記1つまたは複数のワークフロータスクは、前記第1インスタンスレプリカがインスタンス化されるようにすること、1つまたは複数のブロックストレージボリュームが前記第1インスタンスレプリカに対して割り当てられ、アタッチされるようにすること、前記複製されたデータベースに対してファイアウォールと同様の機能を実行するセキュリティグループが生成されるようにすること、前記第1インスタンスレプリカに対するホストマネージャがインストールされ、開始されるようにすること、前記第1インスタンスレプリカに対する前記ブロックストレージボリュームがマウントされるようにすること、前記第1インスタンスレプリカに対するファイルシステムが生成されるようにすること、前記第1インスタンスレプリカに対する1つまたは複数の論理ボリュームが生成されるようにすること、前記複製機構が開始されるようにすること、セキュリティ機構が前記ホストマネージャにインストールされるようにすること、前記第1インスタンスレプリカに対するデータベースエンジンがダウンロードされ、インストールされるようにすること、前記第1インスタンスレプリカに対するルートパスワードが更新されるようにすること、ルートユーザが前記第1インスタンスレプリカに対して生成されるようにすること、および、前記インスタンスレプリカを開始することのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項6】
前記第2インスタンスレプリカが前記データ環境においてプロビジョンされるようにすることは、1つまたは複数のワークフロータスクを含み、前記1つまたは複数のワークフロータスクは、前記第2インスタンスレプリカがインスタンス化されるようにすること、前記第1インスタンスレプリカの1つまたは複数の第1ブロックストレージボリュームの1つまたは複数のブロックストレージスナップショットが取得されるようにすること、前記第2インスタンスレプリカのスケール計算が実行されるようにすること、前記第2インスタンスレプリカに対するホストマネージャが開始されるようにすること、前記第2インスタンスレプリカに対する第2ブロックストレージボリュームがマウントされるようにすること、前記第1インスタンスレプリカおよび前記第2インスタンスレプリカが接続されるようにすること、および、前記第2インスタンスレプリカが開始されるようにすることのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項7】
前記インターフェースが、複製されていないデータベースを前記複製されたデータベースに変換することを可能にする、請求項1に記載の方法。
【請求項8】
前記インターフェースが、前記複製されたデータベースに対する複数のデータベースエンジンのうちの1つの指定を有効にする、請求項1に記載の方法。
【請求項9】
前記制御環境において1つまたは複数の監視コンポーネントを使用して、前記第1インスタンスレプリカまたは前記第2インスタンスレプリカの障害を監視すること
をさらに含む、請求項1に記載の方法。
【請求項10】
複製されたデータベースを生成するシステムであって、
プロセッサと、
データレポジトリまたはデータストレージを含むデータ環境と、
前記データ環境とは別個の制御環境であって、前記データ環境の態様の管理に有用なコンポーネントを含む制御環境と、
前記プロセッサにより実行されると、前記プロセッサに
サービスリクエストが、前記制御環境へ受信されることを可能にすることであって、各サービスリクエストが、前記データ環境においてデータベースに関連して実行される動作に対応するように、可能にし、
前記複製されたデータベースに対する第1インスタンスレプリカおよび第2インスタンスレプリカが前記データ環境においてプロビジョンされるにようにし、前記複製されたデータベースを生成する前記サービスリクエストの受信に応答して、複製機構により、前記複製されたデータベースに対して、前記第1インスタンスレプリカの前記複製されたデータベースに対する任意の書込操作を前記第2インスタンスレプリカに適用させ
前記第1インスタンスレプリカに関連するDNS名またはネットワークアドレス情報が、前記第1インスタンスレプリカの障害時に前記第2インスタンスレプリカに関連するようにさせる命令を含むメモリデバイスとを備え、
前記第1インスタンスレプリカが、前記データ環境においてプロビジョンされるようにすることは、1つまたは複数のワークフロータスクを含み、前記1つまたは複数のワークフロータスクは、1つまたは複数のブロックストレージボリュームが前記第1インスタンスレプリカに対して割り当てられ、アタッチされるようにすること、前記第1インスタンスレプリカに対するホストマネージャがインストールされ、開始されるようにすること、前記第1インスタンスレプリカに対する前記ブロックストレージボリュームがマウントされるようにすること、前記第1インスタンスレプリカに対するファイルシステムが生成されるようにすること、前記第1インスタンスレプリカに対する1つまたは複数の論理ボリュームが生成されるようにすること、のうちの少なくとも1つを含む、
システム。
【請求項11】
前記第1インスタンスレプリカおよび前記第2インスタンスレプリカが、単一の第1データゾーンにおいて、別個の地理的位置における別個のデータゾーンにおいて、複数の地理的位置にわたる単一の第2データゾーンにおいて、または単一の地理的領域内の複数のデータゾーンにわたり、プロビジョンされる、請求項10に記載のシステム。
【請求項12】
前記複製されたデータベースを生成するための前記サービスリクエストが、前記第1インスタンスレプリカがプロビジョンされる第1の位置、または、前記第2インスタンスレプリカがプロビジョンされる第2の位置のうちの少なくとも1つを指定する、請求項10に記載のシステム。
【請求項13】
前記複製されたデータベースに対する前記第1インスタンスレプリカおよび前記第2インスタンスレプリカが前記データ環境においてプロビジョンされるようにし、前記複製機構により、前記第1インスタンスレプリカの前記複製されたデータベースに対する任意の書込操作を前記第2インスタンスレプリカに適用させる前記命令は、前記データ環境において1つまたは複数のホストマネージャによって実行される1つまたは複数のホストタスクに対応する、1つまたは複数のワークフロータスクを含む、請求項10に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
増加しつつある数のアプリケーションおよびサービスがインターネット等のネットワーク上で利用可能になるのにしたがい、増加しつつある数のコンテンツ、アプリケーション、および/またはサービスのプロバイダが、クラウドコンピューティング等の技術に目を向けつつある。一般に、クラウドコンピューティングは、ウェブサービス等の様々なサービスを通して電子リソースへのアクセスを提供する手法であり、クラウドコンピューティングにおいては、これらのサービスをサポートするために用いられるハードウェアおよび/またはソフトウェアは、任意の所与の時間におけるサービスの必要性を満たすために、動的にスケーラブルである。ユーザまたは顧客は、クラウドによりリソースにアクセスするにあたり、一般的に、レンタル、リース、または他の方法による支払を行い、そのために、これらのリソースに対するアクセスを提供するハードウェアおよび/またはソフトウェアを購入および維持する必要がない。
【0002】
様々なアプリケーションおよびリソースの態様がクラウドにおいて調節および管理される可能性がある一方で、これらのアプリケーションおよびリソースが依存するデータリポジトリは、顧客または係るユーザにより同様に調節可能または容易に管理可能ではない。
一般的に、プロビジョニング、データストレージのスケーリング等のタスクを実行することは、煩瑣な手作業による手順であり、顧客は、その手順において、データベース管理者(DBA)が設定が有効であるかを判定できるよう、DBAまたは同様のエキスパートユーザに設定情報および要件を提供しなければならない。さらに、顧客が、動的且つ/もしくは自動的に、データベースインスタンスに対するパラメータを調節し、またはデータリポジトリの他の係る態様を管理するための容易な方法はない。多くの場合、データインスタンスはバックアップ機構またはリカバリ機構を所定の位置に有することになるが、これらの機構は単一の位置またはエリアに存在する場合が多く、そのエリアにおける障害または機能停止に影響されやすい。
【0003】
本開示に係る様々な実施形態が、以下の図面を参照して説明される。
【図面の簡単な説明】
【0004】
図1】様々な実施形態を実装することができる環境を示す図である。
図2】様々な実施形態にしたがって用いることができるコントロールプレーンおよびデータプレーンの分離例を示す図である。
図3】1つに実施形態にしたがって用いることができる複数のデータゾーンにわたって複製されたデータインスタンスを実行するための実装例を示す図である。
図4】1つに実施形態にしたがって用いることができる複製されたデータインスタンスを生成するためのプロセス例を示す図である。
図5】1つに実施形態にしたがって用いることができる1次レプリカを生成するためのプロセス例を示す図である。
図6】1つに実施形態にしたがって用いることができる2次レプリカを生成するためのプロセス例を示す図である。
【発明を実施するための形態】
【0005】
本開示の様々な実施形態に係るシステムおよび方法は、電子環境におけるデータストレージの様々な態様を管理するための従来の手法において経験される前述の欠陥および他の欠陥の1つまたは複数を克服する場合がある。特に、様々な実施形態は、ユーザがデータ環境またはコントロールプレーンの様々な態様を管理および/または変更することを可能とするために用いることができる、分離された制御環境またはコントロールプレーンを提供する。この「セルフサービス」機能性は一連のウェブサービスにより提供することができ、それにより、ユーザおよびコントロールプレーンは、仮想的なデータベース管理者(DBA)としてともに機能することが可能となる。ユーザまたは顧客は、例えば、外部から可視である複数のアプリケーションプログラミングインターフェース(API)のうちの1つを通して、リクエストをコントロールプレーンに発行することができる。様々なAPIを、データ環境において、例えば、リレーショナルデータベース等のデータリポジトリに対して特定の機能を実行するために用いることができる。1つのAPIにより受信されたリクエストを解析することにより、データストアまたはデータストレージインスタンスの動作パラメータまたは設定パラメータを調節する動作等の、データプレーンにおいて実行される所望の動作(単数または複数)を判定することができる。ワークフローコンポーネント等のコンポーネントは、動作に対する適切なタスクを決定し、適切な順序でタスクを実行することができる。リレーショナルデータベースの態様を調節する等の、これらのタスクのうちの少なくとも1つが、一般的に、データ環境において実行されるであろう。
【0006】
特定の実施形態によると、係るシステムは、データ環境における複製されたデータインスタンスのプロビジョニングを提供することができる。このプロビジョニングは、1次・2次複製手法を利用することができる。なお、この1次・2次複製手法においては、1つまたは複数の別個のデータゾーン、別個の地理的位置、その他においてまたはわたって1次レプリカおよび2次レプリカの各々がプロビジョンされるものである。データベースレプリカは、それぞれが、複数のレプリカにわたって共有されない専用ブロックストレージボリュームにアタッチされた、別個のデータインスタンス上で実行可能である。
【0007】
様々な実施形態において、複製は、オーストリア国ウィーンのLinbit社のDistributed Replicated Block Device(DRBD(登録商標))または米国ワシントン州シアトルのAmazon.com,Inc.,社により提供されるElastic Block Store(EBS)等のブロックレベル複製機構を用いて実行することができる。これらのブロックレベル複製機構は、ブロックデバイスのコンテンツがサーバ間でミラーされ、冗長システム上でデータの同時複製が可能となる。それぞれのインスタンスは、データインスタンスに対するすべての入出力(I/O)操作を管理するためにインストールされたブロックレベル複製機構カーネルモジュールを有するカーネルを実行することができる。すべての読み出しおよび書き込みは、ブロックレベル複製機構が2次レプリカに情報を同時に複製しながら、1次レプリカにおいて実行することができる。
【0008】
1次レプリカおよび2次レプリカの両方は、外向きDNS名を有する。顧客は、DNS_primary等のDNS名を用いて、現行の1次レプリカに到達することができる。
DNS_primary名は、(現行の)1次レプリカの外部DNS名にエイリアスまたは「cname」することができる。1次レプリカに障害が生じた場合または1次レプリカが他の方法で利用不可能となった場合、2次レプリカが新規1次レプリカに昇格またはフェイルオーバすることができる。それによって、DNS_primaryに対するcnameは、新規1次インスタンスのDNS名に更新することができる。すべての書き込みは現行の1次レプリカ上のデータベースに送られる。1次インスタンスが書き込みを受信すると、その情報は2次レプリカにも同時に書き込まれる。両方の位置において書き込みが成功した場合に、書き込みは成功であるとみなされる。様々な実施形態において、すべての読み出しも1次レプリカにおいてのみ実行される。
【0009】
図1は、様々な実施形態に係る態様を実装する環境100の1例を示す。理解されるであろうように、ウェブに基づく環境が説明のためにここでは用いられているが、様々な実施形態を実装するために、異なる環境が適宜用いられてもよい。図示の環境100は、テストまたは開発部分(側)および生産部分の両方を備える。生産部分は、適切なネットワーク104上でリクエスト、メッセージ、または情報の送受信を実行し、デバイスのユーザに情報を戻すように伝えるために動作可能である任意の適切な装置を含むことができるとができる電子クライアントデバイス102を含む。係るクライアントデバイスの例は、パーソナルコンピュータ、携帯電話、携帯型メッセージ装置、ラップトップコンピュータ、セットトップボックス、携帯情報端末、および電子ブックリーダ等を含む。ネットワークは、イントラネット、インターネット、セルラネットワーク、ローカルエリアネットワーク、または任意の他の係るネットワークまたはこれらの組み合わせを含む任意の適切なネットワークを含むことができる。係るシステムに用いられるコンポーネントは、選択されたネットワークおよび/または環境の種類に少なくとも部分的に依存する。係るネットワークを介して通信するためのプロトコルおよびコンポーネントは周知であり、本明細書では詳細に説明しない。ネットワーク上の通信は、有線接続または無線接続およびこれらの組み合わせにより可能とすることができる。この例においては、この環境が、リクエストを受信しそれに応答してコンテンツをサーブするためにウェブサーバ106を含むため、ネットワークはインターネットを含むが、他のネットワークに対しては、当業者に理解されるように、同様の目的のために機能する代替的なデバイスが用いられる可能性がある。
【0010】
図示的な環境は、少なくとも1つのアプリケーションサーバ108およびデータストア110を含む。チェーン構成されたまたは他の方法で構成され、且つ適切なデータストアからデータを取得する等のタスクを実行するよう相互作用する、いくつかのアプリケーションサーバ、層、もしくは他の要素、プロセス、またはコンポーネントが存在することができることが理解されるべきである。本明細書で用いられる場合「データストア」は、データを記憶、アクセス、および取得する能力を有し、任意の標準型、分散型、またはクラスタ環境において、任意の組み合わせ、かつ任意の個数のデータサーバ、データベース、データ記憶デバイス、およびデータ記憶媒体を含む、任意のデバイスまたはデバイスの組み合わせを指す。アプリケーションサーバは、クライアントデバイスに対して1つまたは複数のアプリケーションの態様を実行するために、アプリケーションに対する大部分のデータアクセスおよびビジネスロジックを処理する、必要に応じてデータストアと統合する任意の適切なハードウェアおよびソフトウェアを含むことができる。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し、テキスト、グラフィック、オーディオ、および/またはビデオ等の、ユーザに転送される、ウェブサーバによりユーザにサーブされるコンテンツを生成することが可能である。なお、これらのコンテンツは、この例では、HTML、XML、または他の適切な構造化言語の形でウェブサーバによりユーザにサーブされてもよい。すべてのリクエストおよび応答の取り扱いならびにクライアントデバイス102およびアプリケーションサーバ108の間のコンテンツの送達は、ウェブサーバにより取り扱うことができる。ウェブサーバおよびアプリケーションサーバは、本明細書の他の箇所において説明されるように、本明細書で検討する構造化されたコードが任意の適切なデバイスまたはホストマシン上で実行可能であるため、不可欠ではなく、単にコンポーネント例であることを理解すべきである。さらに、環境は、ユーザまたはアプリケーションがサブスクライブすることができるサービスとしてテストオートメーションフレームワークが提供されるよう、構成することができる。テストオートメーションフレームワークは、本明細書において説明および示唆されるように、様々な他の実装を用いることもできるが、本明細書で説明する様々なテストパターンのうちの任意の実装として提供することができる。
【0011】
環境は、開発者、データ管理者、またはテスタ等のユーザがシステムにアクセスすることを可能とするユーザデバイス118を備える、開発および/またはテスト側を備えてもよい。ユーザデバイス118は、クライアントデバイス102に関して上述したもののように、任意の適切なデバイスまたはマシンとすることができる。環境は開発サーバ120も含む。なお、この開発サーバ120は、アプリケーションサーバ108と同様に機能すするが、一般的に、コードが製作側において展開および実行される前に開発およびテストの間にコードを実行し、外部ユーザにアクセス可能である。いくつかの実施形態において、アプリケーションサーバは、開発サーバとして機能することができ、分離された生産およびテストストレージは用いられなくてもよい。
【0012】
データストア110は、いくつかの別個のデータテーブル、データベース、または特定の態様に関するデータを記憶する他のデータ記憶機構および媒体を含むことができる。例えば、図示したデータストアは、生産側に対してコンテンツをサーブするために用いることができる、生産データ112およびユーザ情報116を記憶する機構を含む。データストアは、テスト側に対するユーザ情報とともに用いることができる、テストデータ114を記憶する機構も含むことが示される。任意の上述の機構に、適宜またはデータストア110における追加的機構に記憶することができる、ページ画像情報およびアクセス権情報に対する等の、データストアに記憶することができる、他の多数の態様が存在することができることを理解すべきである。データストア110は、これに関連するロジックを通して、アプリケーションサーバ108または開発サーバ120から命令を受信し、それに応答してデータを、取得、更新、または他の方法で処理するようするよう動作可能である。
1つの例において、ユーザは特定の種類の項目に対する検索リクエストを発行してもよい。この場合、データストアはユーザ情報にアクセスすることにより、ユーザの身元を確認してもよく、またカタログ詳細情報にアクセスすることにより当該種類の項目に関する情報を取得することができる。その後この情報は、ユーザデバイス102上のブラウザによりユーザが閲覧可能なウェブページ上にリストされる結果等として、ユーザ返すことができる。対象となる特定項目に関する情報は、ブラウザの専用ページまたはウィンドウにおいて閲覧可能である。
【0013】
各サーバは、一般的に、そのサーバの一般的管理および操作のための実行可能プログラム命令を提供するオペレーティングシステムを含み、一般的に、サーバのプロセッサにより実行されるとサーバがその意図する機能を実行することを可能にする命令を記憶するコンピュータ可読媒体を含むであろう。オペレーティングシステムおよびサーバの一般的機能性に対する適切な実装は、周知または商業的に入手可能であり、特に本明細書の開示に照らし合わせると、当業者により容易に実装される。
【0014】
1つの実施形態における環境は、1つまたは複数のコンピュータネットワークまたは直接接続を用いる通信リンクを介して相互接続されるいくつかのコンピュータシステムおよびコンポーネントを利用する、分散コンピューティング環境である。しかし、係るシステムは、図1に示すコンポーネントよりも少数または多数のコンポーネントを有するシステムにおいても同様に良好に動作可能であることが当業者には理解されるであろう。したがって、図1におけるシステム100の描写は、図示的な性質のものであり、本開示の範囲を限定するものでないことを理解すべきである。
【0015】
図1に示すもののような環境は、電子市場等のプロバイダに対して有用であり、複数のホストが、コンテンツのサーブ、ユーザの認証、決済トランザクションの実行、または多数の他の係るタスクのうちの任意のタスクの実行等の様々なタスクを実行するために用いられてもよい。これらのホストのうちのいくつかは同様の機能性を提供するよう構成されてもよい。一方、他のサーバは、少なくともいくつかの異なる機能を実行するよう構成されてもよい。係る場合における電子環境は、以下で詳細に説明する、図2の構成200に図示されるものなどのような、追加的コンポーネントおよび/または他の機構を含んでもよい。
【0016】
1つの実施形態に係るシステムおよび方法は、リレーショナルデータベースサービス(「RDS」)を提供する。このRDSは、開発者、顧客、または他の正規ユーザが、リレーショナルデータベースおよび他の係るデータソースを、容易且つ高いコスト効率で取得および設定することを可能とし、その結果、ユーザは、クラウド内のリレーショナルデータの組の記憶、処理、および照会等のタスクを実行することができる。この例は、インターネット、ウェブサービス、インターネットベースの技術に関連して説明されるが、様々な実施形態の態様を、電子環境におけるネットワーク上で利用可能または提供される任意の適切なサービスとともに用いることができることを理解すべきである。さらに、サービスは本明細書において「リレーショナルデータベースサービス」を指す一方で、係るサービスを、電子環境において任意の適切な種類のデータリポジトリまたはデータストレージとともに用いることができることを理解すべきである。この例におけるRDSは、少なくとも1つのウェブサービスを含み、そのウェブサービスにより、ユーザまたは顧客は、展開、更新、パッチ管理、バックアップ、複製、フェイルオーバ、容量管理、スケーリング、およびデータ管理の他の係る態様の管理上の複雑さを心配することなく、容易にリレーショナルデータの組を管理することが可能となる。したがって開発者は、データベースのインフラストラクチャを管理する複雑さを心配することなく、高度なクラウドアプリケーションを開発する自由を得ることができる。
【0017】
1つの実施形態におけるRDSは、データストレージの様々な態様の管理に有用なコンポーネント(例えば、ハードウェアおよびソフトウェア)を含む別個の「コントロールプレーン」を提供する。1つの実施形態において、ユーザまたは顧客が、データストレージに関する特定のタスクを実行するように、RDSへのコールを生成することを可能にする1組のデータ管理アプリケーションプログラミングインターフェース(API)または他の係るインターフェースが提供される。しかしながら、ユーザは、データリボジトリと通信するにあたり直接的インターフェースまたはAPIを用いることもでき、データストレージを管理する必要があるときのみ、または同様のタスクを実行する必要があるときにのみ、コントロールプレーンのRDS専用のAPIを用いることができる。
【0018】
図2は、1つに実施形態にしたがって用いることができるRDS実装200の1例を示す図である。この例において、エンドユーザの計算デバイス202は、データプレーン210のデータリポジトリをプロビジョンする等のタスクを実行するコールを、ネットワーク206を通してコントロールプレーン208に発行することが可能であるよう示されている。ユーザまたはアプリケーション204は、データプレーン210のインターフェースを通して、プロビジョンされたリポジトリに直接アクセスすることができる。エンドユーザの計算デバイスおよびアプリケーションが説明目的のために用いられているが、様々な実施形態において、任意の適切なユーザ、アプリケーション、サービス、デバイス、コンポーネント、またはリソースが、コントロールプレーンのインターフェース(単数または複数)および/またはデータプレーンに適宜アクセス可能であることを理解すべきである。さらに、コンポーネントはコントロールプレーンおよびデータプレーンに分割されているが、これは、それぞれの機能性を提供するために用いられる少なくともいくつかのリソース(例えば、ハードウェアおよび/またはソフトウェア)の事実上の分離または仮想的な分離を指すことができることを理解すべきである。
【0019】
この例におけるコントロールプレーン208は、本質的に、プロビジニング、スケーリング、複製、その他等の制御動作および管理動作を取り扱うハードウェアおよびソフトウェアコンポーネントの仮想層である。この実施形態におけるコントロールプレーンはウェブサービス層212またはサービスティアを含み、このウェブサービス層212は、例えば、コンピュータ実行可能ソフトウェア、アプリケーションサーバ、または他の係るコンポーネントとともに、少なくとも1つのウェブサーバを含むことができる。ウェブサービス層は、ネットワーク206上からウェブサービスコールまたはリクエストを受信するための1組のAPI232(または他の係るインターフェース)も含むことができる。各APIは、リレーショナルデータベースのインスタンスのプロビジョンする、スケールする、クローンする、またはハイバネートする等の、データ環境に関して実行される少なくとも1つの特定の動作のためのリクエストを受信するために提供することができる。APIのうちの1つに対するリクエストを受信すると、ウェブサービス層は、リクエストを構文解析または他の方法で解析することにより、コールを実行または処理するために必要なステップまたは動作を判定する。例えば、データリポジトリ生成のリクエストを含むウェブサービスコールが受信される場合がある。この例において、ウェブサービス層はリクエストを構文解析することにより、生成されるデータリポジトリの種類、要求される記憶ボリューム、(必要に応じて)要求されるハードウェアの種類、または他の係る態様を判定することができる。リクエストに関する情報は、後続の処理のために、管理(「Admin」)データストア222、または他の適切な記憶位置もしくはジョブ待ち行列に書き込むことができる。
【0020】
1つの実施形態におけるウェブサービス層はスケーラブルな1組の顧客向きサーバを含む。なお、この顧客向きのサーバは、様々なコントロールプレーンAPIを提供し、API仕様に基づいて適切な応答を返すことができる。ウェブサービス層は少なくとも1つのAPIサービス層も含むことができる。なお、このAPIサービス層ヤは、1つの実施形態においては、ステートレスな、複製されたサーバからなり、これらのステートレスな複製されたサーバは外向きの顧客APIを処理する。ウェブサービス層は、クレデンシャルに基づく顧客の認証、顧客の権限付与、APIサーバに対する顧客のリクエストのスロットル、ユーザ入力の確認、リクエストおよび応答のマーシャルおよびアンマーシャル等のウェブサービスフロントエンド機能を受け持つことができる。API層は、APIコールに応答して、管理データストアへの/管理データストアからの、データベース設定データの読み取り/書き込みを実行することも受け持つことができる。多数の実施形態において、ウェブサービス層および/またはAPIサービス層は、外部から可視である唯一のコンポーネント、すなわち制御サービスの顧客に可視であり且つ制御サービスの顧客によりアクセス可能な唯一のコンポーネントである。ウェブサービス層のサーバは、当該技術分野において既知であるように、ステートレス、かつ水平方向にスケールすることができる。
APIサーバならびに永続的なデータストアは、1つの地理的領域内の複数のデータセンタに、または1つの地理的位置の近傍の複数のデータセンタにわたって分散することができる。それにより、例えば、これらのサーバは、単一のデータセンタの障害に対して回復力に優れる。
【0021】
この実施形態におけるコントロールプレーンは、本明細書において「スイーパー」コンポーネント214と称されるコンポーネントを含む。スイーパーコンポーネントは、顕著なリクエストに応答してコントロールプレーンの様々なコンポーネントをポーリングするよう、すなわち実行される任意のタスクを他の方法で判定するよう動作する、任意の適切なコンポーネントとすることができる。この例においては、ウェブサービス層は、「データベース生成」リクエストに関する命令または情報を管理データストア222または同様のジョブ待ち行列に設置してもよい。次いで、スイーパーは顕著なジョブを求めて管理データストアを周期的に調べることができる。ウェブサービス層がジョブが存在するスイーパーに対して通知を送信する等の、当業者には明らかである様々な他の手法を用いることができる。スイーパーコンポーネントは「データベース生成」リクエストをピックアップし、リクエストに関する情報を用いて、リクエスト、コール、または他の係るコマンドを、リクエストに対する少なくとも1つのワークフローをインスタンス化するよう動作するワークフローコンポーネント216に送信することができる。1つの実施形態におけるワークフローは、本明細書の他の箇所で説明されるように、ワークフローサービスを用いて生成および維持される。一般にワークフローは、特定のジョブを実行するために実行されるべき一連のタスクである。ワークフローは、実際の操作ではなく、操作に関する情報および実行の流れを制御する操作の抽象化である。ワークフローは、実行中の任意の時間において処理状態を管理し、処理状態を返すことができる1つの状態マシンとしてみなすこともできる。1つの実施形態におけるワークフローコンポーネント(またはコンポーネントのシステム)は、リポジトリの生成、変更、ならびに削除、復元ならびにバックアップ、セキュリティグループの生成、削除、ならびに変更、ユーザのクレデンシャルの管理、およびキーローテーションならびにクレデンシャルの管理等のタスクに対するワークフローのホスティングおよび実行を管理および/または実行するよう動作することができる。
係るワークフローは、本明細書の他の箇所で説明されるように、ワークフローサービス上に実装することができる。ワークフローコンポーネントは、MySQL等の異なるデータベースエンジンに対して用いられるワークフローステップの間の差異を管理することもできる。なぜなら、下層のワークフローサービスが必ずしも変化するとは限らないからである。
【0022】
この例において、ワークフローは、データベースを生成しオリジナルのリクエストから抽出された情報を適用するためのワークフローテンプレートを用いて、インスタンス化することができる。例えば、リクエストが、Oracle(登録商標)リレーショナルデータベース管理システム(RDBMS)または他の係るインスタンスではなく、MySQL(登録商標)RDBMSインスタンスに対するものである場合、特定のタスクがMySQLインスタンスに向けられたワークフローに加えられるであろう。ワークフローコンポーネントは、要求される記憶装置の量、任意の特定のハードウェア要件、または他の係るタスクに関する特定のタスクを選択することもできる。これらのタスクは、全般的なジョブに対して有用である実行順序で、ワークフローに加えられることができる。いくつかのタスクが並列的に実行することができるのに対し、他のタスクは、最初に完了することになっている以前のタスクに依存する。ワークフローコンポーネントまたはサービスは、ワークフローにおけるこの情報を含み、タスクは実行され、情報は必要に応じて伝えられることができる。
【0023】
顧客に対する「データベース生成」ワークフロー例は、データ記憶インスタンスのプロビジョニング、オフインスタンス永続的記憶装置のボリュームの割り当て、永続的記憶装置ボリュームのデータ記憶インスタンスへのアタッチ、次いで、DNSアドレスまたは顧客がアクセスまたは他の方法で接続するために用いることができる他のアドレス、ポート、インターフェース、もしくは識別子の、データインスタンスへの割り当てならびにアタッチ等のタスクを含んでもよい。この例において、ユーザには、インスタンスへのアクセスに用いるための、DNSアドレスおよびポートアドレスが提供される。ワークフローは、特定のデータ記憶技術(例えば、MySQL)に対して用いられる任意のバイナリまたは他の情報をダウンロードおよびインストールするタスクも含むことができる。ワークフローコンポーネントは、これらのタスクおよび任意の関連するタスクまたは係るタスクの任意の他の適切な組み合わせの実行を管理することができ、「データベース生成」リクエストに応答して「データベース」の生成を示す応答を、リクエストに対して生成することができる。なお、この「データベース生成」リクエストは実際にデータプレーン210におけるデータ記憶インスタンスに対応し、インスタンスにアクセスするために用いられるDNSアドレスを提供する。次いでユーザは、DNSアドレスおよびポートを用いて、コントロールプレーン208をアクセスまたは経由する必要なしに、直接的にデータ記憶インスタンスにアクセスすることができる。記憶装置を増大させるなどのために、1つまたは複数のデータ記憶インスタンスの削除、生成、または変更等の、同様のジョブを実行するための、様々な他のワークフローテンプレートを用いることができる。いくつかの実施形態においては、ワークフロー情報が記憶装置に書き込まれ、少なくとも1つの別個の実行コンポーネント(図示せず)が、ワークフロー情報に基づいて実行されるタスクを取得する、または他の方法でアクセスもしくは受信する。例えば、プロビジョニングタスクを実行する専用プロビジョニングコンポーネントが存在し、このコンポーネントはワークフローコンポーネントによりコールはされないが、多数の関連する明らかな方法のいずれかで、タスク待ち行列を監視することができる、またはプロビジョニングタスクに関する情報を受信することができる。
【0024】
上述のように、様々な実施形態は、リポジトリのプロビジョニング等の、処理またはタスクの現状に関するリクエストまたはコールを受信すことができ、処理の現状を返すことができるワークフローサービスの利点を利用することができる。ワークフローコンポーネントおよび/またはワークフローサービスは、各タスクを実行する実際のコールまたはリクエストを生成しないが、その代わりにワークフローに関する状態情報および設定情報を管理する。なお、その情報は、コントロールプレーンのコンポーネントが、次に実行するタスクおよびそのタスクに必要な任意の情報を決定することを可能とし、その後、その状態情報を含むデータプレーンへの適切なコール(単数または複数)を生成する。それにより、データプレーンのコンポーネントが、当該のタスクを実行するコールを生成することができる。ワークフローおよびタスクは、処理能力を増し処理リソースを最大化するために、並列的にスケジュールすることができる。上述のように、タスクの実際の実行はデータプレーンで行われるが、タスクはコントロールプレーンから発することになる。例えば、ワークフローコンポーネントはホストマネージャと通信し、ホストマネージャはデータストアへのコールを生成することができる。したがって、所与のタスクに対して、特定のパラメータを伝えるワークフローサービスへのコールが生成されてもよい。それにより、ワークフローサービスはワークフローに関する一連のタスクを生成し、現在の状態に対するタスクを実行することができるように、現状を提供する。タスクが実行された(または、他の方法で解決あるいは完了された)後、ホストマネージャ等のコンポーネントは、サービスに応答することができる。次いで、サービスは、次のタスクを実行することができるように、ワークフローにおける次の状態に関する情報を提供することができる。ワークフローに関するタスクのうちの1つが実行される都度、サービスは、ワークフローが完了するまで、実行されるべき新規のタスクを提供することができる。さらに、ワークフローの処理を加速するために、異なるワークフローに対して複数のスレッドを並列的に実行することができる。
【0025】
この実施形態におけるコントロールプレーン208は、少なくとも1つの監視コンポーネント218も含む。データインスタンスがデータプレーン内で生成されると、インスタンスに関する情報を、監視データストア220等のコントロールプレーン内のデータストアに書き込むことができる。監視データストアが別個のデータストアであってもよく、または、管理データストア222における異なる組のテーブルまたは他の適切なリポジトリ等の、別のデータストアの1部分であってもよいことを理解すべきである。監視コンポーネントは、監視データストア内の情報にアクセスすることができ、データプレーン210内のアクティブなインスタンス234を判定することができる。監視コンポーネントは、ウェブサービス層、ワークフローコンポーネント、スイーパーコンポーネント、および様々なホストマネージャ等の、コントロールプレーンおよび/またはデータプレーンの、複数のコンポーネントからのログ情報および/またはイベント情報の収集等の、他のタスクを実行することもできる。係るイベント情報を用いて、監視コンポーネントは、顧客向きのAPIを実装する等の目的のために、顧客から可視であるイベントを公表することができる。監視コンポーネントは、コントロールプレーンに対する実行中の全リボジトリおよび/またはインスタンスの健康状態を常に監視し、これらのインスタンスのいかなる障害も検出し、適切な復元処理(単数または複数)を開始することができる。
【0026】
データプレーンにおける各インスタンス234は、アクセスを提供するマシンに対して、少なくとも1つのデータストア226およびホストマネージャコンポーネント228を含むことができる。1つの実施形態におけるホストマネージャは、インスタンスおよび/またはソフトウェアの展開およびデータストア動作ならびにデータストアおよび/またはそれぞれのインスタンスの状態の監視等のタスクを管理するようにプログラムされたTomcatまたはJavaアプリケーションサーバ等のアプリケーションサーバ上で実行するアプリケーションまたはソフトウェアエージェントである。1つの実施形態におけるホストマネージャは、内部システムコンポーネントからのみ到達され、且つ顧客または他の外部のエンティティには利用不可能であるポートをリッスンする。いくつかの実施形態において、ホストマネージャは、コントロールプレーン層へのいかなるコールも開始することもできない。ホストマネージャは、論理ボリュームおよびファイルシステムの設定を含む新規リポジトリに対するインスタンスの設定、データベースバイナリおよびデータベースシードのインストール、ならびにリポジトリの開始または停止等の、タスクの管理および/または実行を受け持つことができる。ホストマネージャは、データストアの健康状態を監視すること、および、I/Oエラーまたはデータ記憶エラー等のエラー状況を求めてデータストアを監視することができ、必要に応じてデータストアを再起動することができる。ホストマネージャは、ソフトウェアパッチおよびデータストアおよび/またはオペレーティングシステムの更新のインストールを実行および/または管理することもできる。
ホストマネージャは、CPU、メモリ、I/O仕様に関する場合があるものなどのような、関連するメトリックを収集することもできる。
【0027】
監視コンポーネントは、各ホストの状態を判定するために、特定のリクエストを送信すること、またはホストマネージャからのハートビートを監視すること、等により、監視されたインスタンス234を求めて、各ホストマネージャ228と周期的に通信することができる。1つの実施形態において、監視コンポーネントは、特定のホストおよび/またはインスタンスの状態を取得する等のコマンドを各ホストマネージャに発行するよう構成された、1組のイベントプロセッサ(または監視サーバ)を含む。指定された回数の再試行の後、応答が受信されない場合、監視コンポーネントは、問題が発生したと判定する。そして、管理データストア222または他の係るジョブ待ち行列に情報を記憶することにより、問題を確認し、必要に応じてインスタンスを再プロビジョンするなどのような、インスタンスに対する動作を実行することができる。スイーパーはこの情報にアクセスし、インスタンスに対するリカバリワークフローを開始することにより、障害からの自動的な回復を試みることができる。ホストマネージャ228は、監視のためのプロキシおよびコントロールプレーンの他のコンポーネントとして動作し、コントロールプレーンのコンポーネントに代わって、インスタンスに対するタスクを実行することができる。自動的に解決不可能な、対応するホスト、インスタンス、ボリュームのクラッシュ、再起動、再開、その他等の問題が、インスタンスのうちの1つに関して生じる場合もある。1つの実施形態において、これらの顧客または他の顧客の可視性イベントをログ記録することができるログ記録コンポーネント(図示せず)が存在する。ログ記録コンポーネントは、インスタンスが一定期間利用不可能である場合、顧客が適切な「イベント」をコールするかまたはイベントに関する情報を取得するための同様のAPIをコールすることができるよう、APIまたは他の係るインターフェースを含むことができる。いくつかの場合において、リクエストは、インスタンスが失敗した場合、保留状態のままにおかれてもよい。この実施形態におけるコントロールプレーンは、データプレーンと分離されているため、コントロールプレーンはデータリクエストを受信することは決してなく、したがって、(いくつかの実施形態においては、この情報はコントロールプレーンに転送される可能性があるが)後続の発行のためのリクエストを待ち行列に入れることはできない。したがって、この実施形態におけるコントロールプレーンは、ユーザが必要に応じてリクエストを取り扱うことができるよう、障害に関する情報をユーザに提供する。
【0028】
前述のように、インスタンスがプロビジョンされユーザにDNSアドレスまたは他のアドレスもしくは位置が提供されると、ユーザは、Java Database Connectivity(JDBC)または、そのインスタンス234と直接相互作用するための他の係るクライアントを用いて、ネットワークを介して「直接的」にリクエストをデータプレーン210に送ることができる。1つの実施形態において、データプレーンは、コンピューティングクラウド環境すなわち「クラウド」すなわちハードウェアおよび/またはソフトウェアコンポーネントの動的ネットワーク上でデータ記憶およびアクセスを提供する1組のウェブサービスおよびリソースの形を取る(または、これを含むもしくはこれの1部分である)。DNSアドレスは、係る動的なクラウド環境において有益である。なぜなら、インスタンスまたは可用性の障害は、例えば、DNSアドレスを、使用のために任意の適切な代理インスタンスへと、プログラム的に再マッピングすることにより、隠される可能性があるためである。ユーザ202またはアプリケーション204から受信されたリクエストは、例えば、ネットワークアドレス変換(NAT)ルータ224または他の適切なコンポーネントへと送られ、ついでNATルータ224または他の適切なコンポーネントは、実際のインスタンス234またはリクエストのDNSに相当するホストへと、リクエストを送ることができる。上述のように、係る手法により、ユーザまたはアプリケーションがDNSまたはインスタンスにアクセスするために用いられる他のアドレスを変える必要なしに、インスタンスが、動的に、移動、更新、複製、その他を実行されることが可能となる。上述のように、各インスタンス234は、ホストマネージャ228およびデータストア226を含むことができ、少なくとも1つのバックアップインスタンスまたはコピーを永続的記憶装置230に有することができる。係る手法を用いることにより、インスタンスがコントロールプレーンを通して設定されると、ユーザ、アプリケーション、サービス、またはコンポーネントは、コントロールプレーン232にアクセスする必要なしに、データプレーンへのリクエストを通して直接にインスタンスに相互作用することができる。例えば、ユーザは、インスタンスにおけるデータに関する構造化照会言語(SQL)または他の係るコマンドを、DNSアドレスを通して直接発行することができる。
ユーザが、インスタンスの記憶容量を拡張すること等のタスクの実行を望む場合、ただコントロールプレーンにアクセスのみしなければならないことになる。少なくとも1つの実施形態においては、コントロールプレーン208の機能性は、少なくとも1つのサービスとしてプロバイダにより提供することができ。なお、当該のサービスは、データプレーン210のプロバイダに関連してもよく、または関連しなくてもよいが、単に第3者サービスであってもよい。なお、この第3者サービスは、データプレーンにおけるデータインスタンスをプロビジョンおよび管理するために用いられてもよく、且つ別個のデータプレーン210におけるこれらのインスタンスの可用性を監視および保証することができる。
【0029】
前述のように、コントロールプレーンの機能性をウェブサービスまたは他の係るサービスとして提供することの1つの利点は、コントロールプレーンが仮想的なデータベース管理者(DBA)として機能し、人間のDBAがデータのプロビジョン等のタスクを実行する必要性が回避されることである。データをプロビジョンすることは、現時点においては、煩瑣な手作業による手順であり、DBAが必要な設定情報を受け取り、設定が有効であるかどうかを判定し、インスタンスを最適化またはチューニングし、他の係るタスクを実行することが要求される。これらは、著しい量の時間および労力を必要とするものである。さらに、係る手法は、エラーを生ずる多くの機会を提供し、係るエラーはデータ損失後まで発見されないこともある。本明細書に記載のコントロールプレーンまたはサービスを用いることにより、ユーザまたは顧客は、その代わりに、ハードウェアの種類およびデータベース製品のバージョン等の情報を含むコールを発行することができる。コントロールプレーンまたはサービスは、次いで、データストアまたはデータストレージインスタンスを生成、削除、変更、拡張、または他の方法で変更するために必要なタスクを実行することができる。コントロールプレーンは、DBAがそれぞれのデータベースエンジンに関して熟達する必要なしに、一貫した方法で、いくつかの異なるデータベースエンジンに対応することもできる。一度プロビジョンされると、ユーザはデータインスタンス(単数または複数)に対してネイティブアクセスを有し、既存のアプリケーション(MySQLアプリケーション等)をDNSアドレスまたは特定インスタンスのための他の位置情報に対して、単純にポイントすることができる。照会モデルまたは他の係る機能性に制限または変更はない。なぜなら、ユーザはMySQL、Oracle、または他のデータベース技術上に構築されたアプリケーションを継続して使用することができるためである。
【0030】
様々な実施形態に係るシステムおよび方法により、顧客はウェブサービスまたは同様の係る手法を利用することにより、クラウドコンピューティング環境または同様の環境において1つまたは複数の複製されたデータベースインスタンスを生成することができ、それにより、高い耐久性および高い可用性を有するデータソリューションが提供される。顧客が複製された様々な実施形態におけるデータベースインスタンスを生成すると、顧客データは、1次・2次複製モデルを用いて、同時に複製される。いくつかの実施形態において、レプリカは、異なるデータゾーン等の異なる物理的位置に配置することができる。各データ「ゾーン」は、例えば、特定の地理的エリア内に配置された、異なる地理的位置にまたは地理的位置の周囲に配置された異なるゾーンを有する、1つまたは複数のデータセンタまたはデータサーバ群を指すことができる。かくしてRDSインスタンスは、データゾーンのうちの1つに障害が発生した場合、その障害に対して耐性を有することができる。
なぜなら、異なる地理的位置における他のデータゾーンにおいては、大規模な破局的事象の場合を除いて、その障害が回避される可能性があるためである。いくつかの場合においては、データセンタは複数のデータゾーンにまたがるが、所与のデータゾーン内のデータレプリカは異なるゾーンにおいてインスタンス化することができる。重複するゾーン、複数の地理的位置におけるゾーン、その他等の多数の他の変化例が可能である。1次レプリカに障害が発生するかまたは他の方法で利用不可能となった場合、RDSシステムは、迅速且つ自動的に、2次レプリカにフェイルオーバし、その結果、ダウンタイムすなわちデータ利用不能状態は極めて短くてすむ。
【0031】
1つの実施形態において、顧客は、図2を参照して説明したものなどのようなコントロールプレーンのウェブサービス層の特定されたウェブサービスのインターフェースをコールするにより、複製されたデータベースインスタンスを生成することができる。顧客が複製されていないデータインスタンスを生成するとき、例えば、顧客は、インスタンスクラス、割り当てられたストレージ、データベースエンジン、その他等の態様を指定する「CreateDBInstance」APIをコールすることができる。複製されたインスタンスを生成するとき、顧客は、生成されたインスタンスが複製されるべきであることを示す「true」または任意の他の適切な値に設定された値を有する「Replicated」または同様のパラメータ等の、少なくとも1つの追加的パラメータを含むことができる。いくつかの実施形態において、値は、顧客により特に指定されないかぎり複製されていないインスタンスが生成されるよう、デフォルトで「false」に設定される。いくつかの実施形態において、特定レベルのサービスに対して支払う顧客等の特定の顧客のみが複製されたインスタンスを生成する能力を有する。
【0032】
いくつかの実施形態において、顧客は、2次レプリカが1次レプリカとは異なるデータゾーンにおいて生成されるかどうかを選択することもできる。顧客は、いくつかの実施形態においては、インスタンスに対して1つまたは複数の特定のデータゾーン、または、例えば、順序立てられたリストを選択することを許可することができるが、一方、他の実施形態においては、顧客は少なくとも1次レプリカに対してはデータゾーンを選択できない。例えば、顧客が2つのデータゾーンを指定し、データゾーンのうちの1つが長期間にわたり利用不可能となる場合、いくつかの実施形態においては、耐久性要件により、他のレプリカが第3のデータゾーン等において生成されることとなるであろう。これにより、複数の顧客に対するデータゾーンリストの順序を管理および更新することが要求する可能性もある。このことは、ユーザ経験を複雑なものとするのみで、顕著な利点はまったくもたらさない。さらに、いくつかのアプリケーションフリートが2次レプリカとして同一のデータゾーンに配置されるよう、アプリケーションが関連するアプリケーションフリートを複数のデータゾーンにわたって分散させるほうがより容易となる可能性がある。
【0033】
いくつかの実施形態において、顧客は複製されたデータインスタンスに対して「DescribeDBInstance」または同様のAPIをコールすることができる。それにより、RDSは、1次レプリカのエンドポイントDNS名および1次レプリカが現在は位置されているデータゾーン等の情報をリストすることができる。顧客は、単一のデータゾーンに対して用いられる従来の手法を用いて、RDSインスタンスと通信することができる。なぜなら、RDSインスタンスの状態が例えば「Available」となりエンドポイントDNS名を用いてインスタンスに接続されると直ちに顧客はデータストアのエンドポイントDNS名を受信することができるためである。レプリカの障害の場合、RDSは、データベースを対応する2次レプリカにフェイルオーバすることができ、エンドポイントDNS名は新規の1次レプリカにエイリアスされるであろう。データベースのエンドポイントDNS名は、多くの実施形態において、一定に保たれ、複製されたインスタンスの存続期間の間、変化しない。
【0034】
いくつかの実施形態において、例えば、「true」に設定された複製パラメータを有する「ModifyDBInstance」または同様のAPIをコールすることにより、顧客は複製されていないインスタンスを複製されたインスタンスに変換する能力が提供される可能性がある。これにより、データベースは、次のメンテナンスウィンドウの間、またはリクエストの直後等の適切な時間において、APIコールパラメータ等に依存するよう、複製されたインスタンスに変換することができる。
【0035】
様々な実施形態は、ブロックデバイスのコンテンツをサーバ間でミラーリングするシェアナッシング複製記憶ソリューションを実装するカーネルモジュール等のブロックレベル複製機構を利用する。ブロックレベル複製機構「BLRM」は、ブロックデバイス(すなわち、ハードディスクまたは論理ボリューム)上で動作することができる。ブロックレベル複製機構はプライマリ・スレーブ複製アーキテクチャを利用し、このアーキテクチャにおいては、1次レプリカがすべての更新を下層のブロックデバイスに送る。ブロックデバイスに対するすべての入出力(I/O)リクエストは、すべての書込操作が同時且つ自動的に複製される状態で、BLRMカーネルモジュールにより傍受される。BLRMは、ピアデバイスの固有の障害検出を提供し、ピアノードが到達不可能である場合、適切なリカバリハンドラーを発動させる。BLRMは、1次レプリカにおけるデータアクセスと干渉することなく、一時的に利用不可能となったノードをバックグラウンドでデータの最新版に自動的に再同期することができる。BLRMは、世代識別子(「GI」)を利用することにより、複製されたデータの世代を特定することができる。それにより、BLRMは、2つのノードが同一のレプリカペアのメンバであるかどうか、バックグラウンドの再同期(もし必要である場合)の方向、および部分的なまたは完全な再同期が必要であるかどうか等の態様を判定することができる。BLRMドライバは、レプリカペアの初期化時、切断された待機レプリカが1次レプリカに切替えられるとき、またはプライマリロールのリソースが2次レプリカから切断されるとき等の任意の適切な時間において、新規世代を開始することができる。本明細書においてはブロックレベル複製機構が説明のために1例として用いられているが、任意の他の適切なブロックレベル技術または機構を、様々な実施形態の範囲内で、用いることができることを理解すべきである。
【0036】
前述のように、様々な実施形態におけるRDSデータインスタンスは、1つまたは複数のシステムまたはプラットフォーム上で構築することができる。例えば、インスタンスは、顧客がウェブサービスまたは他の適切な手法を用いることにより様々なオペレーティングシステムでインスタンスを起動することおよびこれらのインスタンスを管理することを可能とする仮想コンピューティング環境上で構築することができる。係る仮想コンピューティング環境を提供するウェブサービスの1つの例は、Amazon.com, Inc.社が提供する、Elastic Compute Cloud(EC2)サービスである。データインスタンスは、インスタンスの存続期間に関わらず永続するオフインスタンスストレージを提供することができるブロックレベルストレージ機構上でも構築することができる。ブロック記憶機構は、インスタンスにアタッチすることができ、かつインスタンス内のデバイスとして公開される可能性がある、ストレージボリュームを提供することができる。ブロック記憶プラットフォームの1例が、2008年8月8日に出願された、「Managing Access of Multiple Executing Programs to a Non−Local Block Data Storage」を発明の名称とする、同時係属中の米国特許出願第12/188,949号において提供され、この米国特許出願第12/188,949号は、参照により本明細書に組み込まれる。論理ボリューム(例えば、LVM層)は、顧客データベースをLVM/ファイルシステム層上で実行することができるように、ブロックストレージボリュームおよび適切なファイルシステムの上に構築することができる。1つの実施形態における複製されたデータベースに対して、BLRMはLVM層上で実行することができる。係る実施形態におけるBLRMは、すべてのI/Oリクエストを傍受し、これらのリクエストを論理ボリュームに送信する。次いで、この論理ボリュームはこれらのリクエストを複数のブロックストレージボリュームにわたって分割することができる。論理ボリュームを用いることにより、複数のブロックストレージEボリュームを取り扱う能力、ならびに、ストレージを容易に拡張する能力、その他が提供される。BLRMをLVM上に層状にすることにより、書込操作を複数のレプリカにわたって複製することも可能となる。
【0037】
図3は、複製されたRDSインスタンスを提供する1次・2次複製モデルを実装する機構300の1例を示す。この例において、1次レプリカ310および2次レプリカ312は、データプレーン308またはデータベース環境の異なるデータゾーン(1および2)に配置される。各レプリカは、 各レプリカに対するブロックストア320および322へのI/Oを管理するためのBLRM層318および322としてここで図示されるブロックストレージ機構上に構築される。図2を参照して説明されたのと同様である場合があるもののようなコントロールプレーン306のコンポーネントは、設定コマンドを、例えば必要なセットアップ操作を実行することができるローカルホストマネージャ314および316に発行することにより、複製されたRDSインスタンスを生成することができる。図面に見られるように、BLRM318および322等のブロックレベル機構は、ブロックデバイスレベルにおいてすべてのI/Oリクエストを傍受し、リクエストに関する情報をローカルディスクおよび遠隔ディスク320および324に書き込むよう、配置される。この例において、データベース318(例えば、SQL)は、1次レプリカ310においてのみ実行され、すべてのクライアント302は、1次レプリカ310で(適切なネットワーク304を介して)、それらのデータベーストランザクションを実行する。データベース318は2次レプリカ312上では実行されず、ファイルシステムも2次レプリカ上にマウントされない。なぜなら、データベースは一般に下層デバイスにおける更新を認識しないからである。
【0038】
各データベースクライアント302は、RDSデータベースDNSエンドポイント名を用いることにより、現在の1次レプリカ自動的に発見することができる。なお、このRDSデータベースDNSエンドポイント名は、1次レプリカ310のホスト名にエイリアスすることができる。DNSを用いて現在の1次レプリカを発見することにより、例えばネイティブなMySQLクライアント、JDBC、PHP、C#、およびHaskell等の既存のデータベースクライアントとの互換性を維持することができる。DNSキャッチングは、潜在的に顧客を古い一時レプリカに接続するように試行させ、顧客は、第2レプリカと接続することにより、第2レプリカではデータベースが実行されていないので、データベースと対話することができないようになる。次いで、顧客は適切なDNS情報を取得することを知ることができる。
【0039】
1つの実施形態に係る、顧客に対する複製されたRDSインスタンスを生成するプロセス400の1例が、図4に示される。本明細書において用語「顧客」は、データの「所有者」、またはRDSシステムによりホストされるデータストアもしくはインスタンスを指すために用いられるが、用語・顧客は単に1つの例であり、任意の適切なユーザまたは開発者は、様々な実施形態において、コントロールプレーンおよびデータプレーンへアクセスすることが許可されていることを理解すべきである。さらに、データ環境の制御に関する実施形態が説明されるが、同様の手法を、制御環境から分離された環境における様々な他のコンポーネント、デバイス、アプリケーション、サービス、または他の係るリソースを制御および/または管理するために用いることができることを理解すべきである。このプロセスのステップが、特定の実施形態に対する例として提示される。しかし、様々な実施形態の範囲内で、追加のステップ、より少ないステップ、および/または代替的なステップを、異なる順序で、および/または並列的にまたは同時に、実行することができることを理解すべきである。
【0040】
この例において、顧客はCreateDBInstanceまたは同様のAPIをコールし(402)、ウェブサービスティアのコンポーネントは、コールを解析し、顧客により供給されたデータベース生成パラメータを管理データストアに記憶させること(404)ができる。データベースのライフサイクルは、データベースを生成するタスクまたはジョブがスイーパーコンポーネントによりピックアップされるように、記録が「PENDING」の変化状態とともに管理データストアに正常にコミットされたとき、「CREATING」等の値により標識される可能性がある。ウェブサービスティアは、動作を起動し、その後ワークフローがタスクを開始したかどうかを確認する、2つの位相のタスクを避けるため、この実施形態においては、ワークフローシステムを直接的にコールすることにより、動作を開始することはない。スイーパーにより取得されるリクエストを単に保存することにより、ワークフロー動作はまったく失われない。
【0041】
前述のように、スイーパーは新規ジョブを求めて管理データストアを周期的にポーリングする。例えば、ライフサイクルとCREATINGおよびPENDINGの変化状態とを有するデータベースレコードが存在すると、スイーパーは「CreateDatabase」または同様のワークフローを起動することができる(406)。ワークフローの初期タスクとして、データベースの変化状態を「APPLYING」等の値に更新することができる。それにより、他のスイーパーは変化が進行中であることを認識する。ワークフローの他の1次タスクは、1次レプリカとして動作するインスタンスを生成すること(408)と、1次レプリカから2次レプリカを生成すること(410)と、2次レプリカを1次レプリカに接続すること(412)とを含む。一度レプリカが接続され利用可能となると、RDSインスタンスは顧客に公開され、DNS名を用いてアクセス可能となる(414)。様々な実施形態において、2次レプリカに対するスケール計算が「舞台裏」で実施され、それにより、2次レプリカは、複製および/またはフェイルオーバのためにレプリカを接続する前に、スケーリングすることができる。
【0042】
図5は、一実施形態にしたがって1次レプリカを生成するために用いることができる係るプロセスの部分500の1例を示す図である。前述のように、ワークフローは、RDSインスタンスを構成するすべてのリソースをプロビジョンする初期ステップを取ることができる。例えば、RDS特有のマシンイメージを用いて、1次ホストに対するデータインスタンスが生成される(502)。ブロックストレージボリュームは、1次ホストに対して割り当てられアタッチすることができる(504)。ボリュームは、個々のボリュームの最大サイズおよびボリュームの望ましい最小個数等の態様を指定する設定情報に少なくとも部分的に基づいてリクエストされる可能性がある。予約済みIOPSが保証される場合、単一のボリュームが用いられる可能性がある。一度コアリソースのそれぞれが利用可能となると、ワークフローは1次レプリカに割り当てられたデータインスタンスにブロックストレージボリュームをアタッチする。
【0043】
いくつかの実施形態において、顧客データベースに対してファイアウォールと同様の機能を実行するセキュリティグループが生成される。セキュリティグループは、顧客がデータベースと通信できる、またはどのデータインスタンスがデータベースと通信できるかを定義することができ、例えば、インターネットプロトコル(IP)アドレス等のアドレスを定義することを可能にすることができる。
【0044】
ワークフローは、ホストマネージャをダウンロードし、チェックサムを確認または他の方法でダウンロードを確証し、次いで、TomcatインストールアプリケーションAPI等の適切なインストールインターフェースをコールすること等により、ホストマネージャがインストールされ開始されること(506)を可能にする。一度ホストマネージャがインストール後に正常に開始されると、データインスタンスは、データベースエンジンをインストールし顧客データベースを設定するのに必要な機能性を有することができる。
【0045】
一度1次レプリカが実行されると、ワークフローは、ホストマネージャにより1次レプリカに対して実行される様々な動作をリクエストすることができる。例えば、ホストマネージャは、ブロックストレージボリュームがマウントされ、ファイルシステムが準備されること(508)をリクエストすることができる。特定の実施形態において、ブロックストレージボリュームのマウントおよびファイルシステムの構築は、2つのロールすなわちバイナリロールおよびデータロールのそれぞれに対して実行される。1つの実施形態において、コントロールプレーンは、マウントポイントと各ロールに対して用いられるボリュームとに関する情報をホストマネージャに提供するストレージ設定ファイル(例えば、XMLファイル)を送信する。この情報を用いて、ホストマネージャは、所与のロールに対してプロビジョンされたすべてのボリュームに対する物理デバイスを生成し、各ロールに対してこれらのデバイスにわたるデータをストライプする論理ボリュームを生成することができる。一度、論理ボリュームが生成されると(510)、ホストマネージャは、それ自体を唯一のレプリカとして、BLRM設定ファイルをインストールし、BLRMカーネルモジュールを開始することにより、BLRM設定情報を生成することができる。一度、BLRMが設定情報を用いて開始されると(512)、BLRMは自動的にデータボリュームに対するすべてのI/Oアクセスを処理することができる。
【0046】
次いで、ワークフローは1次レプリカに対するホストマネージャにパケットマネージャ(例えば、RPM)公開署名鍵、または他のセキュリティ機構をインストールすることができる。次いで、1次レプリカに対するホストマネージャは、データインスタンス上のホストマネージャが、署名された情報をダウンロードおよび確認した後、パッケージの開梱、インストール、および起動すること等により、データベースエンジンをダウンロードおよびインストールすることができる(514)。続いて、1次レプリカに対するホストマネージャは、顧客データベースの基礎として用いられる空白データベースをインストールすることができる。RDS特有の空白データベースを用いて開始することにより、管理のために用いられる許可およびテーブルが容易に適用される。ホストマネージャは、顧客リクエスト内に指定されるように、顧客データベースを生成し、データベースに対するルートパスワードを変更し、マスターデータベースユーザを生成することができる(516)。次いで、ワークフローはデータベース(例えば、MySQL)を開始することができる(518)。
【0047】
データベースが開始されると、BLRMリソースが切断され、ビットマップがクリアされる。ワークフローにより、1次ホストのブロックストレージボリュームに対するスナップショットがキャプチャされ、1次インスタンスのホストマネージャは新規の一般インスタンスを生成するよう命令される可能性がある。次いで、ホストマネージャは、2次ホスト名を有する新規BLRM設定ファイルをインストールするよう命令され、ホストマネージャは設定情報をリロードすることができる。
【0048】
一度少なくともいくつかの上述のワークフロー例のタスクが完了されると、ワークフローは、2次レプリカの構築に関するタスクに移行することができる。図6は、様々な実施形態にしたがって用いることができる少なくとも1つの2次レプリカまたは待機レプリカを生成するためのプロセス例600のステップを示す。第1タスクとして、ブロックストレージボリュームは1次レプリカに対するデータボリュームのブロックストレージスナップショットから生成され(602)、ボリュームをバイナリに対して生成することができる。次いで、ワークフローにより、データインスタンスが起動され、割り当てられたボリュームがアタッチされる(604)。上述のように、スケール計算が、1次レプリカと接続される前に、2次レプリカに対して実行される。次いで、ホストマネージャが、2次レプリカに対して起動される(606)。一度ホストマネージャが2次レプリカに対して実行されると、ワークフローは、2次インスタンスを設定するよう、ホストマネージャをコールすることができる。設定プロセスの間、ホストマネージャはボリュームを設定し(608)、BLRM設定ファイルを適切な1次レプリカおよび2次レプリカ設定を用いてインストールし(610)、BLRMがインストールされたかどうかを判定し、カーネルモジュールを開始し、その後BLRMハンドラを始動することができる(612)。この時点において、1次レプリカおよび2次レプリカは接続され、クリアビットマップコールが発行された時点から同期すべきである。次いで、ワークフローは、管理データストアにおいてデータベースに「Available」と標識することができ、顧客に対してインスタンスを利用可能とすることができる(614)。
【0049】
一度インスタンスに対する1次レプリカおよび2次レプリカが実行され顧客に対して利用可能となると、顧客は、インスタンスに関するいくつかの動作のうちの任意のものを実行することができる。例えば、顧客は、1つまたは複数のデータベースを記述するために、リクエストをウェブサービス層のAPIまたはコマンドラインツールに送ることができる。ウェブサービスは、リクエストにより指定された顧客データベース(単数または複数)の現在状況を求めて管理データストアを照会することにより、リクエストを直ちに実現することができる。ペンディング状態の更新の場合、現在値および変更値は、顧客に表示される可能性がある。
【0050】
いくつかの状況において、顧客は顧客データベースを再起動するために「RebootDBInstance」API等のAPIをコールしてもよい。1つの実施形態においては、このAPIは、顧客がデータベースエンジンを再起動することを可能にするのみで、RDSインスタンスを再起動することを可能にはしない。ウェブサービス層は、情報を管理データストア(または他の係るジョブ待ち行列)に記憶することができる。それにより、スイーパーはワークフローを開始するための情報をピックアップすることができる。ワークフローは、データベースをリスタートするために1次レプリカのホストマネージャをコールすることができる。様々な実施形態におけるこのAPIの実装は、複製されたインスタンスと複製されていないインスタンスとの間で異ならない。
【0051】
顧客は、例えば、APIまたはコマンドラインツールを用いて、顧客データベースを削除するリクエストを送信してもよい。それにより、コントロールプレーンのコンポーネントは、削除を準備するよう命令される可能性がある。クレデンシャルおよびリクエストパラメータを確認した後、ウェブサービスティアのコンポーネントは、例えば、顧客データベースを、ライフサイクルが生成または削除状態にないなどのような現時点において削除することができることを確認することができる。コンポーネントは、管理データストアにおける顧客データベースに対する適切な記録を、削除のライフサイクル状態およびペンディングの変化状態へと更新することもできる。完了されるべきタスクを求めて周期的にポーリングを行うワークフロースイーパーは、ペンディングの変化状態により、データベースが削除されるべきことを識別することができ、削除を完了するために、ワークフローインスタンスを起動することができる。ワークフローの第1動作またはタスクは、他のスイーパーが、変化が進行中であることを認識するよう、データベースの変化状態をAPPLYINGに更新することができる。
【0052】
ワークフローインスタンスは、任意の残余のイベントログを取得し、1次レプリカおよび2次レプリカに対して割り当てられたリソースを開放することができる。例えば、ワークフローは、RDSイベントプロセッサに、RDSインスタンスからイベントを取得させ、次いで、データベースを停止させ、1次レプリカにおけるファイルシステムをアンマウントする。ワークフローは、最終スナップショットが顧客によりリクエストされる場合、またはポリシーにより別段の指示がある場合、データベースのスナップショットが取得されるように導く。インスタンスは、RDSイベントプロセッサAPIをコールして、イベントプロセッサシステムがインスタンスを以後確実に監視しないようにすることにより、登録が取り消される。DNS名を削除し、ブロックストレージボリュームおよびデータインスタンスを開放することができる。ワークフローは、管理データストアにおけるこの顧客データベースに対する記録をDELETED状態へと更新することにより、削除を完了することができる。それにより、記録は記録アーカイブに移動され削除される。
【0053】
顧客がストレージをスケーリングし、および/またはインスタンスに割り当てられた容量を計算することが必要である、または望ましい可能性もある。ストレージをスケーリングする場合、例えば、ボリュームは、LVMが拡張された状態で、1次レプリカおよび2次レプリカの両方に加えることができる。1次レプリカ上で、BLRMハンドラがブロックデバイスの制御下で新規ボリュームを含むためにブロックデバイスを拡張するようコールすることができ、ファイルシステムはリサイズすることができる。
【0054】
特に、新規ブロックストレージボリューム(単数または複数)は、1次レプリカおよび2次レプリカの両方に対して、現在のボリューム設定パラメータにしたがってプロビジョンすることができる。「ScaleStorage」または同様のAPIを両方のインスタンス上のホストマネージャに対して発動することができ、それが、物理デバイスが生成させ、新規ボリュームを既存のボリュームグループに加えさせることができる。ホストマネージャは、例えば、LVMの物理的範囲を1つの物理的ボリューム(例えば、ブロックストレージボリューム)から別の物理的ボリュームへと移動させることによるなどのようにして、ボリュームグループ内のスペースのバランスを回復することができる。論理ボリュームは、新規スペースを含むよう拡張されてもよい。一度ScaleStorage機能が完了すると、ワークフローは、1次インターフェース上のホストマネージャに対して「primaryScaleStorage」API等のインターフェースをコールすることができる。それにより、BLRMブロックデバイス層は、新規スペースを使用するよう拡張される。一度BLRMのリサイズが完了すると、ファイルシステムはリサイズすることができる。残存する更新がもはや存在しなくなると、管理データストアにおける顧客データベースに対する記録は、「AVAILABLE」のライフサイクル状態に設定することができ、変化状態が「NONE」に更新される。次いで、リサイズされたインスタンスは、顧客により利用することができる。1次レプリカまたは2次レプリカが、スケーリングプロセスの間に到達不可能である場合、ワークフローは中断されて、例えば、「MODIFYING」の状態に保たれる可能性があり、後でリトライすることができる。
【0055】
計算能力をスケーリングするとき、様々な実施形態は、各クラスに特定の計算能力が割り当てられるよう、顧客がインスタンスに対する「計算クラス」を調節することを可能にする。特定の実施形態においては、2次レプリカが最初にスケーリングされ、次いで、システムは、例えば、フェイルオーバプロセスを用いること等により、2次レプリカに切替えられる。それにより、2次レプリカは新規の1次レプリカとなる。次いで、旧1次レプリカの計算odeは必要に応じてスケーリングすることができ、旧1次レプリカは新規2次レプリカとして機能することができる。2次レプリカを最初にスケーリングし、フェイルオーバをステージングすることにより、例えば、複製されたインスタンスはより短いダウンタイムを経験することができる。これは、単一のデータゾーンにおいてインスタンスクラスをスケールする場合に、別法により生じる場合がある。
【0056】
以下の記載は、データベースインスタンスをスケーリングするためのプロセスの特定の例を提供する。なお、この例においては、複製されたインスタンスが1次レプリカPおよび2次レプリカSを有する。新規インスタンスクラスを有し、かつ既存のインスタンスと同一のセキュリティグループを有する新規インスタンス(例えばP_newおよびS_new)を1次レプリカおよび2次レプリカの両方に対してプロビジョンすることができる。
P_newおよびS_newは、それぞれ、PおよびSと同一のデータゾーンに生成することができる。管理データストアにおけるRDSインスタンスの状態は、「IN_MODIFICATION」等の値に更新することができる。インスタンス識別子は、ワークフローによりスケーリングのためにデータベースが停止されるとき、1次レプリカおよび/または2次レプリカの回復がトリガされないよう、イベントプロセッサから登録を取り消すことができる。2次インスタンスの状態は、「IN_MODIFICATION」等の値に更新することができる。2次レプリカ上において、ホストマネージャは、例えば、データベースを停止し、(例えば、BLRM切断コマンドを発行することにより)1次インスタンスから切断し、すべてのファイルシステムをアンマウントし、すべてのボリュームグループを不活性化すること等により、既存のブロックストレージ機構の使用を停止するようリクエストすることができる。ブロックストレージボリュームは、Sからデタッチされ、S_newにアタッチされる。次いで、ホストマネージャはS_new上にインストールされ、ボリュームグループを活性化するよう要求することができる。次いで、1次レプリカが、例えば、データベースをシャットダウンし、ボリュームをアンマウントすること等により、停止することができ、すべてのブロックストレージボリュームをデタッチすることができる。S_newへのフェイルオーバは、データベースエンドポイントをS_newにポイントすることにより開始することができる。これにより、S_newが新規1次レプリカとなる。S_new上のホストマネージャがファイルシステムをマウントするよう要求される可能性があり、クレデンシャル(例えば、RPM公開鍵)は新規インスタンス上のホストマネージャに送られる可能性がある。次いで、S_new上のホストマネージャがデータベースを開始するよう要求される可能性があり、データベースはAVAILABLEと標識される可能性がある。この段階で、2次が生成途中であるにも関わらず、データベースの使用準備が整ったことになる。次のステップとして、P_newインスタンスを開始することができ、以前PにアタッチされていたブロックストレージボリュームをP_newにアタッチすることができる。ホストマネージャをP_new上にインストールすることができ、BLRM設定ファイルがインストールされる。この実施形態においては、いかなるファイルシステムも、この時点ではP_newにマウントされていない。次いで、S_newをP_newに接続し接続状態を確認するコマンドを、S_new上のホストマネージャに対して発行することができる。次いで、スケーリングされたレプリカを、顧客によるアクセスのために提供することができる。
【0057】
実施形態は、例えば、スナップショットまたは他のポイントインタイムバックアップを生成すること等により、ユーザがユーザのインスタンスに情報をバックアップすることも可能にすることができる。例えば、RDSは、顧客が、顧客のインスタンスのスナップショットを生成すること、およびこれらのスナップショットから新規インスタンスを生成することを可能にすることができる。スナップショットは、複製されたデータベースに対してポイントインタイムリカバリを実行するためにも用いることができる。複製されていないインスタンスのスナップショットを生成するために、ワークフローはデータベースボリュームに対するI/Oを効果的にサスペンドし、インスタンスにアタッチされたボリュームのブロックストレージレベルスナップショットを取得し、ボリュームのサスペンドを停止する。複製されたインスタンスに対するスナップショットを生成するとき、スナップショットは2次レプリカにおいて取得することができる。このため、2次レプリカを一時的に切断することができ、すべてのブロックストレージボリュームのスナップショットが取得される。スナップショットが取得された後、2次レプリカは再接続することができる。
バックアップを有効化することにより、顧客は、時間が過去X日以内であるかぎり、所与の時間ポイントにインスタンスをリストアする能力を有する。なおここで、Xは顧客に対する保持期間である。
【0058】
顧客が複製されていないインスタンスにおいてバックアップを有効化すると、バックアップウィンドウの間、毎日等の定期的間隔においてインスタンスに対してスナップショットを取得することができ、ログ記録は5分毎等の他の間隔においてバックアップすることができる。顧客がインスタンスを、例えばt1等の時間ポイントにリストアすることを望むと、インスタンスは、所望時間に最も近接するが、しかし所望の時間ポイントより前の時間のスナップショットから生成され、ログ記録は、状態がその時間ポイントをミラーするようロールフォワードするように用いることができる。複製されたインスタンスにおいて、ログ記録が1次レプリカからバックアップされる一方で、スナップショットは2次レプリカ上で取得することができる。
【0059】
1つの実施形態において、ホストマネージャへのすべての通信チャンネルは、セキュアソケット層(SSL:secure socket layer)上でハイパーテキスト転送プロトコルを用いてセキュアにされる。ホストマネージャアプリケーションをホストする各アプリケーションサーバは、インスタンスの起動時にスクリプトを用いてスタートすることができる。アプリケーションサーバエンジンをスタートする前に、自己署名証明書を生成し、証明書をインストールしてSSL通信チャンネル(単数または複数)を有効化するスクリプトが実行することができる。SSL通信は、1つの実施形態においては、通信チャンネルを暗号化するために使用され、クライアント認証を暗号化するためには使用されない。代わって、クライアント認証は、各リクエストに埋め込まれた公開/秘密鍵署名により達成される。それにより、1つの実施形態において、すべてのクライアントは秘密鍵を用いて照会文字列パラメータを署名する。この署名は、カスタムインターセプタにより確認することができ、このインターセプタは、ホストマネージャに対するアプリケーションサーバとともに配置することができる。さらに、セキュリティグループ(すなわち、ファイアウォールルール)を、データプレーンにおいて、監視されたインスタンスのそれぞれに対して設定することができる。その結果、所定のネットワークまたはセキュアグループに属するホストのみが、ホストマネージャポートを用いて通信できる。セキュア情報およびクレデンシャル(秘密鍵等)は、鍵管理およびローテーション等の機能性を提供することができる適切な鍵ストアに記憶することができる。
【0060】
上述のように、ログファイルも同様の方法でバックアップすることができる。ログ記録は、データファイルのリストアが必要な場合に様々なトランザクションをリプレイする等のタスクを実行するために用いることができる。エンジンログ記録を、以前にバックアップされたログファイルが簡単なリストコマンドを用いて獲得することができるように、適切なストレージ位置にコピーすることができる。ホストマネージャはこの結果を用いて、コピーする必要があるログ記録が存在するかどうかを判定する。例えば、ホストマネージャは、最後のシーケンスをバックアップすることができるように、書き込まれたログファイルのリストを取得するために、バケットリストを要求することができる。新規ログファイルが生成された場合、ログ記録がデータベースエンジンにより動的でなく書き込まれていることがまず判定され、次いで、ログ記録はコピーされ、コピーが正常に実行されたことが確認される。
【0061】
上述のように、様々な実施形態は広範囲の様々な動作環境において実装することができる。なお、この動作環境は、いくつかの場合においては、1つまたは複数のユーザコンピュータ、計算デバイス、または多数のアプリケーションのうちの任意のものを動作するために用いることができる処理デバイスを含むことができる。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータの他に、モバイルソフトウェアを実行し、多数のネットワークおよびメッセージングプロトコルをサポートすることができるセルラ、無線、ハンドヘルドデバイス等の、多数の汎用パーソナルコンピュータのうちの任意のものを含むことができる。係るシステムは、商業的に入手可能な様々なオペレーティングシステムのうちの任意のもの、および開発もしくはデータベース管理等の目的の他の既知のアプリケーションを実行する多数のワークステーションも含むことができる。これらのデバイスは、ダミーターミナル、シンクライアント、ゲーム用システム、および、ネットワークを介して通信する能力を有する他のデバイス等の、他の電子装置も含むことができる。
【0062】
様々な態様も、少なくとも1つの、サービス指向アーキテクチャの一部であってもよいものなどのようなサービスまたはウェブサービスの一部として、実装することができる。
ウェブサービス等のサービスは、拡張可能マークアップ言語(XML)形式において、かつSOAP(「Simple Object Access Protocol」に由来する)等の適切なプロトコルを用いて交換されるメッセージを用いること等により、任意の適切な種類のメッセージングを用いて、通信を行うことができる。係るサービスにより提供または実行されるプロセスは、ウェブサービス記述言語(WSDL)等の、任意の適切な言語で書き込むことができる。WSDL等の言語を用いることにより、様々なSOAPフレームワークにおけるクライアント側コードの自動生成等の機能性が可能になる。
【0063】
大部分の実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、およびAppleTalk等の、様々な商業的に入手可能なプロトコルの任意のものを用いて通信をサポートするために、当業者に周知である、少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびこれらの任意の組合せとすることができる。
【0064】
ウェブサーバを利用する実施形態において、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Javaサーバ、およびビジネスアプリケーションサーバを含む、様々な任意のサーバまたはミッドティアアプリケーションを実行することができる。サーバ(単数または複数)は、例えば、Java(登録商標)、C、C#、もくしはC++、または、Perl、Python、もしくはTCL等の任意のスクリプト言語、ならびにこれらの組み合わせ等の任意のプログラム言語で書かれた1つまたは複数のスクリプトまたはプログラムとして実装された、1つまたは複数のウェブアプリケーションを実行する等により、ユーザデバイスからのリクエストに応答して、プログラムまたはスクリプトを実行する能力を有する。サーバ(単数または複数)は、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)から商業的に入手可能なサーバを非限定的に含むデータベースサーバも含んでもよい。
【0065】
環境は、上述のように、様々なデータストアおよび他のメモリ媒体および記憶媒体を含むことができる。これらは、1つまたは複数のコンピュータに対してローカルである(および/または1つまたは複数のコンピュータ内に常駐する)記憶媒体、またはネットワーク上のすべてのコンピュータのうちの任意のものまたは全部から遠隔にある記憶媒体等の、様々な位置に常駐することができる。特定の組の実施形態においては、情報は、当業者に周知であるストレージエリアネットワーク(「SAN」)に存在する。同様に、コンピュータ、サーバ、または他のネットワークデバイスに帰属する機能を実行するために必要なファイルは、適宜、ローカルおよび/またはリモートに記憶されてよい。システムがコンピュータ化されたデバイスを含む場合、係るデバイスはそれぞれは、ハードウェア要素を含むことができる。なお、これらのハードウェア要素は、バスを介して電気的に接続されてもよく、それらの要素は、例えば、少なくとも1つの中央処理装置(CPU)、少なくとも1つの入力装置(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、および少なくとも1つの出力装置(例えば、ディスプレイ装置、プリンタ、またはスピーカ)を備えるものである。係るシステムは、例えば、ディスクドライブ、光記憶装置、および、ランダムアクセスメモリ(「RAM」)または読み出し専用メモリ(「ROM」)等の固体記憶装置の他に、着脱可能な媒体デバイス、メモリカード、フラッシュカード、その他等の、1つまたは複数の記憶装置も備えてもよい。
【0066】
係るデバイスは、コンピュータ可読記憶媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線および有線)、赤外線通信デバイス、その他)、および上述のワーキングメモリも含むことができる。コンピュータ可読記憶媒体リーダは、コンピュータ可読ストレージ媒体と接続することができ、またはコンピュータ可読記憶媒体を受容するよう構成することができる。なお、コンピュータ可読記憶媒体は、リモート、ローカル、固定、および/または着脱可能記憶装置の他に、一時的に、および/または、より永続的に、コンピュータ可読情報を含む、記憶する、転送する、および取得する記憶媒体を指す。システムおよび様々なデバイスは、一般的に、オペレーティングシステムおよびクライアントアプリケーションまたはウェブブラウザ等のアプリケーションプログラムを含む、少なくとも1つのワーキングメモリデバイス内に配置された、いくつかのソフトウェアアプリケーション、モジュール、サービスまたは他の要素を含むであろう。代替的な実施形態が上述したものからの多数の変化例を有してもよいことを理解すべきである。例えば、カスタマイズされたハードウェアも用いられてもよく、および/または、特定の要素がハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、またはその両方で実装されてもよい。さらに、ネットワーク入出力デバイス等の他の計算デバイスへの接続が用いられてもよい。
【0067】
コードまたはコードの一部を収容するための記憶媒体およびコンピュータ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、または他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶、または他の磁気記憶装置、または所望の情報を記憶することができ、システムデバイスによりアクセスすることができる任意の他の媒体を含む、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報の記憶および/または伝送のために任意の方法または技術で実装された、揮発性および不揮発性、ならびに着脱可能および着脱不能の媒体などのような、しかしこれらに限定されない、記憶媒体および通信媒体を含む、当該分野で周知または用いられる任意の適切な媒体を含むことができる。本明細書に提供された開示および教示に基づいて、当業者は、様々な実施形態を実装する他の手法および/または方法を理解するであろう。
【0068】
したがって、本明細書および図面は、限定的な意味よりもむしろ例示的な意味においてとらえられるべきである。しかしながら、特許請求の範囲において説明される本特許の広範な精神および範囲から逸脱することなく、様々な変更例および変化例がそこになされてもよいことは明白であろう。
【0069】
(付記項1)
制御環境の1つまたは複数のセルフサービスウェブサービスを用いて、データベース環境において、複製されたリレーショナルデータベースインスタンスをプロビジョニングするための、コンピュータ実装された方法であって、
実行可能命令により設定された、1つまたは複数のコンピュータシステムの制御下で、 それぞれが前記ユーザにウェブサービスリクエストを制御環境に発行することを可能にする、複数のアプリケーションプログラミングインターフェース(API)を提供することであって、各APIは、別個のデータベース環境において、前記ユーザに対してリレーショナルデータベースに関して実行される所望の動作に対応する、提供することと、
前記複数のAPIの内の第1APIを通しての、前記ユーザから前記制御環境へのウェブサービスリクエストの受信に応答して、
1次インスタンスレプリカを前記データベース環境の第1データゾーンにおいてプロビジョンすること、
前記1次レプリカインスタンスにデータベースエンジンをインストールすることと、 2次インスタンスレプリカを、前記1次インスタンスレプリカの1つまたは複数のスナップショットを用いて、前記データベース環境の第2データゾーンにおいてプロビジョンすること、および
前記1次インスタンスレプリカに対する任意の読み出しおよび書き込みを傍受し、前記1次インスタンスレプリカに対する任意のデータ更新を前記2次インスタンスレプリカに対して同時に更新するよう構成された、ブロックレベル複製機構を1次インスタンスレプリカおよび2次インスタンスレプリカのそれぞれに接続すること、
のタスクを含むワークフローをインスタンス化することと、
前記ユーザが前記1次レプリカインスタンスにインストールされた前記データベースエンジンと相互作用することを可能にし、前記1次インスタンスレプリカの障害時に前記ユーザが前記2次インスタンスレプリカと相互作用することができるよう更新可能である、エイリアス名を前記ユーザに提供することと、
を含む方法。
【0070】
(付記項2)
前記第1インスタンスレプリカおよび前記第2インスタンスレプリカのそれぞれは、前記データベース環境において別個のデータインスタンス上で実行され、各データインスタンスは1つまたは複数の専用ブロックストレージボリュームにアタッチされる、付記項1に記載のコンピュータ実装された方法。
【0071】
(付記項3)
前記ブロックレベル複製機構は、前記第1インスタンスレプリカおよび前記第2インスタンスレプリカの前記1つまたは複数の専用ブロックストレージボリュームの間でデータを同時に複製するよう動作可能である、付記項2に記載のコンピュータ実装された方法。
【0072】
(付記項4)
ユーザが、データベース環境において、別個の制御環境を用いて、複製されたデータベースインスタンスを生成することを可能にするための、コンピュータ実装された方法であって、
実行可能命令により設定された、1つまたは複数のコンピュータシステムの制御下で、 それぞれが前記ユーザにウェブサービスリクエストを前記制御環境に発行することを可能にする、複数のアプリケーションプログラミングインターフェース(API)を提供することであって、各APIは、前記データベース環境において、前記ユーザに対するデータベースに関して実行される所望の動作に対応する、提供することと、
前記複数のAPIの内の1つを通しての、前記ユーザから前記制御環境へのウェブサービスリクエストの受信に応答して、データベースに対する第1インスタンスレプリカおよび第2インスタンスレプリカが前記データベース環境においてプロビジョンされるようにし、ブロックレベル複製機構が、前記1次インスタンスレプリカにおける前記データベースに対する任意の書込操作を傍受し、前記書込操作に対する変化が同時に前記2次インスタンスレプリカに複製されるように構成されるようにすることと、
前記ユーザが、前記1次インスタンスレプリカを介して、前記データベースにアクセスすることを可能にすることと、
を含む方法。
【0073】
(付記項5)
前記第1インスタンスレプリカおよび前記第2インスタンスレプリカは、単一のデータゾーンにおいて、別個の地理的位置における別個のデータゾーンにおいて、複数の地理的位置にわたる単一のデータゾーンにおいて、または単一の地理的領域内の複数のデータゾーンにわたって、プロビジョンされる、付記項4に記載のコンピュータ実装された方法。
【0074】
(付記項6)
前記制御環境は、前記1次インスタンスレプリカが利用不可能となった場合、前記2次インスタンスレプリカへのフェイルオーバ操作を自動的に実施するよう構成された、付記項4に記載のコンピュータ実装された方法。
【0075】
(付記項7)
ホストマネージャが前記第1インスタンスレプリカおよび前記第2インスタンスレプリカのそれぞれに対してインストールされ、各ホストマネージャが、前記制御環境と通信し、前記データベース環境において1つまたは複数のタスクを実行するように操作可能にすること
をさらに含む、付記項4に記載のコンピュータ実装された方法。
【0076】
(付記項8)
前記2次インスタンスレプリカに対する2次ブロックストレージボリュームは、前記1次インスタンスレプリカに対する前記1次ブロックストレージボリュームのスナップショットを用いて生成される、付記項4に記載のコンピュータ実装された方法。
【0077】
(付記項9)
前記第1インスタンスレプリカおよび前記第2インスタンスレプリカは、前記ユーザから受信された前記ウェブサービスリクエストが、複製されたインスタンスが生成されることを示す複製パラメータ値を含む場合、前記データベース環境においてプロビジョンされる、付記項4に記載のコンピュータ実装された方法。
【0078】
(付記項10)
前記ユーザにエイリアス名が提供され、前記エイリアス名は、フェイルオーバ操作により前記2次レプリカが新規の現在の1次インスタンスレプリカとなった場合を含んで、前記ユーザが現在の1次インスタンスレプリカと通信することを可能にする、付記項4に記載のコンピュータ実装された方法。
【0079】
(付記項11)
前記複数のAPIの内の1つを通して前記制御環境に対して発行されたウェブサービスリクエストを用いて、前記ユーザが、複製されていないインスタンスを複製されたインスタンスに変換することを可能にすることをさらに含む、付記項4に記載のコンピュータ実装された方法。
【0080】
(付記項12)
前記複数のAPIの内の1つを通してのウェブサービスリクエストの受信に応答して、前記データベースの、1つまたは複数のスナップショットをキャプチャすることをさらに含む、付記項4に記載のコンピュータ実装された方法。
【0081】
(付記項13)
前記スナップショットは、前記2次インスタンスレプリカにおいて取得される、第12節に記載のコンピュータ実装された方法。
【0082】
(付記項14)
前記ウェブサービスリクエストに応答して、、前記第1インスタンスレプリカおよび前記第2インスタンスレプリカを前記データベース環境において、プロビジョニング、設定、および接続するための、タスクを含むワークフローを、前記制御環境において実行することをさらに含む、付記項4に記載のコンピュータ実装された方法。
【0083】
(付記項15)
前記制御環境の少なくとも1つの監視コンポーネントを用いて、前記第1インスタンスレプリカおよび前記第2インスタンスレプリカの健康情報を監視することをさらに含む、付記項4に記載のコンピュータ実装された方法。
【0084】
(付記項16)
前記第1インスタンスレプリカおよび前記第2インスタンスレプリカの設定情報を前記制御環境におけるデータストアに記憶することをさらに含む、付記項4に記載のコンピュータ実装された方法。
【0085】
(付記項17)
前記複製技術はデータベースエンジンに対して独立的である、付記項4に記載のコンピュータ実装された方法。
【0086】
(付記項18)
ユーザが、データベース環境において、別個の制御環境を用いて、複製されたデータベースインスタンスを生成することを可能にするためのシステムであって、
プロセッサと、
前記プロセッサにより実行されると、前記プロセッサに
それぞれが前記ユーザにウェブサービスリクエストを前記制御環境に発行することを可能にする、複数のアプリケーションプログラミングインターフェース(API)を提供することであって、各APIは、前記データベース環境において、前記ユーザに対するデータベースに関して実行される所望の動作に対応するように、提供させ、
前記複数のAPIの内の1つを通した、前記ユーザから前記制御環境へのウェブサービスリクエストの受信に応答して、データベースに対する第1インスタンスレプリカおよび第2インスタンスレプリカが前記データベース環境においてプロビジョンされるようにし、ブロックレベル複製機構が、前記1次インスタンスレプリカにおける前記データベースに対する任意の書込操作を傍受し、前記書込操作に対する変化が同時に前記2次インスタンスレプリカに複製されるよう構成されるようにさせ、
前記ユーザが、前記1次インスタンスレプリカを介して、前記データベースにアクセスすることを可能にさせる、
ようにさせる命令を含むメモリデバイスと、
を備えるシステム。
【0087】
(付記項19)
前記第1インスタンスレプリカおよび前記第2インスタンスレプリカは、単一のデータゾーンにおいて、別個の地理的位置における別個のデータゾーンにおいて、複数の地理的位置にわたる単一のデータゾーンにおいて、または単一の地理的領域内の複数のデータゾーンにわたって、プロビジョンされる、付記項18に記載のシステム。
【0088】
(付記項20)
実行されると、前記命令は、前記プロセッサに、
前記ウェブサービスリクエストに応答して、プロビジョンするための、設定するための、前記第1インスタンスレプリカおよび前記第2インスタンスレプリカを前記データベース環境において接続するための、タスクを含むワークフローを、前記制御環境において実行させる、
ようにさらにさせる、付記項18に記載のシステム。
【0089】
(付記項21)
実行されると、前記命令は、前記プロセッサに、
ホストマネージャを前記第1インスタンスレプリカおよび前記第2インスタンスレプリカのそれぞれに対してインストールさせ、各ホストマネージャを、前記制御環境と通信し、前記データベース環境において1つまたは複数のタスクを実行するように作動可能にさせる、
ようにさらにさせる、付記項18に記載のシステム。
【0090】
(付記項22)
ユーザが、データベース環境において、別個の制御環境を用いて、複製されたデータベースインスタンスを生成することを可能にするための命令を記憶するためのコンピュータ可読記憶媒体であって、前記命令は、プロセッサにより実行されると、前記プロセッサに、
それぞれが前記ユーザにウェブサービスリクエストを前記制御環境に発行することを可能にする、複数のアプリケーションプログラミングインターフェース(API)を提供することであって、各APIは、前記データベース環境において、前記ユーザに対してデータベースに関して実行される所望の動作に対応するように、提供し、
前記複数のAPIの内の1つを通しての、前記ユーザから前記制御環境へのウェブサービスリクエストの受信に応答して、データベースに対する第1インスタンスレプリカおよび第2インスタンスレプリカが前記データベース環境においてプロビジョンされるようにし、ブロックレベル複製機構が、前記1次インスタンスレプリカにおける前記データベースに対する任意の書込操作を傍受し、前記書込操作に対する変化が同時に前記2次インスタンスレプリカに複製されるよう構成されるようにし、
前記ユーザが、前記1次インスタンスレプリカを介して、前記データベースにアクセスすることを可能にする、
ようにさせる、コンピュータ可読記憶媒体。
【0091】
(付記項23)
前記第1インスタンスレプリカおよび前記第2インスタンスレプリカは、単一のデータゾーンにおいて、別個の地理的位置における別個のデータゾーンにおいて、複数の地理的位置にわたる単一のデータゾーンにおいて、または単一の地理的領域内の複数のデータゾーンにわたって、プロビジョンされる、付記項22に記載のコンピュータ可読記憶媒体。
【0092】
(付記項24)
前記命令は、実行されると、前記プロセッサに対して、
前記ウェブサービスリクエストに応答して、前記第1インスタンスレプリカおよび前記第2インスタンスレプリカを前記データベース環境においてプロビジョンするための、設定するための、接続するための、タスクを含むワークフローを、前記制御環境において実行させる、
ようにさらにさせる、付記項22に記載のコンピュータ可読記憶媒体。
【0093】
(付記項25)
前記命令は、実行されると、前記プロセッサに対して、
ホストマネージャが前記第1インスタンスレプリカおよび前記第2インスタンスレプリカのそれぞれに対してインストールされること、および各ホストマネージャを、前記制御環境と通信し、前記データベース環境において1つまたは複数のタスクを実行するように操作可能にさせること、
をさらにさせる、付記項22に記載のコンピュータ可読記憶媒体。
図1
図2
図3
図4
図5
図6