JP2024502770A - ネットワーク仮想化デバイスにおいて顧客管理キーを使用して顧客vcnネットワーク暗号化を提供するメカニズム - Google Patents

ネットワーク仮想化デバイスにおいて顧客管理キーを使用して顧客vcnネットワーク暗号化を提供するメカニズム Download PDF

Info

Publication number
JP2024502770A
JP2024502770A JP2023538778A JP2023538778A JP2024502770A JP 2024502770 A JP2024502770 A JP 2024502770A JP 2023538778 A JP2023538778 A JP 2023538778A JP 2023538778 A JP2023538778 A JP 2023538778A JP 2024502770 A JP2024502770 A JP 2024502770A
Authority
JP
Japan
Prior art keywords
vcn
key
network
virtual
customer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023538778A
Other languages
English (en)
Inventor
ポトラパリー,ナチケス・ラオ
ビンセント,プラディープ
ブラール,ジャグウィンダー・シング
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2024502770A publication Critical patent/JP2024502770A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

Figure 2024502770000001
顧客が仮想クラウドネットワークでネットワークキーを制御できるように、スマートNICなどのネットワークインターフェイスカードを使用して、仮想マシンのためのネットワーク暗号化仮想機能(NEVF)などの暗号化を提供する。NEVFは、メモリデバイス(たとえばSRAM)および暗号プロセッサ(たとえば暗号コア)を含む。メモリデバイスは暗号キーを格納する。暗号プロセッサは、暗号キーを使用して仮想クラウドネットワーク内の仮想マシンへのおよび仮想マシンからのデータを暗号化する。キー管理サービスを使用して、暗号キーをNEVFにセキュアに転送することができる。仮想マシンごとに1つのNEVFを有することで、顧客が仮想クラウドネットワークの暗号キーを管理することを可能にすることができる。

Description

関連出願の相互参照
本願は、2020年12月23日に出願され「ネットワーク仮想化デバイスにおいて顧客管理キーを使用して顧客VCNネットワーク暗号化を提供するメカニズム(MECHANISM TO PROVIDE CUSTOMER VCN NETWORK ENCRYPTION USING CUSTOMER-MANAGED KEYS IN NETWORK VIRTUALIZATION DEVICE)」と題された米国出願第17/133,526号に基づく利益を主張し、その全内容を引用により本明細書に援用する。
本願は、2020年12月23日に出願され「顧客管理キーを使用した顧客オンプレミスネットワークから顧客仮想クラウドネットワークへのエンドツーエンドネットワーク暗号化(END-TO-END NETWORK ENCRYPTION FROM CUSTOMER ON-PREMISE NETWORK TO CUSTOMER VIRTUAL CLOUD NETWORK USING CUSTOMER-MANAGED KEYS)」と題された米国出願第17/133,523号に関連しており、その全内容を引用により本明細書に援用する。
背景
仮想クラウドネットワーク(VCN)は、カスタマイズ可能なプライベートネットワークである。VCNは、従来のデータセンターネットワークと同様に、ネットワーク環境を制御する。これには、プライベートIPアドレスの割り当て、サブネットの作成、ルートテーブルの作成、およびファイアウォールの構成が含まれる。1つのテナントが複数のVCNを有することができるので、関連リソースのグループ化および分離が可能である。
VCN内のデータは、セキュリティのために暗号化することができる。暗号化の目的の1つは、正しいキーを知らなければ暗号文を対応する平文に戻すことが非常に難しい(たとえば計算的に実行不可能である)ように、キーに基づいて平文データを解読不能な暗号文に変換することである。対称暗号システムでは、同じデータの暗号化と復号の両方に同じキーを使用する。いくつかの暗号化アルゴリズムでは、キーの長さは128ビット、192ビット、または256ビットであり得る。いくつかの暗号化標準(たとえばデータ暗号化標準(DES))アルゴリズムでは、メッセージデータをDESアルゴリズムに3回渡すことによって暗号化する。3DESは高度なメッセージセキュリティを提供することができるが、パフォーマンスペナルティを伴う。パフォーマンスペナルティの度合いは、暗号化を実行するプロセッサの速度によって異なり得る。RSA Data Security社が開発したRC4アルゴリズムは、高速データ暗号化の国際標準となっている。RC4は、DESの数倍の速度で動作する可変のキー長のストリーム暗号なので、パフォーマンスへの影響を最小限に抑えつつ大量のデータ転送を暗号化することができる。ネットワークデータの暗号化によってデータのプライバシーが守られるため、権限のない者はネットワーク上を通過中の平文データを見ることはできない。
簡単な概要
本開示は、概して仮想クラウドネットワーク(VCN)に関する。より具体的には、限定されるものではないが、VCNホストが1つ以上の暗号化キーへのアクセスを有することなく、顧客が当該暗号化キーを維持および管理することができる、VCNのデータを暗号化する技術について説明する。ホストが暗号化キーへのアクセスを有していないことで、VCNのデータセキュリティレベルを高めることができる。方法、システム、1つ以上のプロセッサによって実行可能なプログラム、コード、または命令を格納する非一時的なコンピュータ読取可能記憶媒体などを含む、さまざまな実施形態が本明細書に記載されている。
特定の実施形態では、顧客が仮想クラウドネットワークのネットワーク暗号化キーを制御できるように、ネットワークインターフェイスカード(たとえばスマートNIC)を使用して、仮想マシンのためのネットワーク暗号化仮想機能(NEVF)などの暗号化を提供する。NEVFは、メモリデバイス(たとえばSRAM)および暗号プロセッサ(たとえば暗号コア)を含む。メモリデバイスは暗号キーを格納する。暗号プロセッサは、暗号キーを使用して仮想クラウドネットワーク内の仮想マシンへのおよび仮想マシンからのデータを暗号化する。キー管理サービスを使用して、暗号キーをNEVFにセキュアに転送する。仮想マシンごとに1つのNEVFを有することで、顧客が仮想クラウドネットワークの暗号化キーを管理することを可能にすることができる。デバイスの管理者(たとえば、NEVFを実行するネットワークインターフェイスカードを有するサーバのホスト)は、暗号化キーへのアクセスを有していない。
特定の実施形態では、システムは、第1の仮想化エンジンおよび第2の仮想エンジンを含む。上記第1の仮想エンジンは、第1の仮想マシンをインスタンス化するように構成されている。上記第1の仮想化エンジンは、第1のメモリデバイスおよび第1の暗号プロセッサを含む。上記第1のメモリデバイスは、第1の暗号キーを格納するように構成されている。上記第1の暗号プロセッサは、上記第1の暗号キーを使用して上記第1の仮想マシンへのおよび上記第1の仮想マシンからのデータを暗号化および復号するように構成されている。上記第2の仮想エンジンは、第2の仮想マシンをインスタンス化するように構成されている。上記第2の仮想化エンジンは、第2のメモリデバイスおよび第2の暗号プロセッサを含む。上記第2のメモリデバイスは、第2の暗号キーを格納するように構成されている。上記第2の暗号プロセッサは、上記第2の暗号キーを使用して上記第2の仮想マシンへのおよび上記第2の仮想マシンからのデータを暗号化および復号するように構成されている。上記第1の仮想化エンジンおよび上記第2の仮想化エンジンは、同じデバイス(たとえばネットワークインターフェイスカード)の一部である。上記デバイスの管理者は、上記第1のキーまたは上記第2のキーへのアクセスを有していない。
特定の実施形態では、上記第1の仮想化エンジンは、キー管理サービスから上記第1のキーを受け取るように、および/または上記第1のキーを上記第1のメモリデバイスに保存するように構成され、上記キー管理サービスは、上記デバイスの管理者が顧客のための上記第1のキーへのアクセスを有することなく、上記第1のキーを上記デバイスに提供し、上記第1のメモリデバイスは、コンデンサおよびトランジスタを含むスタティックランダムアクセスメモリデバイスであり、上記第1の仮想化エンジンおよび上記第2の仮想化エンジンは各々、一度に1つの仮想マシンのみをインスタンス化するように構成され、上記第1の仮想マシンは第1の仮想クラウドネットワークの一部であり、上記第2の仮想マシンは第2の仮想クラウドネットワークの一部であり、上記第1の暗号プロセッサは、上記第1の仮想マシンのためのインラインデータ暗号化を提供するように構成され、上記第1の仮想化エンジンは、上記第1の仮想化マシンのためのデータパケットのネットワークルーティングを提供するように構成され、上記第1の暗号キーは上記第2の暗号キーと同じであり、上記デバイスはネットワークインターフェイスカードであり、上記第1のキーおよび/または上記第2のキーは定期的に更新され、上記第1の仮想化エンジンおよび上記第2の仮想化エンジンは、上記キー管理サービスにクレデンシャルを提供して上記第1のキーを受け取り、上記第1の仮想マシンおよび上記第2の仮想マシンは、サブネットの一部であり、上記第1の仮想マシンおよび上記第2の仮想マシンは、異なる仮想クラウドネットワークの一部であり、上記第1のキーおよび上記第2のキーは同時にリフレッシュされる。
さらに他の実施形態では、方法は、第1の仮想化エンジンを使用して第1の仮想マシンをインスタンス化することと、第2の仮想化エンジンを使用して第2の仮想マシンをインスタンス化することと、上記第1の仮想化エンジンの第1のメモリデバイスに第1のキーを格納することと、上記第2の仮想化エンジンの第2のメモリデバイスに第2のキーを格納することと、第1の暗号プロセッサを使用して上記第1の仮想マシンのデータを暗号化することとを含み、上記第1の暗号プロセッサは上記第1の仮想化エンジンの一部であり、および/または、第2の暗号プロセッサを使用して上記第2の仮想エンジンのデータを暗号化することを含み、上記第2の暗号プロセッサは上記第2の仮想化エンジンの一部である。上記第1の仮想化エンジンおよび上記第2の仮想化エンジンは、同じデバイスの一部である。上記デバイスの管理者は、上記第1のキーまたは上記第2のキーへのアクセスを有していない。
上記の内容は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照することでより明らかになるであろう。
ネットワーク仮想化デバイスのシステムの一実施形態の概略図である。 キー管理サービスから暗号キーを受け取る複数のネットワーク仮想化デバイスの一実施形態を示す図である。 異なる暗号キーで複数の顧客をサポートするネットワーク仮想化デバイスの一実施形態を示す図である。 仮想クラウドネットワークでデータを暗号化するプロセスの一実施形態を示すフローチャート図である。 複数の暗号キーを使用して複数の仮想クラウドネットワークのデータ暗号化を行うプロセスの一実施形態を示すフローチャート図である。 少なくとも1つの実施形態に係る、クラウドインフラストラクチャをサービスシステムとして実現するための1つのパターンを示すブロック図である。 少なくとも1つの実施形態に係る、クラウドインフラストラクチャをサービスシステムとして実現するための別のパターンを示すブロック図である。 少なくとも1つの実施形態に係る、クラウドインフラストラクチャをサービスシステムとして実現するための別のパターンを示すブロック図である。 少なくとも1つの実施形態に係る、クラウドインフラストラクチャをサービスシステムとして実現するための別のパターンを示すブロック図である。 少なくとも1つの実施形態に係る、例示的なコンピュータシステムを示すブロック図である。 特定の実施形態に係る、クラウドサービスプロバイダインフラストラクチャによってホストされている仮想クラウドネットワークまたはオーバレイクラウドネットワークを示す分散環境のハイレベル図である。 特定の実施形態に係る、CSPI内の物理ネットワークにおける物理コンポーネントの簡略化されたアーキテクチャ図である。 特定の実施形態に係る、ホストマシンが複数のネットワーク仮想化デバイス(NVD)に接続されているCSPI内の例示的な配置を示す図である。 特定の実施形態に係る、ホストマシンとマルチテナンシをサポートするためのI/O仮想化を提供するためのNVDとの間の接続性を示す図である。 特定の実施形態に係る、CSPIによって提供される物理ネットワークの簡略化されたブロック図である。
詳細な説明
添付の図面では、同様の構成要素および/または特徴は同じ参照レベルを有し得る。さらに、同様の構成要素同士を区別するダッシュおよび第2のラベルが当該参照ラベルの後に続くことによって同じタイプのさまざまな構成要素が区別され得る。第1の参照ラベルのみが本明細書において用いられる場合、第2の参照ラベルに関わらず、当該記載は、同じ第1の参照ラベルを有する同様の構成要素のいずれか1つに適用可能である。
以下の記載では、説明を目的として、特定の実施形態が十分に理解されるようにするために具体的詳細について述べる。しかしながら、これらの具体的詳細がなくても各種実施形態は実施し得ることは明らかである。図面および説明は限定を意図しているのではない。本明細書において「例示的な」という単語は、「1つの例、場合、または実例の役割を果たす」ことを意味するために使用されている。本明細書において「例示的」であると記載されているいかなる実施形態または設計も、必ずしも他の実施形態または設計よりも好ましいまたは好都合であると解釈されることを意図している訳ではない。
仮想クラウドネットワーク(VCN)は、カスタマイズ可能なプライベートネットワークである。ホストは、顧客がVCNをセットアップするためのコンピューティングハードウェアおよび/またはソフトウェアを提供し得る。典型的に、ホストは、VCNの暗号化がある場合は、その暗号化を管理する。顧客は、ホストのデータ漏洩によって顧客データが危険に晒されることを恐れて、またはホストがどれだけの顧客データにアクセスできるかを懸念して、ホストに暗号化を管理させたくない場合がある。本説明は、顧客管理キーを使用してVCNネットワーク暗号化を提供するメカニズムに関する。顧客管理キーは、スマートNICで配信することができる。スマートNICは、通常はCPUが対処し得る処理タスクをオフロードするネットワークインターフェイスカード(たとえばネットワークアダプタ)である。スマートNICは、暗号化、復号、ルーティング、ファイアウォールなどの機能を実行することができる。
スマートNICは、専用の暗号アクセラレータおよび/またはSRAMでネットワーク暗号化仮想機能(NEVF)をサポートするために使用することができる。暗号アクセラレータは、インラインパケット暗号化に使用することができる。SRAMは、暗号化キーを格納するために使用することができる。顧客仮想マシン(顧客仮想マシンは顧客VCNの一部である)に割り当てられたNEVFは、仮想マシンネットワークトラフィック暗号化のために、および暗号化キーを格納するために、使用することができる。ハイパーバイザは、顧客仮想マシンをNEVFにマッピングすることができる。暗号化キーは、顧客VCNインスタンス(たとえば仮想マシン(VM)および/またはベアメタル(BM))内のNEVFにおいてセキュアにプロビジョニングすることができる。
顧客VCNインスタンス間で交換されるトラフィックは、NEVFにおいてプロビジョニングされた暗号化キーで暗号化される。VCN内の各インスタンスは、同じ暗号化キーを共有する(たとえば日和見暗号化)。制御プレーンは、VCN内の顧客インスタンス(VMおよび/またはBM)のネットワーク暗号化キーをプロビジョニングおよび/または管理することができる。制御プレーンは、顧客仮想機能を認証し、キー管理サービスからの暗号化キーをプロビジョニングするために使用することができる。証明書を使用することで、キー管理サービスおよびNICは顧客暗号化キーをセキュアに共有することができる。よって、顧客は(たとえばアプリケーションプログラムインターフェイスおよび/またはオペレーティングシステムコマンドを使用して)ネットワーク暗号化キーを管理することができる。いくつかの構成では、VCN内のVMホスト間で固有のキーが共有される。各VMホストのNEVFは、キーおよび/またはどのキーを使用するかに関連付けられたメタデータを格納する。
図1を参照して、仮想クラウドネットワークのデータを暗号化するためのシステムの一実施形態の概略図が示されている。ネットワーク仮想化デバイス100は、第1の仮想化エンジン104-1および第2の仮想化エンジン104-2を含む。仮想化エンジン104は、ベアメタルごとまたは仮想マシンごとに仮想ネットワークインターフェイスカード(VNIC)をインスタンス化して提供する。仮想化エンジン104は、ネットワーク暗号化仮想機能(NEVF)とすることができる。ネットワーク仮想化デバイス100は、専用リソース(たとえばメモリおよび/またはプロセッサ)がアタッチされた物理カード(たとえばスマートNIC)とすることができる。いくつかの実施形態では、ネットワーク仮想化デバイス100は、SmartTOR、ネットワークアプライアンス、またはサービスホストである。
クラウドサービスプロバイダインフラストラクチャ内のパケットのルーティングおよび/または転送は、ネットワーク仮想化デバイスによって実行することができる。ネットワーク仮想化デバイスは、仮想ネットワークインターフェイスカード(VNIC)、仮想ルータ、仮想ネットワークゲートウェイ、およびネットワーク暗号化仮想機能などの、1つ以上の仮想ネットワーク機能を実現することができる。ネットワーク仮想化デバイスは、ソフトウェア(たとえばプロセッサによって実行されるコードまたは命令)を使用して実現される仮想オブジェクトである。ネットワーク仮想化デバイスは、仮想ルータなどの仮想機能を実行するハードウェアコンポーネントである(たとえば、仮想ルータデバイスは、仮想ルータを実現するコードを実行する物理デバイスである)。たとえば、VNICはスマートNICによって実行され、スマートNICはネットワーク仮想化デバイスである。VNICがホストマシンによって実行される場合、ホストマシンはネットワーク仮想化デバイスである。いくつかの実施形態では、仮想ルータはトップオブラック(TOR)スイッチによって実行される(TORは仮想ルータデバイスである)。スマートNICはネットワーク仮想化デバイスの一例に過ぎない。
仮想マシン108は、あるコンピュータの内部の別個のコンピュータのように動作する、当該あるコンピュータ上のプログラムである。仮想マシンは、仮想化ソフトウェアを使用して作成することができる。仮想マシン108はさまざまな仮想機能を実行することができる。
仮想化エンジン104は、メモリデバイス112および暗号プロセッサ116を含む。メモリデバイス112は、暗号キーなどのキーを格納するように構成されている。いくつかの実施形態では、メモリデバイス112は、コンデンサおよびトランジスタを含むスタティックランダムアクセスメモリ(SRAM)デバイスである。
暗号プロセッサ116は、メモリデバイス112に格納されたキーを使用して仮想マシン108へのおよび仮想マシン108からのデータを暗号化および/または復号するように構成されている。送信パケットTXは、仮想マシン108から送信されるデータパケットである。受信パケットRXは、仮想マシン108に送信されるデータパケットである。送信パケットTXは、暗号プロセッサ116によって暗号化される。受信パケットRXは、暗号プロセッサ116によって復号される。送信パケットTXおよび/または受信パケットRXは、インライン暗号化/復号を使用して暗号化/復号される。いくつかの実施形態では、仮想化エンジン104は、データパケットのネットワークルーティングを提供するように構成されている(たとえば、仮想化エンジン104は、送信パケットTXのためのルーティングデータを提供する)。
示されている実施形態では、仮想化エンジン104は、一度に1つの仮想マシン108のみをインスタンス化するように構成されている。これにより、仮想マシン108ごとに専用の暗号化リソース(たとえばメモリデバイス112および/または暗号プロセッサ116)が可能になるので、セキュリティを高めることができる。
示されている実施形態では、第1の仮想化エンジン104-1は第1のメモリデバイス112-1および第1の暗号プロセッサ116-1を含み、第2の仮想化エンジン104-2は第2のメモリデバイス112-2および第2の暗号プロセッサ116-2を含む。したがって、第1の仮想化エンジン104-1および第2の仮想化エンジン104-2は同じデバイスの一部である。2つの仮想化エンジン104がネットワーク仮想化デバイス100の一部であるとして示されているが、3つ以上の仮想化エンジン104がネットワーク仮想化デバイス100の一部であってもよい(たとえば、3個、5個、10個、100個、またはそれ以上の仮想化エンジン104がネットワーク仮想化デバイス100の一部であってもよい)ことが理解されるべきである。
いくつかの実施形態では、ネットワーク仮想化デバイス100は、VNIC、仮想ルータ、および/またはNEVFなどの仮想機能を実現するために使用される。ネットワーク仮想化デバイス100は、サーバ内のカード(たとえばスマートNIC)とすることができる。ネットワーク仮想化デバイス100は、1以上の顧客が1つ以上のVCNをセットアップするためにホストによって管理(たとえば所有および/または操作)される。ホストは、ネットワーク仮想化デバイス100の管理者である。ホスト(たとえば管理者)はメモリデバイス112に格納されたキーへのアクセスを有さないように、キーをメモリデバイス112に格納する(たとえば暗号化する)ことができる。ホストがキーへのアクセスを有していないことで、ホストのセキュリティが危険に晒されても、顧客のデータセキュリティを保証することができる。
イーサネット(登録商標)ブリッジ120は、第1の仮想化エンジン104-1がインターネットを介して通信すること、および/または(たとえば第1の仮想マシン108-1および第2の仮想マシン108-2が同じ仮想クラウドネットワークの一部である場合に)第2の仮想化エンジン104-2と通信することを可能にする。ハイパーバイザ124は、仮想マシン108間でコンピューティングシステムのリソースを共有するためにホストによって使用される。
図2は、キー管理サービス208から暗号キー204を受け取る複数の仮想化エンジン104の一実施形態を示す図である。示されている実施形態では、仮想化エンジン104が3つある。3つの仮想化エンジン104が示されているが、より多いまたはより少ない仮想化エンジン104を使用することができる。仮想化エンジン104は各々、1つの(いくつかの実施形態では1つのみの)仮想マシン108をインスタンス化する。図2の仮想マシン108は、共通の仮想クラウドネットワーク(VCN)212の一部である。仮想化エンジン104は同じVCN212の一部であるため、仮想化エンジン104は各々、同じキー(たとえば同じ暗号キー204)を受け取り、これにより、仮想化エンジン104は暗号化されたデータを使用して互いに(たとえば図1に示されるイーサネットブリッジ120を使用して)セキュアに通信することができる。したがって、第1の仮想化エンジン104-1は、キー管理サービス208から暗号キー204を受け取るように構成されている。第1の仮想化エンジン104-1は、暗号キー204を第1のメモリデバイス112-1に保存する。
VCN制御プレーン216は、クラウドインフラストラクチャリソースを管理、監視、および/または修正するように構成されている。キー管理サービス208は、ネットワーク仮想化デバイス100のホストが暗号キー204へのアクセスを有することなく、暗号キー204を顧客のための仮想化エンジン104に提供することができる。ホスト(たとえばクラウドサービスプロバイダ)が暗号キー204へのアクセスを有していないことで、顧客はVCN212のセキュリティを制御する。
ホストがキーへのアクセスを有することなく、キーをメモリデバイス112に取り込むために、顧客は、キー管理サービス208(たとえばOCIのクラウドキー管理サービス(Cloud Key Management Service))において暗号キー204を初期化することができ、および/または、キーへのアクセス許可を仮想化エンジン104に与える。クラウドネットワークでは、各リソースにアイデンティティプリンシプル(たとえばOCIのクラウドアイデンティティプリンシプル(Cloud Identity Principle))を割り当てることができ、これにより、リソースを他のクラウドリソースに対して認証するために各リソースにクレデンシャルを与えることができる。仮想化エンジン104(たとえばNEVF)は、リソースであり、アイデンティティプリンシプルを割り当てることができる。仮想化エンジン104は、キー管理サービス208に対して認証され得る。仮想化エンジン104は、顧客キー(たとえば暗号キー204)を要求することができる。
仮想化エンジン104は、キー管理サービス208に暗号キー204を要求する(たとえば、アイデンティティプリンシプルを使用して自身を認証してキーを要求する)ことができる。キー管理システム208は、(たとえば仮想化エンジン104を認証した後に)キー(および/または更新)を仮想化エンジン104にプッシュすることができる。キーの要求またはプッシュは、クラウドネットワークのホストがキーを仮想化エンジン104に対して(たとえば仮想化エンジン104のSRAM内に)プロビジョニングすることなく行われる。キー管理システム208と仮想化エンジン104との間でセキュリティプロトコルを事前に共有することができるので、キー管理システムは、事前に共有された秘密を用いて仮想化エンジン104にデータをルーティングして、仮想化エンジン104のメモリにおいてキーを初期化することができる。
仮想クラウドネットワーク212内の仮想マシン108をサポートする各仮想化エンジン104には、同じ暗号キー204が配信される。仮想マシン108がインスタンス化されると、暗号キー204を仮想エンジン104に配信することができる。たとえば、顧客がVCN212を作成すると、VCN212を暗号化するか否かを顧客に尋ねることができる(たとえば、顧客はVCN212の暗号化のボックスにチェックを入れることができる)。仮想マシン108のインスタンスが起動されると、基礎となるプロトコルがキー管理サービス208から仮想エンジン104に移り、暗号キー204を仮想エンジン104のメモリデバイス112に配信する。暗号キー204は、定期的に(たとえば、毎時、毎日、毎週など)更新することができる、および/または顧客が更新することができる(たとえば、顧客が更新スケジュールを選択もしくは定義する、および/または暗号キー204を直ちに更新することを選択する)。いくつかの実施形態では、顧客は複数のキーを生成し、新しいキーにローテーションする時間になると(たとえば毎日時間Tに)、暗号キー204が更新される(たとえば、各仮想エンジン104は、時間Tにキー管理サービス208に連絡する)。新しいキーはメモリデバイス112において公開される。複数のホストに対してキー同期(たとえば自動同期)を使用することができる(たとえば、各仮想化エンジン104の同期カウンタを使用して、新しいキーをメモリデバイス112において公開してもよい)。いくつかの実施形態では、暗号キー204は、何らかの暗号化スキームに基づいて各仮想化エンジン104上でローテーションされる(たとえば、暗号キー204はリフレッシュされる)。よって、暗号キー204を、VCN212の一部である各仮想化エンジン104に対して、または各仮想化エンジン104上で、同時にプッシュおよび/またはリフレッシュすることができる。キー管理サービス208はVCN212と1つの暗号化関係を有することができるので、キー管理サービス208は異なるデバイスとの関係を維持する必要がない。
顧客がキーを制御するデータを暗号化することによって、データがホストのワイヤ上で暗号化されることを顧客に保証することができる。いくつかの実施形態では、顧客は、トランスポート層セキュリティ(TLS)トンネルを使用してホストと通信することができる。しかしながら、TLSにはバグがあり、セキュリティ問題があり得る。顧客がキー管理サービス208を使用してキーを制御できるようにすることによって、TLSのバグおよびセキュリティ問題を回避または低減することができる。いくつかの実施形態では、TLSトンネルまたは事前共有キーに基づくカスタムセキュリティプロトコルを、NEVFとキー管理サービスとの間のセキュアな通信に使用することができる。
本説明では、暗号キー204がVCN212のレベルで配信され管理されるものとして示されているが、サブネットレベルなどの他のレベルでも同様の処理および技術を使用することができる。たとえば、VCN212のL2またはL3で暗号化キーを使用することができる。
図3は、異なる暗号キー304で複数の顧客をサポートするネットワーク仮想化デバイス100の一実施形態を示す図である。ネットワーク仮想化デバイス100は、第1の仮想化エンジン104-1、第2の仮想化エンジン104-2、第3の仮想化エンジン104-3、および第4の仮想化エンジン104-4を含む。第1の仮想化エンジン104-1は、第1の仮想マシン108-1をインスタンス化するように構成されている。第2の仮想化エンジン104-2は、第2の仮想マシン108-2をインスタンス化するように構成されている。第3の仮想化エンジン104-3は、第3の仮想マシン108-3をインスタンス化するように構成されている。第4の仮想化エンジン104-4は、第4の仮想マシン108-4をインスタンス化するように構成されている。
第1の仮想マシン108-1および第3の仮想マシン108-3は、第1のVCN312-1の一部である。第2の仮想マシン108-2および第4の仮想マシン108-4は、第2のVCN312-2の一部である。第1のVCN312-1は第1の顧客のためのものである。第2のVCN312-2は第2の顧客のためのものであり、第2の顧客は第1の顧客と同じではない。よって、1つのデバイス上の複数のNEVFは、異なる仮想クラウドネットワークに属する仮想マシンをサポートするために使用され得る。
第1の仮想化エンジン104-1および第3の仮想化エンジン104-3は、第1のキー管理サービス208-1から第1の暗号キー304-1を受け取る。第2の仮想化エンジン104-2および第4の仮想化エンジン104-4は、第2のキー管理サービス208-2から第2の暗号キー304-2を受け取る。第2の暗号キー304-2は第1の暗号キー304-1とは異なる。いくつかの実施形態では、第2のVCN312-2の仮想化エンジン104は、第1のVCN312-1の仮想化エンジン104と同じキー管理サービスから第2の暗号キー304-2を受け取る(たとえば、第2のVCN312-2の仮想化エンジン104は、第1のキー管理サービス208-1から第2の暗号キー304-2を受け取る)。
第1の仮想エンジン104-1は、第1の暗号キー304-1を第1のメモリデバイス112-1に格納する。第2の仮想エンジン104-2は、第2の暗号キー304-2を第2のメモリデバイス112-2に格納する。同様に、第3の仮想化エンジン104-3および第4の仮想化エンジン104-4は各々、それぞれの暗号キー304をメモリデバイス112に格納する。ネットワーク仮想化デバイス100のホストは、第1の暗号キー304-1または第2の暗号キー304-2へのアクセスを有していない。仮想マシン108ごとに1つの仮想化エンジン104を有することによって(たとえば、仮想マシン108ごとに1つのメモリデバイス112などの専用リソースを有することによって)、1つのネットワーク仮想化デバイス100が複数の顧客のための複数のVCN312をセキュアにサポートすることが可能になる。各顧客がVCN312についての自身の暗号キー304を管理するので、各顧客のデータをセキュアに管理することができる。さらに、ホストのデータが危険に晒されてもVCN312のデータが危険に晒されることはないので、さらなるセキュリティ信頼性を顧客に提供することができる。
図4は、仮想クラウドネットワークでデータを暗号化するプロセス400の一実施形態を示すフローチャートである。プロセス400は、ステップ402で第1の仮想マシンをインスタンス化することで始まる。たとえば、図1に示されるように第1の仮想化エンジン104-1が第1の仮想マシン108-1をインスタンス化する。ステップ404において、第2の仮想マシンをインスタンス化する。たとえば、図1において第2の仮想化エンジン104-2が第2の仮想マシン108-2をインスタンス化する。図1に示されるように、仮想化エンジン104はメモリデバイス112および暗号プロセッサ116を含む。
第1のキーを第1のメモリデバイスに格納する(ステップ406)。たとえば、図2に示されるように、暗号キー204を第1の仮想化エンジン104-1の第1のメモリデバイス112-1に格納する。第1のキーは、キー管理サービスから取り出す(たとえば、キー管理サービスに要求する、またはキー管理サービスによってプッシュする)ことができる。いくつかの実施形態では、仮想クラウドネットワークの顧客は、第1の仮想化エンジン104-1のホストがキーへのアクセスを有さないように、第1のキーを制御する。
第2のキーを第2のメモリデバイスに格納する(ステップ408)。たとえば、図2に示されるように、暗号キー204を第2の仮想化エンジン104-2の第2のメモリデバイス112-2に格納する。第2のキーは、キー管理サービスから取り出す(たとえば、キー管理サービスに要求する、またはキー管理サービスによってプッシュする)ことができる。いくつかの実施形態では、仮想クラウドネットワークの顧客は、仮想化エンジン104のホストが第2のキーへのアクセスを有さないように、第2のキーを制御する。図2に示されるように、第2のキーは第1のキーと同じであってもよい。図3に示されるように、第2のキーは第1のキーとは異なっていてもよい。たとえば、第2の仮想マシンは第1の仮想マシンとは異なる仮想クラウドネットワークの一部であるため、第2のキーは第1のキーとは異なる場合がある。
ステップ410において、第1のキーを使用して第1の仮想マシンのデータを暗号化する。たとえば、図1において第1の暗号プロセッサ116-1が第1の仮想マシン108-1からの送信データTXを暗号化する。ステップ412において、第2のキーを使用して第2の仮想マシンのデータを暗号化する。たとえば、図1において第2の暗号プロセッサ116-2が第2の仮想マシン108-2からの送信データTXを暗号化する。第1の仮想マシン108-1および第2の仮想マシン108-2が同じ仮想クラウドネットワークの一部である場合、第1の仮想マシン108-1は、同じキーを使用してデータをセキュアに第2の仮想マシン108-2に送信および/または第2の仮想マシン108-2から受信することができる(たとえば図2参照)。しかしながら、図3に示されるように第1のキーが第2のキーとは異なる場合、第1の仮想マシン108-1は、(図3の第1のVCN312-1と第2のVCN312-2との間に何らかの追加の取り決めがない限り)暗号化されたデータを第2の仮想マシン108-2に送信および/または第2の仮想マシン108-2から受信しない。
第1の仮想化エンジン104-1および第2の仮想化エンジン104-2は、同じデバイス上にある(たとえば、サーバ内の同じカードの一部である)。仮想化エンジン104は1つの仮想マシンのみをインスタンス化するために使用されるので、および/または、仮想化エンジンは1つ以上の専用リソースを有するので、ネットワーク仮想化デバイスのホストが第1のキーまたは第2のキーへのアクセスを有することなく、各仮想マシンへのおよび各仮想マシンからのデータをセキュアに暗号化および/または復号することができる。
図5は、複数の暗号キーを使用して複数の仮想クラウドネットワークのデータ暗号化を行うプロセス500の一実施形態を示すフローチャートである。プロセス500は、ステップ502で第1の顧客のための仮想マシンの第1のセットをインスタンス化することで始まる。仮想エンジンの第1のセットを使用して、仮想マシンの第1のセットをインスタンス化する。仮想マシンの第1のセットは、第1の仮想クラウドネットワークの一部である。この実施形態では、1セットは2つ以上を含む。たとえば、図3において第1の仮想化エンジン104-1および第3の仮想化エンジン104-3を使用して第1の仮想マシン108-1および第3の仮想マシン108-3をインスタンス化し、第1の仮想マシン108-1および第3の仮想マシン108-3は第1の仮想クラウドネットワーク312-1の一部である。
第2の顧客のための仮想マシンの第2のセットをインスタンス化する(ステップ504)。仮想エンジンの第2のセットを使用して、仮想マシンの第2のセットをインスタンス化する。仮想マシンの第2のセットは、第2の仮想クラウドネットワークの一部である。たとえば、図3において第2の仮想化エンジン104-2および第4の仮想化エンジン104-4を使用して第2の仮想マシン108-2および第4の仮想マシン108-4をインスタンス化し、第2の仮想マシン108-2および第4の仮想マシン108-4は第2の仮想クラウドネットワーク312-2の一部である。
ステップ506において、第1のキー、たとえば図3の第1の暗号キー304-1を、第1の仮想クラウドネットワークの仮想マシンをインスタンス化するために使用される仮想化エンジンによって受け取る。第2のキー、たとえば図3の第2の暗号キー304-2を、第2の仮想クラウドネットワークの仮想マシンをインスタンス化するために使用される仮想化エンジンによって受け取る(ステップ508)。第1のキーは第1のキー管理サービスから受け取ることができ、第2のキーは第1のキー管理サービスとは異なる第2のキー管理サービスから受け取ることができる。
第1のキーを使用して第1の顧客のデータを暗号化する(ステップ510)。第2のキーを使用して第2の顧客のデータを暗号化する(ステップ512)。ホストは第1のキーおよび/または第2のキーへのアクセスを有していない。
サービスとしてのインフラストラクチャ(Infrastructure as a service:IaaS)は、ある特定のタイプのクラウドコンピューティングである。IaaSは、パブリックネットワーク(たとえばインターネット)を介して仮想化コンピューティングリソースを提供するように構成され得る。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャコンポーネント(たとえば、サーバ、ストレージデバイス、ネットワークノード(たとえばハードウェア)、展開ソフトウェア、プラットフォーム仮想化(たとえばハイパーバイザ層)など)をホストし得る。いくつかの場合において、IaaSプロバイダはまた、それらのインフラストラクチャコンポーネントに付随するさまざまなサービス(たとえば、課金、監視、ロギング、セキュリティ、ロードバランシングおよびクラスタリングなど)を提供し得る。よって、これらのサービスはポリシー駆動型であり得るので、IaaSユーザは、ロードバランシングを駆動するポリシーを実現して、アプリケーションの可用性および性能を維持することが可能であり得る。
いくつかの例では、IaaS顧客は、インターネットなどのワイドエリアネットワーク(WAN)を通じてリソースおよびサービスにアクセスしてもよく、クラウドプロバイダのサービスを利用してアプリケーションスタックの残りの要素をインストールすることができる。たとえば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、各VM上にオペレーティングシステム(OS)をインストールし、データベースなどのミドルウェアを展開し、ワークロードおよびバックアップ用のストレージバケットを作成し、さらにはそのVMに企業向けソフトウェアをインストールすることができる。そして顧客は、プロバイダのサービスを利用して、ネットワークトラフィックのバランシング、アプリケーション問題のトラブルシューティング、パフォーマンスの監視、ディザスタリカバリの管理などを含むさまざまな機能を実行することができる。
ほとんどの場合、クラウドコンピューティングモデルはクラウドプロバイダの参加を使用する。クラウドプロバイダは、IaaSを提供する(たとえば、オファーする、レンタルする、販売する)ことに特化した第三者サービスであってもよいが、そうでなくてもよい。また、エンティティが、プライベートクラウドを展開することを選択して、エンティティ自身のインフラストラクチャサービスのプロバイダになってもよい。
いくつかの例では、IaaS展開は、新しいアプリケーションまたは新しいバージョンのアプリケーションを準備されたアプリケーションサーバなどに置くプロセスである。これは、サーバを準備する(たとえば、ライブラリ、デーモンなどをインストールする)プロセスも含み得る。これは、クラウドプロバイダによって、ハイパーバイザ層(たとえば、サーバ、ストレージ、ネットワークハードウェア、および仮想化)の下で管理されることが多い。よって、顧客は、(たとえば、(たとえば、オンデマンドでスピンアップされ得る)セルフサービス仮想マシン上の)ハンドリング(OS)、ミドルウェア、および/またはアプリケーション展開などを担ってもよい。
いくつかの例では、IaaSプロビジョニングは、使用されるコンピュータまたは仮想ホストを取得すること、さらには、必要なライブラリまたはサービスをそれらにインストールすることを指すことがある。ほとんどの場合、展開はプロビジョニングを含まず、プロビジョニングは最初に実行される必要があり得る。
いくつかの場合において、IaaSプロビジョニングには2つの異なる課題がある。第1に、何かが動作する前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第2に、すべてがプロビジョニングされた後に既存のインフラストラクチャを発展させる(たとえば、新しいサービスを追加する、サービスを変更する、サービスを削除するなど)という課題がある。いくつかの場合において、これらの2つの課題は、インフラストラクチャの構成を宣言的に定義することを可能にすることによって対処され得る。言い換えれば、インフラストラクチャ(たとえば、どのコンポーネントが必要であり、それらがどのようにやり取りするか)は、1つ以上の構成ファイルによって定義され得る。よって、インフラストラクチャの全体的なトポロジ(たとえば、どのリソースがどのリソースに依存するのか、およびそれらが各々どのように連携するのか)は、宣言的に記述され得る。いくつかの例では、トポロジが定義されると、構成ファイルに記述されている異なるコンポーネントを作成および/または管理するワークフローが生成され得る。
いくつかの例では、インフラストラクチャは、相互接続された多くの要素を有し得る。たとえば、コアネットワークとしても知られている1つ以上の仮想プライベートクラウド(VPC)(たとえば、構成可能なおよび/または共有されるコンピューティングリソースの、潜在的にオンデマンドのプール)が存在し得る。いくつかの例では、ネットワークのセキュリティがどのようにセットアップされるかを定義するためにプロビジョニングされる1つ以上のセキュリティグループルール、および1つ以上の仮想マシン(VM)も存在し得る。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングされ得る。所望されるおよび/または追加されるインフラストラクチャ要素が増えるにつれて、インフラストラクチャは漸進的に進化し得る。
いくつかの例では、さまざまな仮想コンピューティング環境にわたってインフラストラクチャコードの展開を可能にするために、連続的な展開技術が採用されてもよい。これに加えて、記載されている技術は、これらの環境内でインフラストラクチャ管理を可能にし得る。いくつかの例では、サービスチームが、1つ以上の、ただし多くの場合多くの、異なるプロダクション環境(たとえば、時には世界全体に及ぶ、多種多様な地理的場所にわたる)に展開されることが所望されるコードを書き込み得る。しかしながら、いくつかの例では、コードが展開されるインフラストラクチャを最初にセットアップしなければならない。いくつかの例では、プロビジョニングは手動で行うことができ、プロビジョニングツールを利用してリソースをプロビジョニングしてもよく、および/または、インフラストラクチャがプロビジョニングされると、展開ツールは、コードを展開するために利用され得る。
図6は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの例示的なパターンを示すブロック図600である。サービスオペレータ602は、仮想クラウドネットワーク(VCN)606とセキュアホストサブネット608とを含み得るセキュアホストテナンシ604に通信可能に結合され得る。いくつかの例では、サービスオペレータ602は、1つ以上のクライアントコンピューティングデバイスを使用していてもよい。クライアントコンピューティングデバイスは、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/またはiOS、Windows Phone、Android、BlackBerry 8、Palm OSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、または他の通信プロトコルに対応する、ポータブルハンドヘルドデバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))またはウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)であってもよい。これに代えて、クライアントコンピューティングデバイスは、例として、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用パーソナルコンピュータであってもよい。クライアントコンピューティングデバイスは、限定されないがたとえばGoogle Chrome OSなどのさまざまなGNU/Linux(登録商標)オペレーティングシステムを含む、さまざまな市販のUNIX(登録商標)またはUNIX(登録商標)系オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであってもよい。これに代えてまたはこれに加えて、クライアントコンピューティングデバイスは、VCN606および/またはインターネットにアクセスできるネットワークを介して通信可能なその他の電子デバイス、たとえば、シンクライアントコンピュータ、インターネット対応のゲームシステム(たとえば、Kinect(登録商標)ジェスチャ入力デバイスを有するまたは有さないMicrosoft Xboxのゲームコンソール)、および/またはパーソナルメッセージングデバイスであってもよい。
VCN606は、ローカルピアリングゲートウェイ(LPG)610を含み得る。LPG610は、SSH VCN612に含まれるLPG610を介してセキュアシェル(SSH)VCN612に通信可能に結合され得る。SSH VCN612はSSHサブネット614を含み得、SSH VCN612は、制御プレーンVCN616に含まれるLPG610を介して制御プレーンVCN616に通信可能に結合され得る。また、SSH VCN612は、LPG610を介してデータプレーンVCN618に通信可能に結合され得る。制御プレーンVCN616およびデータプレーンVCN618は、IaaSプロバイダによって所有および/または操作され得るサービステナンシ619に含まれ得る。
制御プレーンVCN616は、周辺ネットワーク(たとえば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として機能する制御プレーンデミリタライズドゾーン(DMZ)層620を含み得る。DMZベースのサーバは、制限された責任を有し、セキュリティ侵害を抑制するのを助け得る。これに加えて、DMZ層620は、1つ以上のロードバランサ(LB)サブネット622と、アプリサブネット626を含み得る制御プレーンアプリ層624と、データベース(DB)サブネット630(たとえばフロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含み得る制御プレーンデータ層628とを含み得る。制御プレーンDMZ層620に含まれるLBサブネット622は、制御プレーンアプリ層624に含まれるアプリサブネット626と、制御プレーンVCN616に含まれ得るインターネットゲートウェイ634とに通信可能に結合され得、アプリサブネット626は、制御プレーンデータ層628に含まれるDBサブネット630と、サービスゲートウェイ636と、ネットワークアドレス変換(NAT)ゲートウェイ638とに通信可能に結合され得る。制御プレーンVCN616は、サービスゲートウェイ636およびNATゲートウェイ638を含み得る。
制御プレーンVCN616は、アプリサブネット626を含み得るデータプレーンミラーアプリ層640を含み得る。データプレーンミラーアプリ層640に含まれるアプリサブネット626は、計算インスタンス644を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC)642を含み得る。計算インスタンス644は、データプレーンミラーアプリ層640のアプリサブネット626を、データプレーンアプリ層646に含まれ得るアプリサブネット626に通信可能に結合し得る。
データプレーンVCN618は、データプレーンアプリ層646と、データプレーンDMZ層648と、データプレーンデータ層650とを含み得る。データプレーンDMZ層648は、データプレーンアプリ層646のアプリサブネット626およびデータプレーンVCN618のインターネットゲートウェイ634に通信可能に結合され得るLBサブネット622を含み得る。アプリサブネット626は、データプレーンVCN618のサービスゲートウェイ636およびデータプレーンVCN618のNATゲートウェイ638に通信可能に結合され得る。データプレーンデータ層650も、データプレーンアプリ層646のアプリサブネット626に通信可能に結合され得るDBサブネット630を含み得る。
制御プレーンVCN616およびデータプレーンVCN618のインターネットゲートウェイ634は、パブリックインターネット654に通信可能に結合され得るメタデータ管理サービス652に通信可能に結合され得る。パブリックインターネット654は、制御プレーンVCN616およびデータプレーンVCN618のNATゲートウェイ638に通信可能に結合され得る。制御プレーンVCN616およびデータプレーンVCN618のサービスゲートウェイ636は、クラウドサービス656に通信可能に結合され得る。
いくつかの例では、制御プレーンVCN616またはデータプレーンVCN618のサービスゲートウェイ636は、パブリックインターネット654を通過することなくクラウドサービス656にアプリケーションプログラミングインターフェイス(API)呼び出しを行い得る。サービスゲートウェイ636からクラウドサービス656へのAPI呼び出しは、一方向であり得る。すなわち、サービスゲートウェイ636は、クラウドサービス656にAPI呼び出しを行い得、クラウドサービス656は、要求されたデータをサービスゲートウェイ636に送信し得る。しかしながら、クラウドサービス656は、サービスゲートウェイ636へのAPI呼び出しを開始しなくてもよい。
いくつかの例では、セキュアホストテナンシ604は、サービステナンシ619に直接に接続され得、サービステナンシ619は、そうでなければ分離されてもよい。セキュアホストサブネット608は、他の態様では分離されたシステムを介して双方向通信を可能にし得るLPG610を通じてSSHサブネット614と通信し得る。セキュアホストサブネット608をSSHサブネット614に接続することで、セキュアホストサブネット608にサービステナンシ619内の他のエンティティへのアクセスが与えられてもよい。
制御プレーンVCN616は、サービステナンシ619のユーザが所望のリソースをセットアップまたはそうでなければプロビジョニングすることを可能にし得る。制御プレーンVCN616においてプロビジョニングされる所望のリソースは、データプレーンVCN618において展開またはそうでなければ使用されてもよい。いくつかの例では、制御プレーンVCN616は、データプレーンVCN618から分離され得、制御プレーンVCN616のデータプレーンミラーアプリ層640は、データプレーンミラーアプリ層640およびデータプレーンアプリ層646に含まれ得るVNIC642を介して、データプレーンVCN618のデータプレーンアプリ層646と通信し得る。
いくつかの例では、システムのユーザまたは顧客は、メタデータ管理サービス652に要求を通信し得るパブリックインターネット654を通じて、たとえば作成、読出、更新、または削除(CRUD)動作などの要求を行い得る。メタデータ管理サービス652は、インターネットゲートウェイ634を通じて制御プレーンVCN616に要求を通信し得る。この要求は、制御プレーンDMZ層620に含まれるLBサブネット622によって受信され得る。LBサブネット622は、要求が有効であると判断してもよく、この判断に応答して、LBサブネット622は、制御プレーンアプリ層624に含まれるアプリサブネット626に要求を送信し得る。要求が検証され、パブリックインターネット654への呼び出しを使用する場合、パブリックインターネット654への呼び出しは、パブリックインターネット654への呼び出しを行い得るNATゲートウェイ638に送信されてもよい。要求によって格納されることが所望され得るメモリは、DBサブネット630に格納され得る。
いくつかの例では、データプレーンミラーアプリ層640は、制御プレーンVCN616とデータプレーンVCN618との間の直接通信を容易にし得る。たとえば、構成の変更、更新、または他の適切な修正が、データプレーンVCN618に含まれるリソースに適用されることが所望される場合がある。VNIC642を介して、制御プレーンVCN616は、データプレーンVCN618に含まれるリソースと直接通信し得、それによって、構成に対する変更、更新、または他の適切な修正を実行し得る。
いくつかの実施形態では、制御プレーンVCN616およびデータプレーンVCN618は、サービステナンシ619に含まれ得る。この場合、システムのユーザまたは顧客は、制御プレーンVCN616またはデータプレーンVCN618のいずれも所有または操作しなくてもよい。代わりに、IaaSプロバイダが、制御プレーンVCN616およびデータプレーンVCN618を所有または操作してもよく、これらの両方がサービステナンシ619に含まれてもよい。この実施形態は、ユーザまたは顧客が他のユーザのまたは他の顧客のリソースとやり取りすることを防止し得るネットワークの分離を可能にし得る。また、この実施形態は、システムのユーザまたは顧客が、所望のセキュリティレベルを有さない可能性があるパブリックインターネット654に格納のために依存する必要なく、データベースを非公式に格納することを可能にし得る。
他の実施形態では、制御プレーンVCN616に含まれるLBサブネット622は、サービスゲートウェイ636から信号を受信するように構成され得る。この実施形態では、制御プレーンVCN616およびデータプレーンVCN618は、パブリックインターネット654を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成されてもよい。顧客が使用するデータベースはIaaSプロバイダによって制御されてもよく、パブリックインターネット654から分離され得るサービステナンシ619上に格納されてもよいので、IaaSプロバイダの顧客はこの実施形態を所望する場合がある。
図7は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック図700である。サービスオペレータ702(たとえば図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)706(たとえば図6のVCN606)およびセキュアホストサブネット708(たとえば図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ704(たとえば図6のセキュアホストテナンシ604)に通信可能に結合され得る。VCN706は、SSH VCN712に含まれるLPG610を介してセキュアシェル(SSH)VCN712(たとえば図6のSSH VCN612)に通信可能に結合され得るローカルピアリングゲートウェイ(LPG)710(たとえば図6のLPG610)を含み得る。SSH VCN712は、SSHサブネット714(たとえば図6のSSHサブネット614)を含み得、SSH VCN712は、制御プレーンVCN716に含まれるLPG710を介して制御プレーンVCN716(たとえば図6の制御プレーンVCN616)に通信可能に結合され得る。制御プレーンVCN716は、サービステナンシ719(たとえば図6のサービステナンシ619)に含まれ得、データプレーンVCN718(たとえば図6のデータプレーンVCN618)は、システムのユーザまたは顧客によって所有または操作され得る顧客テナンシ721に含まれ得る。
制御プレーンVCN716は、LBサブネット722(たとえば図6のLBサブネット622)を含み得る制御プレーンDMZ層720(たとえば図6の制御プレーンDMZ層620)と、アプリサブネット726(たとえば図6のアプリサブネット626)を含み得る制御プレーンアプリ層724(たとえば図6の制御プレーンアプリ層624)と、(たとえば図6のDBサブネット630と同様の)データベース(DB)サブネット730を含み得る制御プレーンデータ層728(たとえば図6の制御プレーンデータ層628)とを含み得る。制御プレーンDMZ層720に含まれるLBサブネット722は、制御プレーンアプリ層724に含まれるアプリサブネット726と、制御プレーンVCN716に含まれ得るインターネットゲートウェイ734(たとえば図6のインターネットゲートウェイ634)とに通信可能に結合され得、アプリサブネット726は、制御プレーンデータ層728に含まれるDBサブネット730と、サービスゲートウェイ736(たとえば図6のサービスゲートウェイ)と、ネットワークアドレス変換(NAT)ゲートウェイ738(たとえば図6のNATゲートウェイ638)とに通信可能に結合され得る。制御プレーンVCN716は、サービスゲートウェイ736およびNATゲートウェイ738を含み得る。
制御プレーンVCN716は、アプリサブネット726を含み得るデータプレーンミラーアプリ層740(たとえば図6のデータプレーンミラーアプリ層640)を含み得る。データプレーンミラーアプリ層740に含まれるアプリサブネット726は、(たとえば図6の計算インスタンス644と同様の)計算インスタンス744を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC)742(たとえば642のVNIC)を含み得る。計算インスタンス744は、データプレーンミラーアプリ層740に含まれるVNIC742とデータプレーンアプリ層746に含まれるVNIC742とを介して、データプレーンミラーアプリ層740のアプリサブネット726と、データプレーンアプリ層746(たとえば図6のデータプレーンアプリ層646)に含まれ得るアプリサブネット726との間の通信を容易にし得る。
制御プレーンVCN716に含まれるインターネットゲートウェイ734は、パブリックインターネット754(たとえば図6のパブリックインターネット654)に通信可能に結合され得るメタデータ管理サービス752(たとえば図6のメタデータ管理サービス652)に通信可能に結合され得る。パブリックインターネット754は、制御プレーンVCN716に含まれるNATゲートウェイ738に通信可能に結合され得る。制御プレーンVCN716に含まれるサービスゲートウェイ736は、クラウドサービス756(たとえば図6のクラウドサービス656)に通信可能に結合され得る。
いくつかの例では、データプレーンVCN718は、顧客テナンシ721に含まれ得る。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN716を提供してもよく、IaaSプロバイダは、顧客ごとに、サービステナンシ719に含まれる固有の計算インスタンス744をセットアップしてもよい。各計算インスタンス744は、サービステナンシ719に含まれる制御プレーンVCN716と顧客テナンシ721に含まれるデータプレーンVCN718との間の通信を可能にし得る。計算インスタンス744は、サービステナンシ719に含まれる制御プレーンVCN716においてプロビジョニングされるリソースが、顧客テナンシ721に含まれるデータプレーンVCN718において展開またはそうでなければ使用されることを可能にし得る。
他の例では、IaaSプロバイダの顧客は、顧客テナンシ721に在住するデータベースを有してもよい。この例では、制御プレーンVCN716は、アプリサブネット726を含み得るデータプレーンミラーアプリ層740を含み得る。データプレーンミラーアプリ層740は、データプレーンVCN718に常駐し得るが、データプレーンミラーアプリ層740は、データプレーンVCN718に在住しなくてもよい。すなわち、データプレーンミラーアプリ層740は、顧客テナンシ721へのアクセスを有してもよいが、データプレーンミラーアプリ層740は、データプレーンVCN718に存在しなくてもよく、またはIaaSプロバイダの顧客によって所有もしくは操作されなくてもよい。データプレーンミラーアプリ層740は、データプレーンVCN718への呼び出しを行うように構成されてもよいが、制御プレーンVCN716に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN716においてプロビジョニングされるデータプレーンVCN718内のリソースを展開またはそうでなければ使用することを所望する場合があり、データプレーンミラーアプリ層740は、顧客のリソースの所望の展開または他の使用を容易にし得る。
いくつかの実施形態では、IaaSプロバイダの顧客は、データプレーンVCN718にフィルタを適用し得る。この実施形態では、顧客は、データプレーンVCN718が何にアクセスできるかを判断し得、顧客は、データプレーンVCN718からのパブリックインターネット754へのアクセスを制限してもよい。IaaSプロバイダは、データプレーンVCN718の任意の外部ネットワークまたはデータベースへのアクセスにフィルタを適用することまたはそうでなければ当該アクセスを制御することができなくてもよい。顧客テナンシ721に含まれるデータプレーンVCN718上に顧客によってフィルタおよび制御を適用することで、データプレーンVCN718を他の顧客およびパブリックインターネット754から分離するのを助けることができる。
いくつかの実施形態では、パブリックインターネット754上、制御プレーンVCN716上、またはデータプレーンVCN718上に存在しない場合があるサービスにアクセスするために、クラウドサービス756がサービスゲートウェイ736によって呼び出され得る。クラウドサービス756と制御プレーンVCN716またはデータプレーンVCN718との間の接続は、ライブまたは連続的でなくてもよい。クラウドサービス756は、IaaSプロバイダによって所有または操作される異なるネットワーク上に存在してもよい。クラウドサービス756は、サービスゲートウェイ736から呼び出しを受信するように構成されてもよく、パブリックインターネット754から呼び出しを受信しないように構成されてもよい。いくつかのクラウドサービス756は、他のクラウドサービス756から分離されてもよく、制御プレーンVCN716は、制御プレーンVCN716と同じリージョンにない場合があるクラウドサービス756から分離されてもよい。たとえば、制御プレーンVCN716は「リージョン1」に位置してもよく、クラウドサービス「展開6」はリージョン1および「リージョン2」に位置してもよい。展開6への呼び出しが、リージョン1に位置する制御プレーンVCN716に含まれるサービスゲートウェイ736によって行われる場合、この呼び出しはリージョン1の展開6に送信されてもよい。この例では、制御プレーンVCN716、またはリージョン1の展開6は、リージョン2の展開6に通信可能に結合されなくてもよく、またはそうでなければリージョン2の展開6と通信していなくてもよい。
図8は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック図800である。サービスオペレータ802(たとえば図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)806(たとえば図6のVCN606)およびセキュアホストサブネット808(たとえば図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ804(たとえば図6のセキュアホストテナンシ604)に通信可能に結合され得る。VCN806は、SSH VCN812に含まれるLPG810を介してSSH VCN812(たとえば図6のSSH VCN612)に通信可能に結合され得るLPG810(たとえば図6のLPG610)を含み得る。SSH VCN812は、SSHサブネット814(たとえば図6のSSHサブネット614)を含み得、SSH VCN812は、制御プレーンVCN816に含まれるLPG810を介して制御プレーンVCN816(たとえば図6の制御プレーンVCN616)に通信可能に結合され得、データプレーンVCN818に含まれるLPG810を介してデータプレーンVCN818(たとえば図6のデータプレーン618)に通信可能に結合され得る。制御プレーンVCN816およびデータプレーンVCN818は、サービステナンシ819(たとえば図6のサービステナンシ619)に含まれ得る。
制御プレーンVCN816は、ロードバランサ(LB)サブネット822(たとえば図6のLBサブネット622)を含み得る制御プレーンDMZ層820(たとえば図6の制御プレーンDMZ層620)と、(たとえば図6のアプリサブネット626と同様の)アプリサブネット826を含み得る制御プレーンアプリ層824(たとえば図6の制御プレーンアプリ層624)と、DBサブネット830を含み得る制御プレーンデータ層828(たとえば図6の制御プレーンデータ層628)とを含み得る。制御プレーンDMZ層820に含まれるLBサブネット822は、制御プレーンアプリ層824に含まれるアプリサブネット826と、制御プレーンVCN816に含まれ得るインターネットゲートウェイ834(たとえば図6のインターネットゲートウェイ634)とに通信可能に結合され得、アプリサブネット826は、制御プレーンデータ層828に含まれるDBサブネット830と、サービスゲートウェイ836(たとえば図6のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ838(たとえば図6のNATゲートウェイ638)とに通信可能に結合され得る。制御プレーンVCN816は、サービスゲートウェイ836およびNATゲートウェイ838を含み得る。
データプレーンVCN818は、データプレーンアプリ層846(たとえば図6のデータプレーンアプリ層646)と、データプレーンDMZ層848(たとえば図6のデータプレーンDMZ層648)と、データプレーンデータ層850(たとえば図6のデータプレーンデータ層650)とを含み得る。データプレーンDMZ層848は、データプレーンアプリ層846の信頼できるアプリサブネット860および信頼できないアプリサブネット862と、データプレーンVCN818に含まれるインターネットゲートウェイ834とに通信可能に結合され得るLBサブネット822を含み得る。信頼できるアプリサブネット860は、データプレーンVCN818に含まれるサービスゲートウェイ836と、データプレーンVCN818に含まれるNATゲートウェイ838と、データプレーンデータ層850に含まれるDBサブネット830とに通信可能に結合され得る。信頼できないアプリサブネット862は、データプレーンVCN818に含まれるサービスゲートウェイ836と、データプレーンデータ層850に含まれるDBサブネット830とに通信可能に結合され得る。データプレーンデータ層850は、データプレーンVCN818に含まれるサービスゲートウェイ836に通信可能に結合され得るDBサブネット830を含み得る。
信頼できないアプリサブネット862は、テナント仮想マシン(VM)866(1)~(N)に通信可能に結合され得る1つ以上のプライマリVNIC864(1)~(N)を含み得る。各テナントVM866(1)~(N)は、それぞれの顧客テナンシ870(1)~(N)に含まれ得るそれぞれのコンテナエグレスVCN868(1)~(N)に含まれ得るそれぞれのアプリサブネット867(1)~(N)に通信可能に結合され得る。それぞれのセカンダリVNIC872(1)~(N)は、データプレーンVCN818に含まれる信頼できないアプリサブネット862とコンテナエグレスVCN868(1)~(N)に含まれるアプリサブネットとの間の通信を容易にし得る。各コンテナエグレスVCN868(1)~(N)は、パブリックインターネット854(たとえば図6のパブリックインターネット654)に通信可能に結合され得るNATゲートウェイ838を含み得る。
制御プレーンVCN816に含まれ、データプレーンVCN818に含まれるインターネットゲートウェイ834は、パブリックインターネット854に通信可能に結合され得るメタデータ管理サービス852(たとえば図6のメタデータ管理システム652)に通信可能に結合され得る。パブリックインターネット854は、制御プレーンVCN816に含まれ、データプレーンVCN818に含まれるNATゲートウェイ838に通信可能に結合され得る。制御プレーンVCN816に含まれ、データプレーンVCN818に含まれるサービスゲートウェイ836は、クラウドサービス856に通信可能に結合され得る。
いくつかの実施形態では、データプレーンVCN818は、顧客テナンシ870と統合され得る。この統合は、コードの実行時のサポートを望む場合など、いくつかの場合においてIaaSプロバイダの顧客にとって有用または望ましいことがある。顧客は、破壊的であり得る、他の顧客リソースと通信し得る、またはそうでなければ望ましくない影響を引き起こし得る、実行すべきコードを提供し得る。これに応答して、IaaSプロバイダは、顧客がIaaSプロバイダに与えたコードを実行するか否かを判断してもよい。
いくつかの例では、IaaSプロバイダの顧客は、IaaSプロバイダへの一時的なネットワークアクセスを許可し、ある機能をデータプレーン層アプリ846にアタッチするよう要求してもよい。機能を実行するためのコードはVM866(1)~(N)において実行されてもよく、当該コードは、データプレーンVCN818上の他のどこかで動作するように構成されなくてもよい。各VM866(1)~(N)は1つの顧客テナンシ870に接続されてもよい。VM866(1)~(N)に含まれるそれぞれのコンテナ871(1)~(N)はコードを実行するように構成されてもよい。この場合、二重分離があってもよく(たとえば、コンテナ871(1)~(N)はコードを実行し、コンテナ871(1)~(N)は、信頼できないアプリサブネット862に含まれる少なくともVM866(1)~(N)に含まれてもよい)、これは、誤ったコードまたはそうでなければ望ましくないコードがIaaSプロバイダのネットワーを損傷すること、または異なる顧客のネットワークを損傷することを防ぐのを助け得る。コンテナ871(1)~(N)は、顧客テナンシ870に通信可能に結合されてもよく、顧客テナンシ870との間でデータを送信または受信するように構成されてもよい。コンテナ871(1)~(N)は、データプレーンVCN818内の任意の他のエンティティとの間でデータを送信または受信するように構成されなくてもよい。コードの実行が完了すると、IaaSプロバイダはコンテナ871(I)~(N)をキルするかまたはそうでなければ廃棄してもよい。
いくつかの実施形態では、信頼できるアプリサブネット860は、IaaSプロバイダによって所有または操作され得るコードを実行し得る。この実施形態では、信頼できるアプリサブネット860は、DBサブネット830に通信可能に結合されてもよく、DBサブネット830においてCRUD動作を実行するように構成されてもよい。信頼できないアプリサブネット862は、DBサブネット830に通信可能に結合されてもよいが、この実施形態では、信頼できないアプリサブネットは、DBサブネット830において読出動作を実行するように構成されてもよい。各顧客のVM866(1)~(N)に含まれ得、顧客からのコードを実行し得るコンテナ871(1)~(N)は、DBサブネット830に通信可能に結合されなくてもよい。
他の実施形態では、制御プレーンVCN816およびデータプレーンVCN818は、直接通信可能に結合されなくてもよい。この実施形態では、制御プレーンVCN816とデータプレーンVCN818との間に直接通信がなくてもよい。しかしながら、通信は、少なくとも1つの方法を通して間接的に行われ得る。制御プレーンVCN816とデータプレーンVCN818との間の通信を容易にし得るLPG810が、IaaSプロバイダによって確立されてもよい。別の例では、制御プレーンVCN816またはデータプレーンVCN818は、サービスゲートウェイ836を介してクラウドサービス856への呼び出しを行い得る。たとえば、制御プレーンVCN816からクラウドサービス856への呼び出しは、データプレーンVCN818と通信し得るサービスの要求を含み得る。
図9は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック図900である。サービスオペレータ902(たとえば図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)906(たとえば図6のVCN606)およびセキュアホストサブネット908(たとえば図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ904(たとえば図6のセキュアホストテナンシ604)に通信可能に結合され得る。VCN906は、SSH VCN912に含まれるLPG910を介してSSH VCN912(たとえば図6のSSH VCN612)に通信可能に結合され得るLPG910(たとえば図6のLPG610)を含み得る。SSH VCN912は、SSHサブネット914(たとえば図6のSSHサブネット614)を含み得、SSH VCN912は、制御プレーンVCN916に含まれるLPG910を介して制御プレーンVCN916(たとえば図6の制御プレーンVCN616)に通信可能に結合され得、データプレーンVCN918に含まれるLPG910を介してデータプレーンVCN918(たとえば図6のデータプレーン618)に通信可能に結合され得る。制御プレーンVCN916およびデータプレーンVCN918は、サービステナンシ919(たとえば図6のサービステナンシ619)に含まれ得る。
制御プレーンVCN916は、LBサブネット922(たとえば図6のLBサブネット622)を含み得る制御プレーンDMZ層920(たとえば図6の制御プレーンDMZ層620)と、アプリサブネット926(たとえば図6のアプリサブネット626)を含み得る制御プレーンアプリ層924(たとえば図6の制御プレーンアプリ層624)と、DBサブネット930(たとえば図8のDBサブネット830)を含み得る制御プレーンデータ層928(たとえば図6の制御プレーンデータ層628)とを含み得る。制御プレーンDMZ層920に含まれるLBサブネット922は、制御プレーンアプリ層924に含まれるアプリサブネット926と、制御プレーンVCN916に含まれ得るインターネットゲートウェイ934(たとえば図6のインターネットゲートウェイ634)とに通信可能に結合され得、アプリサブネット926は、制御プレーンデータ層928に含まれるDBサブネット930と、サービスゲートウェイ936(たとえば図6のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ938(たとえば図6のNATゲートウェイ638)とに通信可能に結合され得る。制御プレーンVCN916は、サービスゲートウェイ936およびNATゲートウェイ938を含み得る。
データプレーンVCN918は、データプレーンアプリ層946(たとえば図6のデータプレーンアプリ層646)と、データプレーンDMZ層948(たとえば図6のデータプレーンDMZ層648)と、データプレーンデータ層950(たとえば図6のデータプレーンデータ層650)とを含み得る。データプレーンDMZ層948は、データプレーンアプリ層946の信頼できるアプリサブネット960(たとえば図8の信頼できるアプリサブネット860)および信頼できないアプリサブネット962(たとえば図8の信頼できないアプリサブネット862)と、データプレーンVCN918に含まれるインターネットゲートウェイ934とに通信可能に結合され得るLBサブネット922を含み得る。信頼できるアプリサブネット960は、データプレーンVCN918に含まれるサービスゲートウェイ936と、データプレーンVCN918に含まれるNATゲートウェイ938と、データプレーンデータ層950に含まれるDBサブネット930とに通信可能に結合され得る。信頼できないアプリサブネット962は、データプレーンVCN918に含まれるサービスゲートウェイ936と、データプレーンデータ層950に含まれるDBサブネット930とに通信可能に結合され得る。データプレーンデータ層950は、データプレーンVCN918に含まれるサービスゲートウェイ936に通信可能に結合され得るDBサブネット930を含み得る。
信頼できないアプリサブネット962は、信頼できないアプリサブネット962内に常駐するテナント仮想マシン(VM)966(1)~(N)に通信可能に結合され得るプライマリVNIC964(1)~(N)を含み得る。各テナントVM966(1)~(N)は、それぞれのコンテナ967(1)~(N)においてコードを実行し得、コンテナエグレスVCN968に含まれ得るデータプレーンアプリ層946に含まれ得るアプリサブネット926に通信可能に結合され得る。それぞれのセカンダリVNIC972(1)~(N)は、データプレーンVCN918に含まれる信頼できないアプリサブネット962とコンテナエグレスVCN968に含まれるアプリサブネットとの間の通信を容易にし得る。コンテナエグレスVCNは、パブリックインターネット954(たとえば図6のパブリックインターネット654)に通信可能に結合され得るNATゲートウェイ938を含み得る。
制御プレーンVCN916に含まれ、データプレーンVCN918に含まれるインターネットゲートウェイ934は、パブリックインターネット954に通信可能に結合され得るメタデータ管理サービス952(たとえば図6のメタデータ管理システム652)に通信可能に結合され得る。パブリックインターネット954は、制御プレーンVCN916に含まれ、データプレーンVCN918に含まれるNATゲートウェイ938に通信可能に結合され得る。制御プレーンVCN916に含まれ、データプレーンVCN918に含まれるサービスゲートウェイ936は、クラウドサービス956に通信可能に結合され得る。
いくつかの例では、図9のブロック図900のアーキテクチャによって示されるパターンは、図8のブロック図800のアーキテクチャによって示されるパターンの例外と見なされてもよく、IaaSプロバイダが顧客と直接通信できない場合(たとえば切断された領域)、IaaSプロバイダの顧客にとって望ましいことがある。顧客ごとにVM966(1)~(N)に含まれるそれぞれのコンテナ967(1)~(N)は、顧客によってリアルタイムでアクセスされ得る。コンテナ967(1)~(N)は、コンテナエグレスVCN968に含まれ得るデータプレーンアプリ層946のアプリサブネット926に含まれるそれぞれのセカンダリVNIC972(1)~(N)への呼び出しを行うように構成されてもよい。セカンダリVNIC972(1)~(N)はNATゲートウェイ938に呼び出しを送信し得、NATゲートウェイ938はこの呼び出しをパブリックインターネット954に送信してもよい。この例では、顧客によってリアルタイムでアクセスされ得るコンテナ967(1)~(N)は、制御プレーンVCN916から分離され得、データプレーンVCN918に含まれる他のエンティティから分離され得る。コンテナ967(1)~(N)は、他の顧客からのリソースからも分離されてもよい。
他の例では、顧客は、コンテナ967(1)~(N)を使用してクラウドサービス956を呼び出し得る。この例では、顧客は、コンテナ967(1)~(N)において、クラウドサービス956にサービスを要求するコードを実行し得る。コンテナ967(1)~(N)はこの要求をセカンダリVNIC972(1)~(N)に送信し得、セカンダリVNIC972(1)~(N)はその要求をNATゲートウェイに送信し得、NATゲートウェイはその要求をパブリックインターネット954に送信し得る。パブリックインターネット954は、インターネットゲートウェイ934を介して、制御プレーンVCN916に含まれるLBサブネット922に要求を送信し得る。要求が有効であると判断したことに応答して、LBサブネットはその要求をアプリサブネット926に送信し得、アプリサブネット926はその要求をサービスゲートウェイ936を介してクラウドサービス956に送信し得る。
なお、図に示されるIaaSアーキテクチャ600,700,800,900は、図示される以外のコンポーネントを有してもよい。さらに、図示される実施形態は、本開示の実施形態を組み込み得るクラウドインフラストラクチャシステムのいくつかの例に過ぎない。いくつかの他の実施形態では、IaaSシステムは、図示されるよりも多いもしくは少ないコンポーネントを有してもよく、2つ以上のコンポーネントを組み合わせてよく、または、コンポーネントの異なる構成もしくは配置を有してもよい。
特定の実施形態では、本明細書に記載されているIaaSシステムは、セルフサービスであり、サブスクリプションベースであり、弾力的にスケーラブルであり、信頼性が高く、可用性が高く、セキュアなやり方で顧客に与えられる、アプリケーション、ミドルウェア、およびデータベースサービス製品一式を含み得る。このようなIaaSシステムの一例は、本願の譲受人が提供するオラクルクラウドインフラストラクチャ(Oracle Cloud Infrastructure:OCI)である。
図10は、本開示のさまざまな実施形態が実現され得る例示的なコンピュータシステム1000を示す。システム1000は、上述のコンピュータシステムのうちのいずれかを実現するために使用され得る。図示されるように、コンピュータシステム1000は、バスサブシステム1002を介していくつかの周辺サブシステムと通信する処理ユニット1004を含む。これらの周辺サブシステムは、処理加速ユニット1006と、I/Oサブシステム1008と、ストレージサブシステム1018と、通信サブシステム1024とを含み得る。ストレージサブシステム1018は、有形のコンピュータ読取可能記憶媒体1022およびシステムメモリ1010を含む。
バスサブシステム1002は、コンピュータシステム1000のさまざまなコンポーネントおよびサブシステムを意図されるように互いに通信させるためのメカニズムを提供する。バスサブシステム1002は1つのバスとして概略的に示されているが、バスサブシステムの代替の実施形態は複数のバスを利用してもよい。バスサブシステム1002は、さまざまなバスアーキテクチャのうちのいずれかを用いる、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造されるメザニンバスとして実現され得る周辺コンポーネントインターコネクト(PCI)バスを含んでもよい。
1つ以上の集積回路(たとえば従来のマイクロプロセッサまたはマイクロコントローラ)として実現され得る処理ユニット1004は、コンピュータシステム1000の動作を制御する。1つ以上のプロセッサが処理ユニット1004に含まれてもよい。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含んでもよい。特定の実施形態では、処理ユニット1004は、シングルコアプロセッサもしくはマルチコアプロセッサが各処理ユニットに含まれる1つ以上の独立した処理ユニット1032および/または1034として実現されてもよい。他の実施形態では、処理ユニット1004はまた、2つのデュアルコアプロセッサを1つのチップに統合することによって形成されるクアッドコア処理ユニットとして実現されてもよい。
さまざまな実施形態では、処理ユニット1004は、プログラムコードに応答してさまざまなプログラムを実行し得、同時に実行される複数のプログラムまたはプロセスを維持し得る。任意の所与の時間に、実行すべきプログラムコードの一部またはすべてが、プロセッサ1004および/またはストレージサブシステム1018に常駐し得る。適切なプログラミングを通して、プロセッサ1004は上記のさまざまな機能を提供し得る。コンピュータシステム1000はこれに加えて、デジタル信号プロセッサ(DSP)、特殊目的プロセッサ、および/またはその他を含み得る処理加速ユニット1006を含んでもよい。
I/Oサブシステム1008は、ユーザインターフェイス入力デバイスおよびユーザインターフェイス出力デバイスを含み得る。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システム付きの音声入力デバイス、マイク、および他のタイプの入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、たとえば、ユーザが、ジェスチャおよび発話コマンドを使用するナチュラルユーザインターフェイスを通して、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力デバイスを制御し、それとやり取りすることを可能にする、Microsoft Kinect(登録商標)モーションセンサなどのモーション感知および/またはジェスチャ認識デバイスを含み得る。ユーザインターフェイス入力デバイスはまた、ユーザからの目の動き(たとえば、写真撮影中および/またはメニュー選択中の「まばたき」)を検出し、目のジェスチャを入力デバイス(たとえばGoogle Glass(登録商標))への入力として変換する、Google Glass(登録商標)まばたき検出器などのアイジェスチャ認識デバイスを含み得る。これに加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを通して音声認識システム(たとえばSiri(登録商標)ナビゲータ)とやり取りすることを可能にする音声認識感知デバイスを含み得る。
ユーザインターフェイス入力デバイスはまた、限定されないが、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレイヤー、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスを含み得る。これに加えて、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影装置、磁気共鳴撮像装置、ポジトロン断層撮影装置、医療用超音波検査装置などの医療用撮像入力デバイスを含み得る。ユーザインターフェイス入力デバイスはまた、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスを含み得る。
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、表示灯、または音声出力デバイスなどの非視覚的ディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを用いるものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般的に、「出力デバイス」という語を使用する場合は、コンピュータシステム1000からユーザまたは他のコンピュータに情報を出力するための可能なすべてのタイプのデバイスおよびメカニズムを含むことを意図している。たとえば、ユーザインターフェイス出力デバイスは、限定されないが、モニタ、プリンタ、スピーカ、ヘッドホン、カーナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムなどの、テキスト、図形、および音声/映像情報を視覚的に伝えるさまざまなディスプレイデバイスを含み得る。
コンピュータシステム1000は、現在はシステムメモリ1010内にあるものとして示されているソフトウェア要素を含むストレージサブシステム1018を含み得る。システムメモリ1010は、処理ユニット1004上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されたデータを格納し得る。
コンピュータシステム1000の構成およびタイプに応じて、システムメモリ1010は、揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(読出専用メモリ(ROM)、フラッシュメモリなど)であってもよい。RAMは典型的には、処理ユニット1004に直ちにアクセス可能である、ならびに/または処理ユニット1004によって現在操作および実行されている、データおよび/またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ1010は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実現例では、起動中などにコンピュータシステム1000内の要素間で情報を転送するのを助ける基本的なルーチンを含む基本入出力システム(BIOS)が、典型的にはROMに格納されてもよい。限定ではなく例として、システムメモリ1010はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1012と、プログラムデータ1014と、オペレーティングシステム1016とを示している。例として、オペレーティングシステム1016は、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステム、さまざまな市販のUNIX(登録商標)またはUNIX(登録商標)系オペレーティングシステム(限定されないがさまざまなGNU/Linux(登録商標)オペレーティングシステム、Google Chrome(登録商標)OSなどを含む)、および/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)10 OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
ストレージサブシステム1018はまた、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ読取可能記憶媒体を提供し得る。プロセッサによって実行されると上記機能を提供するソフトウェア(プログラム、コードモジュール、命令)がストレージサブシステム1018に格納され得る。これらのソフトウェアモジュールまたは命令は、処理ユニット1004によって実行され得る。ストレージサブシステム1018はまた、本開示に従って使用されるデータを格納するためのリポジトリを提供し得る。
ストレージサブシステム1000はまた、コンピュータ読取可能記憶媒体1022にさらに接続され得るコンピュータ読取可能記憶媒体リーダ1020を含み得る。システムメモリ1010とともに、また、オプションとしてシステムメモリ1010と組み合わされて、コンピュータ読取可能記憶媒体1022は、コンピュータ読取可能情報を一時的におよび/またはより恒久的に含む、格納する、送信する、および取り出すための、遠隔の、ローカルな、固定された、および/またはリムーバブルな記憶装置に記憶媒体を加えたものを包括的に表し得る。
コードまたはコードの一部を含むコンピュータ読取可能記憶媒体1022はまた、限定されないが、情報の格納および/または送信のための任意の方法または技術で実現される、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体などの、記憶媒体および通信媒体を含む、当該技術において周知のまたは使用されている任意の適切な媒体を含み得る。これは、RAM、ROM、電子的に消去可能プログラマブルROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ読取可能媒体などの、有形のコンピュータ読取可能記憶媒体を含み得る。これはまた、データ信号、データ伝送、または所望の情報を送信するために使用することができ、コンピューティングシステム1000によってアクセスすることができる任意の他の媒体などの、非有形のコンピュータ読取可能媒体を含み得る。
例として、コンピュータ読取可能記憶媒体1022は、非リムーバブル不揮発性磁気媒体に対する読出および書込を行うハードディスクドライブ、リムーバブル不揮発性磁気ディスクに対する読出および書込を行う磁気ディスクドライブ、ならびに、CD ROM、DVD、およびBlu-Ray(登録商標)ディスク、または他の光学媒体などのリムーバブル不揮発性光ディスクに対する読出および書込を行う光ディスクドライブを含み得る。コンピュータ読取可能記憶媒体1022は、限定されないが、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得る。コンピュータ読取可能記憶媒体1022はまた、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDを含み得る。ディスクドライブおよびこれらに関連付けられたコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージをコンピュータシステム1000に提供し得る。
通信サブシステム1024は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1024は、他のシステムとコンピュータシステム1000との間でデータを送受信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム1024は、コンピュータシステム1000がインターネットを介して1つ以上のデバイスに接続することを可能にし得る。いくつかの実施形態では、通信サブシステム1024は、(たとえば携帯電話技術、3G、4GもしくはEDGE(enhanced data rates for global evolution)などの高度データネットワーク技術、WiFi(登録商標)(IEEE 802.11系規格、または他の移動通信技術、またはそれらの任意の組み合わせを使用して)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)トランシーバーコンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、および/または他のコンポーネントを含み得る。いくつかの実施形態では、通信サブシステム1024は、無線インターフェイスに加えてまたはその代わりに、有線ネットワーク接続性(たとえばイーサネット)を提供し得る。
いくつかの実施形態では、通信サブシステム1024はまた、コンピュータシステム1000を使用し得る1人以上のユーザの代わりに、構造化および/または非構造化データフィード1026、イベントストリーム1028、イベント更新1030などの形態の入力通信を受信してもよい。
例として、通信サブシステム1024は、Twitter(登録商標)フィード、Facebook(登録商標)更新、Rich Site Summary(RSS)フィードなどのウェブフィード、および/または1つ以上の第三者情報源からのリアルタイム更新などの、ソーシャルネットワークおよび/または他の通信サービスのユーザからのデータフィード1026をリアルタイムで受信するように構成されてもよい。
これに加えて、通信サブシステム1024はまた、明確な終わりがなく本質的に連続的または無限であってもよい、リアルタイムイベントのイベントストリーム1028および/またはイベント更新1030を含み得る、連続データストリームの形態のデータを受信するように構成されてもよい。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などが挙げられ得る。
通信サブシステム1024はまた、構造化および/または非構造化データフィード1026、イベントストリーム1028、イベント更新1030などを、コンピュータシステム1000に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
コンピュータシステム1000は、ハンドヘルドポータブルデバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他任意のデータ処理システムを含む、さまざまなタイプのうちの1つとすることができる。
コンピュータおよびネットワークには常に変化しているという性質があるので、図に示されるコンピュータシステム1000の説明は、具体的な一例を意図しているに過ぎない。図に示されるシステムよりも多いまたは少ないコンポーネントを有するその他多数の構成が可能である。たとえば、カスタマイズされたハードウェアが使用されてもよく、および/または特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、もしくは組み合わせで実現されてもよい。さらに、ネットワーク入出力デバイスなどの他のコンピューティングデバイスに対する接続が採用されてもよい。本明細書に提供されている開示および教示に基づいて、当業者は、各種実施形態を実現するための他のやり方および/または方法を理解するであろう。
クラウドサービスという語は、クラウドサービスプロバイダ(CSP)によって提供されるシステムおよびインフラストラクチャ(クラウドインフラストラクチャ)を使用してCSPによってユーザまたは顧客がオンデマンドで(たとえばサブスクリプションモデルを介して)利用できるようになるサービスを指すために一般に用いられる。典型的に、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは別のものである。よって、顧客は、CSPによって提供されるクラウドサービスを、それらのサービスのための別個のハードウェアおよびソフトウェアリソースを購入する必要なしに利用することができる。クラウドサービスは、加入している顧客がそれらのサービスを提供するのに使用されるインフラストラクチャの調達に投資する必要なしに、アプリケーションおよびコンピューティングリソースへの容易でスケーラブルなアクセスを顧客に提供するように設計されている。
さまざまなタイプのクラウドサービスを提供するいくつかのクラウドサービスプロバイダがある。サービスとしてのソフトウェア(Software-as-a-Service:SaaS)、サービスとしてのプラットフォーム(Platform-as-a-Service:PaaS)、サービスとしてのインフラストラクチャ(Infrastructure-as-a-Service:IaaS)などを含むさまざまな異なるタイプまたはモデルのクラウドサービスがある。
顧客は、CSPによって提供される1つ以上のクラウドサービスに加入することができる。顧客は、個人、組織、企業などの任意のエンティティとすることができる。顧客がCSPによって提供されるサービスに加入または登録すると、その顧客のテナンシまたはアカウントが作成される。そして、顧客はこのアカウントを介して、アカウントに関連付けられた、加入した1つ以上のクラウドリソースにアクセスすることができる。
上述のように、サービスとしてのインフラストラクチャ(IaaS)は、ある特定のタイプのクラウドコンピューティングサービスである。IaaSモデルでは、CSPは、顧客が自身のカスタマイズ可能なネットワークを構築し、顧客リソースを展開するために使用することができるインフラストラクチャ(クラウドサービスプロバイダインフラストラクチャまたはCSPIと呼ばれる)を提供する。よって、顧客のリソースおよびネットワークは、CSPによって提供されるインフラストラクチャによって分散環境でホストされている。これは、顧客のリソースおよびネットワークが顧客によって提供されるインフラストラクチャによってホストされている従来のコンピューティングとは異なる。
CSPIは、さまざまなホストマシンを含む相互接続された高性能の計算リソースと、メモリリソースと、基幹ネットワークまたはアンダーレイネットワークとも呼ばれる物理ネットワークを形成するネットワークリソースとを含み得る。CSPIのリソースは、1つ以上の地理的領域に地理的に分散され得る1つ以上のデータセンターに分散され得る。これらの物理リソースによって仮想化ソフトウェアが実行されて、仮想化分散環境が提供され得る。仮想化は、物理ネットワーク上にオーバーレイネットワーク(ソフトウェアベースネットワーク、ソフトウェア定義ネットワーク、または仮想ネットワークとしても知られている)を作成する。CSPI物理ネットワークは、物理ネットワークの上に1つ以上のオーバーレイネットワークまたは仮想ネットワークを作成するための基礎を提供する。仮想ネットワークまたはオーバーレイネットワークは、1つ以上の仮想クラウドネットワーク(VCN)を含み得る。仮想ネットワークは、ソフトウェア仮想化技術(たとえば、ハイパーバイザ、ネットワーク仮想化デバイス(NVD)(たとえばスマートNIC)によって実行される機能、トップオブラック(TOR)スイッチ、NVDによって実行される1つ以上の機能を実現するスマートTOR、および他のメカニズム)を使用して実現されて、物理ネットワークの上で動作可能なネットワーク抽象化層を作成する。仮想ネットワークは、ピアツーピアネットワーク、IPネットワークなどを含むさまざまな形態を取ることができる。仮想ネットワークは典型的に、レイヤ3IPネットワークまたはレイヤ2VLANのいずれかである。この仮想ネットワーキングまたはオーバーレイネットワーキングの方法は、しばしば仮想レイヤ3ネットワーキングまたはオーバーレイレイヤ3ネットワーキングと呼ばれる。仮想ネットワークのために開発されたプロトコルの例としては、IP-in-IP(または汎用ルーティングカプセル化(GRE))、仮想拡張可能LAN(VXLAN-IETF RFC7348)、仮想プライベートネットワーク(VPN)(たとえばMPLSレイヤ3仮想プライベートネットワーク(RFC4364))、VMwareのNSX、GENEVE(汎用ネットワーク仮想化カプセル化)などが挙げられる。
IaaSの場合、CSPによって提供されるインフラストラクチャ(CSPI)は、パブリックネットワーク(たとえばインターネット)を介して仮想化コンピューティングリソースを提供するように構成され得る。IaaSモデルでは、クラウドコンピューティングサービスプロバイダは、インフラストラクチャコンポーネント(たとえば、サーバ、ストレージデバイス、ネットワークノード(たとえばハードウェア)、展開ソフトウェア、プラットフォーム仮想化(たとえばハイパーバイザ層)など)をホストし得る。いくつかの場合において、IaaSプロバイダはまた、それらのインフラストラクチャコンポーネントに付随するさまざまなサービス(たとえば、課金、監視、ロギング、セキュリティ、ロードバランシングおよびクラスタリングなど)を提供してもよい。よって、これらのサービスはポリシー駆動型であり得るので、IaaSユーザは、ロードバランシングを駆動するポリシーを実現して、アプリケーションの可用性および性能を維持することが可能であり得る。CSPIは、顧客が高可用性のホスト型分散環境で広範なアプリケーションおよびサービスを構築して実行することを可能にするインフラストラクチャおよび一連の補完的なクラウドサービスを提供する。CSPIは、顧客のオンプレミスネットワークからなどのさまざまなネットワーク拠点からセキュアにアクセスできる柔軟な仮想ネットワークにおける高性能の計算リソースおよび能力ならびに記憶容量を提供する。顧客がCSPによって提供されるIaaSサービスに加入または登録すると、その顧客のために作成されるテナンシは、CSPI内のセキュアな分離されたパーティションとなり、この中で顧客は自身のクラウドリソースを作成、整理、および管理することができる。
顧客は、CSPIによって提供される計算リソース、メモリリソース、およびネットワーキングリソースを使用して、自身の仮想ネットワークを構築することができる。これらの仮想ネットワーク上に、計算インスタンスなどの1つ以上の顧客リソースまたはワークロードを展開することができる。たとえば、顧客は、CSPIによって提供されるリソースを使用して、仮想クラウドネットワーク(VCN)と呼ばれる1つまたは複数のカスタマイズ可能なプライベート仮想ネットワークを構築することができる。顧客は、顧客VCN上に、計算インスタンスなどの1つ以上の顧客リソースを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態を取ることができる。よって、CSPIは、顧客が高可用性の仮想ホスト型環境で広範なアプリケーションおよびサービスを構築して実行することを可能にするインフラストラクチャおよび一連の補完的なクラウドサービスを提供する。顧客は、CSPIによって提供される基礎となる物理リソースを管理または制御しないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御し、場合によっては一部のネットワーキングコンポーネント(たとえばファイアウォール)を限定的に制御する。
CSPは、顧客およびネットワーク管理者がCSPIリソースを使用してクラウドに展開されたリソースを構成、アクセス、および管理することを可能にするコンソールを提供してもよい。特定の実施形態では、コンソールは、CSPIにアクセスしてCSPIを管理するために使用することができるウェブベースのユーザインターフェイスを提供する。いくつかの実現例では、コンソールは、CSPによって提供されるウェブベースのアプリケーションである。
CSPIは、シングルテナンシアーキテクチャまたはマルチテナンシアーキテクチャをサポートしてもよい。シングルテナンシアーキテクチャでは、ソフトウェア(たとえばアプリケーション、データベース)またはハードウェアコンポーネント(たとえばホストマシンもしくはサーバ)が、単一の顧客またはテナントにサービスを提供する。マルチテナンシアーキテクチャでは、ソフトウェアまたはハードウェアコンポーネントが、複数の顧客またはテナントにサービスを提供する。よって、マルチテナンシアーキテクチャでは、CSPIリソースは複数の顧客またはテナントの間で共有される。マルチテナンシの状況では、各テナントのデータが分離されて他のテナントには見えない状態のままであるように、CSPIにおいて予防措置および保護措置が取られる。
物理ネットワークでは、ネットワークエンドポイント(「エンドポイント」)とは、物理ネットワークに接続され、自身が接続されているネットワークと双方向に通信するコンピューティングデバイスまたはシステムを指す。物理ネットワーク内のネットワークエンドポイントは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、または他のタイプの物理ネットワークに接続され得る。物理ネットワーク内の従来のエンドポイントの例としては、モデム、ハブ、ブリッジ、スイッチ、ルータ、および他のネットワーキングデバイス、物理コンピュータ(またはホストマシン)などが挙げられる。物理ネットワーク内の各物理デバイスは、当該デバイスと通信するために使用され得る固定ネットワークアドレスを有する。この固定ネットワークアドレスは、レイヤ2アドレス(たとえばMACアドレス)、固定レイヤ3アドレス(たとえばIPアドレス)などであり得る。仮想化環境または仮想ネットワークでは、エンドポイントは、物理ネットワークのコンポーネントによってホストされている(たとえば物理ホストマシンによってホストされている)仮想マシンなどのさまざまな仮想エンドポイントを含み得る。仮想ネットワーク内のこれらのエンドポイントは、オーバーレイレイヤ2アドレス(たとえばオーバーレイMACアドレス)およびオーバーレイレイヤ3アドレス(たとえばオーバーレイIPアドレス)などのオーバーレイアドレスによってアドレス指定される。ネットワークオーバーレイは、ネットワーク管理者がソフトウェア管理を用いて(たとえば、仮想ネットワークの制御プレーンを実現するソフトウェアを介して)ネットワークエンドポイントに関連付けられたオーバーレイアドレスを移動できるようにすることによって、柔軟性を可能にする。したがって、物理ネットワークとは異なり、仮想ネットワークでは、ネットワーク管理ソフトウェアを用いてオーバーレイアドレス(たとえばオーバーレイIPアドレス)をあるエンドポイントから別のエンドポイントに移動することができる。仮想ネットワークは物理ネットワークの上に構築されているので、仮想ネットワーク内のコンポーネント間の通信は、仮想ネットワークおよび基礎となる物理ネットワークの両方を伴う。このような通信を容易にするために、CSPIのコンポーネントは、仮想ネットワーク内のオーバーレイアドレスを基幹ネットワーク内の実際の物理アドレスにマッピングする、またはその反対にマッピングするマッピングを学習して格納するように構成されている。そして、これらのマッピングは、通信を容易にするために使用される。仮想ネットワーク内のルーティングを容易にするために顧客トラフィックはカプセル化される。
したがって、物理アドレス(たとえば物理IPアドレス)は物理ネットワーク内のコンポーネントに関連付けられ、オーバーレイアドレス(たとえばオーバーレイIPアドレス)は仮想ネットワーク内のエンティティに関連付けられる。物理IPアドレスおよびオーバーレイIPアドレスは、いずれも実IPアドレスの一種である。これらは、複数の実IPアドレスにマッピングされる仮想IPアドレスとは別のものである。仮想IPアドレスは、仮想IPアドレスと複数の実IPアドレスとの間の1対多マッピングを提供する。
クラウドインフラストラクチャまたはCSPIは、世界中の1つ以上のリージョン内の1つ以上のデータセンターにおいて物理的にホストされている。CSPIは、物理ネットワークまたは基幹ネットワーク内のコンポーネントと、物理ネットワークコンポーネントの上に構築された仮想ネットワーク内にある仮想化コンポーネント(たとえば、仮想ネットワーク、計算インスタンス、仮想マシンなど)とを含み得る。特定の実施形態では、CSPIは、レルム、リージョン、および可用性ドメインにおいて編成されホストされている。リージョンは典型的には、1つ以上のデータセンターを含むローカライズされた地理的地域である。リージョンは一般的に互いに独立しており、広大な距離で(たとえば国またはさらには大陸間で)で分離され得る。たとえば、第1のリージョンはオーストラリアにあり、別のリージョンは日本にあり、さらに別のリージョンはインドにある、などであってもよい。CSPIリソースは、各リージョンが自身の独立したCSPIリソースのサブセットを有するように、リージョン間で分割される。各リージョンは、計算リソース(たとえば、ベアメタルサーバ、仮想マシン、コンテナおよび関連のインフラストラクチャなど)、ストレージリソース(たとえば、ブロックボリュームストレージ、ファイルストレージ、オブジェクトストレージ、アーカイブストレージ)、ネットワーキングリソース(たとえば、仮想クラウドネットワーク(VCN)、ロードバランシングリソース、オンプレミスネットワークへの接続)、データベースリソース、エッジネットワーキングリソース(たとえばDNS)、ならびにアクセス管理および監視リソースなどの、一連のコアインフラストラクチャサービスおよびリソースを提供し得る。各リージョンは一般的に、当該リージョンをレルム内の他のリージョンに接続する複数のパスを有する。
一般に、近くにあるリソースの使用は遠くにあるリソースの使用よりも高速であるため、アプリケーションは、それが最も頻繁に使用されるリージョンに展開される(すなわち、そのリージョンに関連付けられたインフラストラクチャ上に展開される)。また、大規模な気象系または地震などのリージョン全体の事象のリスクを軽減するための冗長性、法的管轄区域、税領域、および他のビジネス基準または社会的基準などのさまざまな要件を満たすための冗長性などのさまざまな理由で、異なるリージョンにアプリケーションが展開され得る。
リージョン内のデータセンターは、さらに編成され、可用性ドメイン(AD)に細分化され得る。可用性ドメインは、あるリージョン内に位置する1つ以上のデータセンターに対応してもよい。リージョンは、1つ以上の可用性ドメインで構成され得る。このような分散環境では、CSPIリソースは、仮想クラウドネットワーク(VCN)のようにリージョン固有である、または計算インスタンスのように可用性ドメイン固有である。
あるリージョン内のADは、互いに分離され、フォールトトレラントであり、同時に障害が起きることはほとんどないように構成されている。これは、あるリージョン内の1つのADにおける障害が同じリージョン内の他のADの可用性に影響を与える可能性がほとんどないように、ネットワーキング、物理ケーブル、ケーブルパス、ケーブルエントリポイントなどの重要なインフラストラクチャリソースをADが共有しないことによって達成される。同じリージョン内のADが低遅延・広帯域ネットワークによって互いに接続され得ることにより、他のネットワーク(たとえば、インターネット、顧客のオンプレミスネットワークなど)への高可用性接続を提供することができ、複数のADにおいて高可用性およびディザスタリカバリの双方のための複製システムを構築することができる。クラウドサービスは、複数のADを使用して、高可用性を確保し、リソース障害から保護する。IaaSプロバイダによって提供されるインフラストラクチャが発展するにつれて、より多くのリージョンおよびADが追加の容量とともに追加され得る。可用性ドメイン間のトラフィックは、通常は暗号化される。
特定の実施形態では、リージョンはレルムにグループ化される。レルムは、リージョンの論理集合である。レルムは互いに分離されており、データを共有しない。同じレルム内のリージョンは互いに通信し得るが、異なるレルム内のリージョン互いに通信できない。CSPの顧客のテナンシまたはアカウントは、1つのレルムに存在し、そのレルムに属する1つ以上のリージョンにまたがることができる。典型的には、顧客がIaaSサービスに加入すると、レルム内の顧客指定リージョン(「ホーム」リージョンと呼ばれる)において、その顧客のためのテナンシまたはアカウントが作成される。顧客は、自身のテナンシをレルム内の1つ以上の他のリージョンに拡張することができる。顧客は、自身のテナンシが存在するレルム内にないリージョンにはアクセスできない。
IaaSプロバイダは複数のレルムを提供することができ、各レルムは特定の一組の顧客またはユーザを対象とする。たとえば、商用顧客に商用レルムが提供され得る。別の例として、特定の国またはその国の顧客にレルムが提供され得る。さらに別の例として、政府に政府レルムが提供される、などであり得る。たとえば、政府レルムは特定の政府を対象とし得、商用レルムよりも高いセキュリティレベルを有し得る。たとえば、オラクルクラウドインフラストラクチャ(OCI)は、現在、商用リージョンのためのレルム、ならびに政府クラウドリージョンのための2つのレルム(たとえばFedRAMP認定済みおよびIL5認定済み)を提供している。
特定の実施形態では、ADは1つ以上のフォルトドメインに細分化され得る。フォルトドメインは、アンチアフィニティを提供するためのAD内のインフラストラクチャリソースのグループ化である。フォルトドメインは、計算インスタンスが1つのAD内の同じ物理ハードウェア上に存在しないように、当該インスタンスを分散させることができる。これはアンチアフィニティとして知られている。フォルトドメインとは、単一障害点を共有するハードウェアコンポーネントのセット(コンピュータ、スイッチ、およびその他)を指す。計算プールは、フォルトドメインに論理的に分割される。このため、1つのフォルトドメインに影響を与えるハードウェア障害または計算ハードウェア保守イベントは、他のフォルトドメイン内のインスタンスには影響を与えない。実施形態に応じて、各ADのフォルトドメイン数は異なり得る。たとえば、特定の実施形態では、各ADは3つのフォルトドメインを含む。フォルトドメインは、AD内の論理データセンターとして機能する。
顧客がIaaSサービスに加入すると、CSPIからのリソースがその顧客に対してプロビジョニングされ、その顧客のテナンシに関連付けられる。顧客は、これらのプロビジョニングされたリソースを使用して、プライベートネットワークを構築し、これらのネットワーク上にリソースを展開することができる。CSPIによってクラウド内にホストされている顧客ネットワークは、仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、自身に割り当てられたCSPIリソースを使用して1つ以上の仮想クラウドネットワーク(VCN)をセットアップすることができる。VCNとは、仮想またはソフトウェア定義プライベートネットワークである。顧客のVCNにおいて展開される顧客リソースは、計算インスタンス(たとえば、仮想マシン、ベアメタルインスタンス)および他のリソースを含み得る。これらの計算インスタンスは、アプリケーション、ロードバランサ、データベースなどのさまざまな顧客ワークロードを表し得る。VCN上に展開される計算インスタンスは、インターネットなどのパブリックネットワークを介して公的にアクセス可能なエンドポイント(「パブリックエンドポイント」)と通信することができ、同じVCNまたは他のVCN(たとえば、顧客の他のVCN、もしくは顧客に属さないVCN)内の他のインスタンスと通信することができ、顧客のオンプレミスデータセンターまたはネットワークと通信することができ、サービスエンドポイントおよび他のタイプのエンドポイントと通信することができる。
CSPは、CSPIを使用してさまざまなサービスを提供してもよい。いくつかの例では、CSPIの顧客自身がサービスプロバイダのように振る舞い、CSPIリソースを使用してサービスを提供してもよい。サービスプロバイダは、識別情報(たとえば、IPアドレス、DNS名およびポート)によって特徴付けられるサービスエンドポイントを公開してもよい。顧客のリソース(たとえば計算インスタンス)は、特定のサービスについての特定のサービスによって公開されたサービスエンドポイントにアクセスすることによって、その特定のサービスを消費することができる。これらのサービスエンドポイントは一般に、ユーザが、エンドポイントに関連付けられたパブリックIPアドレスを使用して、インターネットなどのパブリック通信ネットワークを介して公的にアクセス可能なエンドポイントである。公的にアクセス可能なネットワークエンドポイントは、パブリックエンドポイントと呼ばれることもある。
特定の実施形態では、サービスプロバイダは、サービスのエンドポイント(サービスエンドポイントと呼ばれることもある)を介して当該サービスを公開してもよい。そして、サービスの顧客は、このサービスエンドポイントを使用してサービスにアクセスすることができる。特定の実現例では、サービスのために提供されるサービスエンドポイントには、そのサービスを消費するつもりの複数の顧客がアクセスすることができる。他の実現例では、ある顧客のみがある専用のサービスエンドポイントを使用してサービスにアクセスできるように、その専用のサービスエンドポイントがその顧客に提供されてもよい。
特定の実施形態では、VCNが作成されると、当該VCNは、当該VCNに割り当てられるプライベートオーバーレイIPアドレスの範囲(たとえば、10.0/16)であるプライベートオーバーレイ・クラスレスドメイン間ルーティング(CIDR)アドレス空間に関連付けられる。VCNは、関連付けられたサブネット、ルートテーブル、およびゲートウェイを含む。VCNは、1つのリージョン内に常駐するが、そのリージョンの可用性ドメインの1つまたは複数またはすべてにまたがることができる。ゲートウェイは、VCNのために構成され、VCNとVCN外部の1つ以上のエンドポイントとの間のトラフィックの通信を可能にする仮想インターフェイスである。異なるタイプのエンドポイント間の通信を可能にするように、1つ以上の異なるタイプのゲートウェイがVCNのために構成されてもよい。
VCNは、1つ以上のサブネットなどの1つ以上のサブネットワークに細分化され得る。よって、サブネットは、VCN内に作成可能な構成単位または下位区分である。VCNは1つまたは複数のサブネットを有し得る。VCN内の各サブネットは、そのVCN内の他のサブネットと重複せず、当該VCNのアドレス空間内のアドレス空間サブセットを表すオーバーレイIPアドレスの連続範囲(たとえば、10.0.0.0/24および10.0.1.0/24)に関連付けられる。
各計算インスタンスは、当該計算インスタンスがVCNのサブネットに参加することを可能にする仮想ネットワークインターフェイスカード(VNIC)に関連付けられる。VNICは、物理ネットワークインターフェイスカード(NIC)の論理的表現である。一般的に、VNICは、エンティティ(たとえば計算インスタンス、サービス)と仮想ネットワークとの間のインターフェイスである。VNICはサブネットに存在し、1つ以上の関連付けられたIPアドレスと、関連付けられたセキュリティルールまたはポリシーとを有する。VNICは、スイッチ上のレイヤ2ポートに相当する。VNICは、計算インスタンスと、VCN内のサブネットとにアタッチされている。計算インスタンスに関連付けられたVNICは、計算インスタンスがVCNのサブネットの一部であることを可能にし、計算インスタンスが、計算インスタンスと同じサブネット上にあるエンドポイントと通信する(たとえばパケットを送受信する)こと、VCN内の異なるサブネット内のエンドポイントと通信すること、またはVCN外部のエンドポイントと通信することを可能にする。よって、計算インスタンスに関連付けられたVNICは、計算インスタンスがVCNの内部および外部のエンドポイントにどのように接続するかを決定する。計算インスタンスのVNICは、その計算インスタンスが作成されてVCN内のサブネットに追加されると、作成されて当該計算インスタンスに関連付けられる。計算インスタンスのセットを含むサブネットの場合、サブネットは、計算インスタンスのセットに対応するVNICを含み、各VNICはコンピュータインスタンスのセット内の計算インスタンスにアタッチされている。
各計算インスタンスには、当該計算インスタンスに関連付けられたVNICを介してプライベートオーバーレイIPアドレスが割り当てられる。このプライベートオーバーレイIPアドレスは、計算インスタンスが作成されると計算インスタンスに関連付けられたVNICに割り当てられ、計算インスタンスとの間のトラフィックをルーティングするために使用される。所与のサブネット内のすべてのVNICは、同じルートテーブル、セキュリティリスト、およびDHCPオプションを使用する。上述のように、VCN内の各サブネットは、そのVCN内の他のサブネットと重複せず、当該VCNのアドレス空間内のアドレス空間サブセットを表すオーバーレイIPアドレスの連続範囲(たとえば、10.0.0.0/24および10.0.1.0/24)に関連付けられる。VCNの特定のサブネット上のVNICの場合、当該VNICに割り当てられるプライベートオーバーレイIPアドレスは、サブネットに割り当てられたオーバーレイIPアドレスの連続範囲からのアドレスである。
特定の実施形態では、計算インスタンスに、プライベートオーバーレイIPアドレスに加えて、パブリックサブネットにある場合はたとえば1つ以上のパブリックIPアドレスなどの追加のオーバーレイIPアドレスがオプションとして割り当てられてもよい。これら複数のアドレスは、同じVNIC上で、または計算インスタンスに関連付けられた複数のVNIC上で割り当てられる。しかしながら、各インスタンスは、インスタンス起動中に作成され、インスタンスに割り当てられたオーバーレイプライベートIPアドレスに関連付けられているプライマリVNICを有する。このプライマリVNICは削除することができない。セカンダリVNICと呼ばれる追加のVNICを、プライマリVNICと同じ可用性ドメイン内の既存のインスタンスに追加することができる。すべてのVNICは、インスタンスと同じ可用性ドメイン内にある。セカンダリVNICは、プライマリVNICと同じVCN内のサブネットにあり得、または、同じVCNもしくは異なるVCN内の異なるサブネットにあり得る。
計算インスタンスは、パブリックサブネットにある場合、パブリックIPアドレスがオプションとして割り当てられてもよい。サブネットは、当該サブネットを作成するときに、パブリックサブネットまたはプライベートサブネットのいずれかとして指定することができる。プライベートサブネットとは、当該サブネット内のリソース(たとえば計算インスタンス)および関連付けられたVNICがパブリックオーバーレイIPアドレスを有することができないことを意味する。パブリックサブネットとは、サブネット内のリソースおよび関連付けられたVNICがパブリックIPアドレスを有することができることを意味する。顧客は、サブネットがリージョンまたはレルム内の1つの可用性ドメインに存在するか複数の可用性ドメインにわたって存在するかを指定することができる。
上述のように、VCNは1つ以上のサブネットに細分化されてもよい。特定の実施形態では、VCNのために構成された仮想ルータ(VCN VRまたは単にVRと呼ばれる)がVCNのサブネット間の通信を可能にする。VCN内のサブネットの場合、VRは、サブネット(すなわち、そのサブネット上の計算インスタンス)がVCN内部の他のサブネット上のエンドポイントおよびVCN外部の他のエンドポイントと通信することを可能にする、そのサブネットの論理ゲートウェイを表す。VCN VRは、VCN内のVNICと、VCNに関連付けられた仮想ゲートウェイ(「ゲートウェイ」)との間のトラフィックをルーティングするように構成された論理エンティティである。ゲートウェイは、図1に関して以下にさらに説明される。VCN VRは、レイヤ3/IPレイヤの概念である。一実施形態では、VCNに対して1つのVCN VRがあり、VCN VRは、IPアドレスによってアドレス指定される無制限の数のポートを潜在的に有し、VCNのサブネットごとに1つのポートがある。このように、VCN VRは、VCN VRがアタッチされているVCN内のサブネットごとに異なるIPアドレスを有する。VRはまた、VCNのために構成されたさまざまなゲートウェイに接続されている。特定の実施形態では、サブネットのオーバーレイIPアドレス範囲からの特定のオーバーレイIPアドレスが、そのサブネットのVCN VRのポートのために確保されている。たとえば、アドレス範囲10.0/16および10.1/16がそれぞれ関連付けられている2つのサブネットを有するVCNを考える。アドレス範囲10.0/16を有するVCN内の第1のサブネットの場合、この範囲からのアドレスが、そのサブネットのVCN VRのポートのために確保されている。いくつかの例では、当該範囲からの第1のIPアドレスはVCN VRのために確保されていてもよい。たとえば、オーバーレイIPアドレス範囲10.0/16を有するサブネットの場合、IPアドレス10.0.0.1がそのサブネットのVCN VRのポートのために確保されていてもよい。アドレス範囲10.1/16を有する同じVCN内の第2のサブネットの場合、VCN VRは、IPアドレス10.1.0.1を有するその第2のサブネットのポートを有してもよい。VCN VRは、VCN内のサブネットごとに異なるIPアドレスを有する。
いくつかの他の実施形態では、VCN内の各サブネットは、VRに関連付けられた、確保されたまたはデフォルトのIPアドレスを使用してサブネットによってアドレス指定可能な、自身の関連付けられたVRを有してもよい。確保されたまたはデフォルトのIPアドレスは、たとえば、そのサブネットに関連付けられたIPアドレスの範囲からの第1のIPアドレスであってもよい。サブネット内のVNICは、このデフォルトのまたは確保されたIPアドレスを使用して、サブネットに関連付けられたVRと通信(たとえばパケットを送受信)することができる。このような実施形態では、VRは、そのサブネットのイングレス/エグレスポイントである。VCN内のサブネットに関連付けられたVRは、VCN内の他のサブネットに関連付けられた他のVRと通信することができる。VRは、VCNに関連付けられたゲートウェイと通信することもできる。サブネットのVR機能は、サブネット内のVNICのVNIC機能を実行する1つ以上のNVD上で動作している、または当該NVDによって実行される。
ルートテーブル、セキュリティルール、およびDHCPオプションが、VCNのために構成されてもよい。ルートテーブルは、VCNの仮想ルートテーブルであり、ゲートウェイまたは特別に構成されたインスタンスを経由してVCN内部のサブネットからVCN外部の宛先にトラフィックをルーティングするためのルールを含む。VCNとの間でどのようにパケットを転送/ルーティングするかを制御するために、VCNのルートテーブルをカスタマイズすることができる。DHCPオプションとは、インスタンスをブートアップすると当該インスタンスに自動的に与えられる構成情報を指す。
VCNのために構成されたセキュリティルールは、VCNのためのオーバーレイファイアウォールルールを表す。セキュリティルールは、イングレスおよびエグレスルールを含み、VCN内のインスタンスに出入りすることが許可されるトラフィックのタイプを(たとえばプロトコルおよびポートに基づいて)指定することができる。顧客は、所与のルールがステートフルであるかステートレスであるかを選択することができる。たとえば、顧客は、ソースCIDR0.0.0.0/0および宛先TCPポート22を有するステートフルなイングレスルールをセットアップすることによって、任意の場所からインスタンスのセットへの着信SSHトラフィックを許可することができる。セキュリティルールは、ネットワークセキュリティグループまたはセキュリティリストを使用して実現することができる。ネットワークセキュリティグループは、そのグループ内のリソースのみに適用されるセキュリティルールのセットからなる。一方、セキュリティリストは、当該セキュリティリストを使用する任意のサブネット内のすべてのリソースに適用されるルールを含む。デフォルトセキュリティルールを有するデフォルトセキュリティリストがVCNに与えられてもよい。VCNのために構成されたDHCPオプションは、VCN内のインスタンスをブートアップすると当該インスタンスに自動的に与えられる構成情報を提供する。
特定の実施形態では、VCNの構成情報は、VCN制御プレーンによって決定され格納される。VCNの構成情報は、たとえば、VCNに関連付けられたアドレス範囲、VCN内のサブネットおよび関連付けられた情報、VCNに関連付けられた1つ以上のVR、VCN内の計算インスタンスおよび関連付けられたVNIC、VCNに関連付けられたさまざまな仮想化ネットワーク機能(たとえば、VNIC、VR、ゲートウェイ)を実行するNVD、VCNのステート情報、および他のVCN関連情報、に関する情報を含み得る。特定の実施形態では、VCN配信サービスは、VCN制御プレーンによって格納された構成情報またはその一部をNVDに公開する。配信された情報を使用して、NVDによって格納され使用される情報(たとえば、転送テーブル、ルーティングテーブルなど)を更新して、VCN内の計算インスタンスとの間でパケットを転送し得る。
特定の実施形態では、VCNおよびサブネットの作成はVCN制御プレーン(CP)によって処理され、計算インスタンスの起動は計算制御プレーンによって処理される。計算制御プレーンは、計算インスタンスの物理リソースの割り当てを担い、次にVCN制御プレーンを呼び出してVNICを作成し、VNICを計算インスタンスにアタッチする。VCN CPはまた、パケット転送およびルーティング機能を実行するように構成されたVCNデータプレーンに、VCNデータマッピングを送信する。
顧客は、CSPIによってホストされているリソースを使用して1つ以上のVCNを作成してもよい。顧客VCN上に展開される計算インスタンスは、異なるエンドポイントと通信し得る。これらのエンドポイントは、CSPIによってホストされているエンドポイントおよびCSPI外部のエンドポイントを含み得る。
CSPIを使用してクラウドベースのサービスを実現するためのさまざまな異なるアーキテクチャが図11、図12、図13、図14および図15に示されており、以下に説明される。図11は、特定の実施形態に係る、CSPIによってホストされているオーバーレイまたは顧客VCNを示す分散環境1100のハイレベル図である。図11に示される分散環境は、オーバーレイネットワーク内の複数のコンポーネントを含む。図11に示される分散環境1100は一例に過ぎず、特許請求の範囲に記載されている実施形態の範囲を不当に限定することを意図していない。多くの変形例、代替例、および修正例が可能である。たとえば、いくつかの実現例では、図11に示される分散環境は、図1に示されるよりも多いもしくは少ないシステムもしくはコンポーネントを有してもよく、2つ以上のシステムを組み合わせてもよく、またはシステムの異なる構成もしくは配置を有してもよい。
図11の例に示されるように、分散環境1100は、顧客が加入して仮想クラウドネットワーク(VCN)を構築するために使用することができるサービスおよびリソースを提供するCSPI1101を含む。特定の実施形態では、CSPI1101は、加入している顧客にIaaSサービスを提供する。CSPI1101内のデータセンターは、1つ以上のリージョンに編成されてもよい。リージョンの一例である「リージョンUS」1102が図11に示されている。顧客は、リージョン1102のために顧客VCN1104を構成している。顧客は、VCN1104上にさまざまな計算インスタンスを展開してもよく、計算インスタンスは仮想マシンまたはベアメタルインスタンスを含み得る。インスタンスの例としては、アプリケーション、データベース、ロードバランサなどが挙げられる。
図11に示される実施形態では、顧客VCN1104は2つのサブネット、すなわち「サブネット-1」および「サブネット-2」を含み、各サブネットは自身のCIDR IPアドレス範囲を有する。図11において、サブネット-1のオーバーレイIPアドレス範囲は10.0/16であり、サブネット-2のアドレス範囲は10.1/16である。VCN仮想ルータ1105は、VCN1104のサブネット間の通信およびVCN外部の他のエンドポイントとの通信を可能にするVCNの論理ゲートウェイを表す。VCN VR1105は、VCN1104内のVNICとVCN1104に関連付けられたゲートウェイとの間のトラフィックをルーティングするように構成されている。VCN VR1105は、VCN1104の各サブネットにポートを提供する。たとえば、VR1105は、IPアドレス10.0.0.1を有するポートをサブネット-1に提供し、IPアドレス10.1.0.1を有するポートをサブネット-2に提供してもよい。
各サブネット上に複数の計算インスタンスが展開されてもよく、計算インスタンスは仮想マシンインスタンスおよび/またはベアメタルインスタンスとすることができる。サブネット内の計算インスタンスは、CSPI1101内の1つ以上のホストマシンによってホストされてもよい。計算インスタンスは、当該計算インスタンスに関連付けられたVNICを介してサブネットに参加する。たとえば、図11に示されるように、計算インスタンスC1は、当該計算インスタンスに関連付けられたVNICを介してサブネット-1の一部である。同様に、計算インスタンスC2は、C2に関連付けられたVNICを介してサブネット-1の一部である。同様に、仮想マシンインスタンスまたはベアメタルインスタンスであり得る複数の計算インスタンスがサブネット-1の一部であってもよい。各計算インスタンスには、その関連付けられたVNICを介して、プライベートオーバーレイIPアドレスおよびMACアドレスが割り当てられる。たとえば、図11において、計算インスタンスC1はオーバーレイIPアドレス10.0.0.2およびMACアドレスM1を有し、計算インスタンスC2はプライベートオーバーレイIPアドレス10.0.0.3およびMACアドレスM2を有する。計算インスタンスC1およびC2を含むサブネット-1内の各計算インスタンスは、サブネット-1のVCN VR1105のポートのIPアドレスであるIPアドレス10.0.0.1を使用するVCN VR1105へのデフォルトルートを有する。
サブネット-2上には、仮想マシンインスタンスおよび/またはベアメタルインスタンスを含む複数の計算インスタンスを展開することができる。たとえば、図11に示されるように、計算インスタンスDlおよびD2は、それぞれの計算インスタンスに関連付けられたVNICを介してサブネット-2の一部である。図11に示される実施形態では、計算インスタンスD1はオーバーレイIPアドレス10.1.0.2およびMACアドレスMM1を有し、計算インスタンスD2はプライベートオーバーレイIPアドレス10.1.0.3およびMACアドレスMM2を有する。計算インスタンスD1およびD2を含むサブネット-2内の各計算インスタンスは、サブネット-2のVCN VR1105のポートのIPアドレスであるIPアドレス10.1.0.1を使用するVCN VR1105へのデフォルトルートを有する。
VCN A1104はまた、1つ以上のロードバランサを含んでもよい。たとえば、ロードバランサは、サブネットに対して提供されてもよく、サブネット上の複数の計算インスタンス間でトラフィックをロードバランシングするように構成されてもよい。ロードバランサはまた、VCN内のサブネット間でトラフィックをロードバランシングするように提供されてもよい。
VCN1104上に展開される特定の計算インスタンスは、さまざまな異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI1200によってホストされているエンドポイントおよびCSPI1200の外部のエンドポイントを含み得る。CSPI1101によってホストされているエンドポイントは、特定の計算インスタンスと同じサブネット上のエンドポイント(たとえば、サブネット-1内の2つの計算インスタンス間の通信)、異なるサブネット上であるが同じVCN内のエンドポイント(たとえば、サブネット-1内の計算インスタンスとサブネット-2内の計算インスタンスとの間の通信)、同じリージョン内の異なるVCN内のエンドポイント(たとえば、サブネット-1内の計算インスタンスと、同じリージョン1106もしくは1110内のVCN内のエンドポイントとの間の通信、サブネット-1内の計算インスタンスと、同じリージョン内のサービスネットワーク1110内のエンドポイントとの間の通信)、または異なるリージョン内のVCN内のエンドポイント(たとえば、サブネット-1内の計算インスタンスと、異なるリージョン1108内のVCN内のエンドポイントとの間の通信)を含み得る。CSPI1101によってホストされているサブネット内の計算インスタンスはまた、CSPI1101によってホストされていない(すなわちCSPI1101の外部の)エンドポイントと通信し得る。これらの外部エンドポイントは、顧客のオンプレミスネットワーク1116内のエンドポイント、他のリモートクラウドホスト型ネットワーク1118内のエンドポイント、インターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント1114、および他のエンドポイントを含む。
同じサブネット上の計算インスタンス間の通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICを使用して容易になる。たとえば、サブネット-1内の計算インスタンスC1が、サブネット-1内の計算インスタンスC2にパケットを送信したい場合がある。ソース計算インスタンスから送出され、その宛先が同じサブネット内の別の計算インスタンスであるパケットの場合、当該パケットはまず、ソース計算インスタンスに関連付けられたVNICによって処理される。ソース計算インスタンスに関連付けられたVNICによって実行される処理は、パケットヘッダからパケットの宛先情報を決定すること、ソース計算インスタンスに関連付けられたVNICのために構成された任意のポリシー(たとえばセキュリティリスト)を識別すること、パケットのネクストホップを決定すること、必要に応じて任意のパケットカプセル化/デカプセル化機能を実行すること、そして、パケットの意図された宛先への通信を容易にすることを目的としてパケットをネクストホップに転送/ルーティングすることを含み得る。宛先計算インスタンスがソース計算インスタンスと同じサブネットにある場合、ソース計算インスタンスに関連付けられたVNICは、宛先計算インスタンスに関連付けられたVNICを識別し、処理のためにパケットをそのVNICに転送するように構成されている。そして、宛先計算インスタンスに関連付けられたVNICは、実行され、パケットを宛先計算インスタンスに転送する。
サブネット内の計算インスタンスから同じVCNの異なるサブネット内のエンドポイントにパケットを通信する場合、当該通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICと、VCN VRとによって容易になる。たとえば、図11のサブネット-1内の計算インスタンスC1がサブネット-2内の計算インスタンスD1にパケットを送信したい場合、当該パケットはまず、計算インスタンスC1に関連付けられたVNICによって処理される。計算インスタンスC1に関連付けられたVNICは、VCN VRのデフォルトルートまたはポート10.0.0.1を使用してパケットをVCN VR1105にルーティングするように構成されている。VCN VR1105は、ポート10.1.0.1を使用してパケットをサブネット-2にルーティングするように構成されている。そして、パケットは、D1に関連付けられたVNICによって受信および処理され、VNICはパケットを計算インスタンスD1に転送する。
VCN1104内の計算インスタンスからVCN1104の外部のエンドポイントにパケットを通信する場合、当該通信は、ソース計算インスタンスに関連付けられたVNICと、VCN VR1105と、VCN1104に関連付けられたゲートウェイとによって容易になる。1つ以上のタイプのゲートウェイがVCN1104に関連付けられてもよい。ゲートウェイは、VCNと別のエンドポイントとの間のインターフェイスであり、当該別のエンドポイントはVCNの外部にある。ゲートウェイは、レイヤ3/IPレイヤの概念であり、VCNがVCN外部のエンドポイントと通信することを可能にする。よって、ゲートウェイは、VCNと他のVCNまたはネットワークとの間のトラフィックフローを容易にする。異なるタイプのエンドポイントとの異なるタイプの通信を容易にするように、さまざまな異なるタイプのゲートウェイがVCNのために設定され得る。ゲートウェイに応じて、通信はパブリックネットワーク(たとえばインターネット)を介してもよく、またはプライベートネットワークを介してもよい。これらの通信にはさまざまな通信プロトコルが使用され得る。
たとえば、計算インスタンスC1は、VCN1104の外部のエンドポイントと通信したい場合がある。パケットはまず、ソース計算インスタンスC1に関連付けられたVNICによって処理され得る。VNIC処理は、パケットの宛先がClのサブネット-1の外部にあると判断する。C1に関連付けられたVNICは、パケットをVCN1104のVCN VR1105に転送し得る。そして、VCN VR1105はパケットを処理し、当該処理の一部として、パケットの宛先に基づいて、VCN1104に関連付けられた特定のゲートウェイをパケットのネクストホップとして決定する。そして、VCN VR1105は、この特定の識別されたゲートウェイにパケットを転送し得る。たとえば、宛先が顧客のオペプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VR1105によって、VCN1104のために構成された動的ルーティングゲートウェイ(DRG)ゲートウェイ1122に転送され得る。そして、パケットがゲートウェイからネクストホップに転送されることにより、意図された最終宛先へのパケットの通信が容易になり得る。
さまざまな異なるタイプのゲートウェイがVCNのために構成され得る。VCNのために構成され得るゲートウェイの例が図11に示されており、以下に説明される。図11の実施形態に示されるように、動的ルーティングゲートウェイ(DRG)1122が顧客VCN1104に追加または関連付けられてもよく、顧客VCN1104と別のエンドポイントとの間のプライベートネットワークトラフィック通信のためのパスを提供する。当該別のエンドポイントは、顧客のオンプレミスネットワーク1116、CSPI1101の異なるリージョン内のVCN1108、またはCSPI1101によってホストされていない他のリモートクラウドネットワーク1118であり得る。顧客オンプレミスネットワーク1116は、顧客のリソースを使用して構築された顧客ネットワークまたは顧客データセンターであってもよい。顧客オンプレミスネットワーク1116へのアクセスは、一般に厳しく制限される。顧客オンプレミスネットワーク1116と、CSPI1101によってクラウド内に展開またはホストされる1つ以上のVCN1104との両方を有する顧客の場合、当該顧客は、自身のオンプレミスネットワーク1116および自身のクラウドベースのVCN1104が互いに通信可能であることを所望する場合がある。これによって、顧客は、CSPI1101によってホストされている自身のVCN1104と自身のオンプレミスネットワーク1116とを含む拡張ハイブリッド環境を構築することができる。DRG1122がこの通信を可能にする。このような通信を可能にするために、通信チャネル1124がセットアップされる。当該チャネルの一方のエンドポイントは顧客オンプレミスネットワーク1116内にあり、他方のエンドポイントはCSPI1101内にあり顧客VCN1104に接続される。通信チャネル1124は、インターネットなどのパブリック通信ネットワーク、またはプライベート通信ネットワークを介することができる。インターネットなどのパブリック通信ネットワークを介するIPsec VPN技術、パブリックネットワークの代わりにプライベートネットワークを使用するオラクルのFastConnect技術などのさまざまな異なる通信プロトコルが使用されてもよい。通信チャネル1124の1つのエンドポイントを形成する顧客オンプレミスネットワーク1116内のデバイスまたは機器は、図11に示されるCPE1126などの顧客構内機器(CPE)と呼ばれる。CSPI1101側では、エンドポイントは、DRG1122を実行するホストマシンであってもよい。
特定の実施形態では、リモートピアリング接続(RPC)をDRGに追加することができ、これによって顧客は、1つのVCNを異なるリージョン内の別のVCNとピアリングすることができる。このようなRPCを使用して、顧客VCN1104は、DRG1122を使用して別のリージョン内のVCN1108に接続することができる。また、DRG1122を使用して、マイクロソフト(登録商標)Azureクラウド、アマゾン(登録商標)AWSクラウドなどの、CSPI1101によってホストされていない他のリモートクラウドネットワーク1118と通信し得る。
図11に示されるように、VCN1104上の計算インスタンスがインターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント1114と通信することを可能にするインターネットゲートウェイ(IGW)1120が、顧客VCN1104のために構成され得る。IGW11120は、VCNをインターネットなどのパブリックネットワークに接続するゲートウェイである。IGW1120は、VCN1104などのVCN内のパブリックサブネット(パブリックサブネット内のリソースはパブリックオーバーレイIPアドレスを有する)がインターネットなどのパブリックネットワーク1114上でパブリックエンドポイント1112に直接アクセスすることを可能にする。IGW1120を使用して、VCN1104内のサブネットから、またはインターネットから、接続を開始することができる。
ネットワークアドレス変換(NAT)ゲートウェイ1128が顧客のVCN1104のために構成され得、専用のパブリックオーバーレイIPアドレスを有さない顧客のVCN内のクラウドリソースがインターネットにアクセスすることを可能にし、それらのリソースを直接着信インターネット接続(たとえばL4~L7接続)に曝すことなくそのようにアクセスすることを可能にする。これによって、VCN1104内のプライベートサブネット-1などのVCN内のプライベートサブネットが、インターネット上でパブリックエンドポイントにプライベートアクセスすることが可能になる。NATゲートウェイでは、接続はプライベートサブネットからパブリックインターネットにのみ開始することができ、インターネットからプライベートサブネットに開始することはできない。
特定の実施形態では、サービスゲートウェイ(SGW)1126が顧客VCN1104のために構成され得、VCN1104とサービスネットワーク1110内にサポートされているサービスエンドポイントとの間のプライベートネットワークトラフィックのパスを提供する。特定の実施形態では、サービスネットワーク1110は、CSPによって提供されてもよく、さまざまなサービスを提供してもよい。このようなサービスネットワークの一例は、顧客が使用できるさまざまなサービスを提供するオラクルのサービスネットワーク(Services Network)である。たとえば、顧客VCN1104のプライベートサブネット内の計算インスタンス(たとえばデータベースシステム)は、パブリックIPアドレスまたはインターネットへのアクセスを必要とすることなく、サービスエンドポイント(たとえばオブジェクトストレージ(Object Storage))にデータをバックアップすることができる。特定の実施形態では、VCNはSGWを1つのみ有することができ、接続はVCN内のサブネットからのみ開始することができ、サービスネットワーク1110からは開始することができない。VCNを別のVCNとピアリングすると、この他方のVCN内のリソースは典型的にはSGWにアクセスできない。また、FastConnectまたはVPN ConnectでVCNに接続されているオンプレミスネットワーク内のリソースは、そのVCNのために構成されたサービスゲートウェイを使用することができる。
特定の実現例では、SGW1126は、サービスクラスレスドメイン間ルーティング(CIDR)ラベルの概念を使用する。当該ラベルは、関心のあるサービスまたはサービスのグループについてのすべてのリージョナルパブリックIPアドレス範囲を表す文字列である。顧客は、SGWおよびサービスへのトラフィックを制御するための関連するルートルールを構成する際にサービスCIDRラベルを使用する。顧客は、サービスのパブリックIPアドレスが将来変更されてもセキュリティルールを調整する必要なしに、セキュリティルールを構成する際にサービスCIDRラベルをオプションとして利用することができる。
ローカルピアリングゲートウェイ(LPG)1132は、顧客VCN1104に追加可能であり、VCN1104が同じリージョン内の別のVCNとピアリングすることを可能にするゲートウェイである。ピアリングとは、トラフィックがインターネットなどのパブリックネットワークをトラバースすることなく、または顧客のオンプレミスネットワーク1116を通してトラフィックをルーティングすることなく、VCNがプライベートIPアドレスを使用して通信することを意味する。好ましい実施形態では、VCNは、VCNが確立するピアリングごとに別個のLPGを有する。ローカルピアリングまたはVCNピアリングは、異なるアプリケーション間またはインフラストラクチャ管理機能間のネットワーク接続性を確立するために使用される一般的なやり方である。
サービスネットワーク1110内のサービスのプロバイダなどのサービスプロバイダは、異なるアクセスモデルを使用してサービスへのアクセスを提供してもよい。パブリックアクセスモデルによれば、サービスは、インターネットなどのパブリックネットワークを介して顧客VCN内の計算インスタンスによって公的にアクセス可能なパブリックエンドポイントとして公開されてもよく、および/または、SGW1126を介して非公式にアクセス可能であってもよい。特定のプライベートアクセスモデルによれば、サービスは、顧客のVCN内のプライベートサブネット内のプライベートIPエンドポイントとしてアクセス可能になる。これは、プライベートエンドポイント(PE)アクセスと呼ばれ、サービスプロバイダがそのサービスを顧客のプライベートネットワーク内のインスタンスとして公開することを可能にする。プライベートエンドポイントリソースは、顧客のVCN内のサービスを表す。各PEは、顧客のVCN内で顧客によって選択されたサブネット内のVNIC(PE-VNICと呼ばれ、1つ以上のプライベートIPを有する)として現れる。よって、PEは、VNICを使用してプライベートな顧客VCNサブネット内でサービスを提示する方法を提供する。エンドポイントはVNICとして公開されるので、ルーティングルール、セキュリティリストなどのVNICに関連付けられたすべての特徴がPE VNICに利用可能となる。
サービスプロバイダは、自身のサービスを登録することによって、PEを通じたアクセスを可能にすることができる。プロバイダは、ポリシーを、顧客テナンシへのサービスの可視性を制限するサービスに関連付けることができる。プロバイダは、特にマルチテナントサービスの場合、1つの仮想IPアドレス(VIP)の下で複数のサービスを登録することができる。同じサービスを表す複数のそのようなプライベートエンドポイントが(複数のVCN内に)あってもよい。
そして、プライベートサブネット内の計算インスタンスは、PE VNICのプライベートIPアドレスまたはサービスDNS名を使用して、サービスにアクセスすることができる。顧客VCN内の計算インスタンスは、顧客VCN内のPEのプライベートIPアドレスにトラフィックを送信することによって、サービスにアクセスすることができる。プライベートアクセスゲートウェイ(PAGW)1130は、顧客サブネットプライベートエンドポイントとの間のすべてのトラフィックのイングレス/エグレスポイントとして機能するサービスプロバイダVCN(たとえばサービスネットワーク1110内のVCN)にアタッチされ得るゲートウェイリソースである。PAGW1130は、プロバイダが、内部IPアドレスリソースを利用することなくPE接続の数をスケーリングすることを可能にする。プロバイダは、1つのVCNに登録された任意の数のサービスに対して1つのPAGWを構成するだけでよい。プロバイダは、サービスを、1以上の顧客の複数のVCN内のプライベートエンドポイントとして表すことができる。顧客から見ると、PE VNICは、顧客のインスタンスにアタッチされているのではなく、顧客がやり取りしたいサービスにアタッチされているように見える。プライベートエンドポイントに向かうトラフィックは、PAGW1130を介してサービスにルーティングされる。これらは、顧客からサービスへのプライベート接続(C2S接続)と呼ばれる。
また、PE概念を用いて、トラフィックがFastConnect/IPSecリンクおよび顧客VCN内のプライベートエンドポイントを通過することを可能にすることによって、サービスのプライベートアクセスを顧客のオンプレミスネットワークおよびデータセンターに拡張することができる。また、トラフィックがLPG1132と顧客のVCN内のPEとの間を通過することを可能にすることによって、サービスのプライベートアクセスを顧客のピアリングしたVCNに拡張することができる。
顧客は、サブネットレベルでVCN内のルーティングを制御することができるので、VCN1104などの顧客のVCN内のどのサブネットが各ゲートウェイを使用するかを指定することができる。VCNのルートテーブルを使用して、トラフィックが特定のゲートウェイを通じてVCNから出ることが許可されているか否かを判断する。たとえば、特定の場合において、顧客VCN1104内のパブリックサブネットのルートテーブルは、IGW1120を通じて非ローカルトラフィックを送信してもよい。同じ顧客VCN1104内のプライベートサブネットのルートテーブルは、SGW1126を通じてCSPサービスに向かうトラフィックを送信してもよい。残りのすべてのトラフィックはNATゲートウェイ1128を介して送信されてもよい。ルートテーブルは、VCNから出るトラフィックのみを制御する。
VCNに関連付けられたセキュリティリストは、インバウンド接続を介してゲートウェイを介してVCNに入ってくるトラフィックを制御するために使用される。サブネット内のすべてのリソースは、同じルートテーブルおよびセキュリティリストを使用する。セキュリティリストは、VCNのサブネット内のインスタンスに出入りすることが許可されている特定のタイプのトラフィックを制御するために使用されてもよい。セキュリティリストルールは、イングレス(インバウンド)およびエグレス(アウトバウンド)ルールを含み得る。たとえば、イングレスルールは、許可されたソースアドレス範囲を指定してもよく、エグレスルールは、許可された宛先アドレス範囲を指定してもよい。セキュリティルールは、特定のプロトコル(たとえば、TCP、ICMP)、特定のポート(たとえば、SSHのための22、ウィンドウズ(登録商標)RDPのための3389)などを指定してもよい。特定の実現例では、インスタンスのオペレーティングシステムが、セキュリティリストルールと一致する自身のファイアウォールルールを実施してもよい。ルールはステートフルであってもよく(たとえば、接続が追跡され、応答トラフィックのための明確なセキュリティリストルールなしで応答が自動的に許可される)、またはステートレスであってもよい。
顧客VCNからの(すなわち、VCN1104上に展開されたリソースまたは計算インスタンスによる)アクセスは、パブリックアクセス、プライベートアクセス、または専用アクセスと分類され得る。パブリックアクセスとは、パブリックIPアドレスまたはNATを使用してパブリックエンドポイントにアクセスするアクセスモデルを指す。プライベートアクセスは、プライベートIPアドレスを有するVCN1104内の顧客ワークロード(たとえばプライベートサブネット内のリソース)が、インターネットなどのパブリックネットワークをトラバースすることなくサービスにアクセスすることを可能にする。特定の実施形態では、CSPI1101は、プライベートIPアドレスを有する顧客VCNワークロードが、サービスゲートウェイを使用してサービス(のパブリックサービスエンドポイント)にアクセスすることを可能にする。よって、サービスゲートウェイは、顧客のVCNと顧客のプライベートネットワークの外部に常駐するサービスのパブリックエンドポイントとの間に仮想リンクを確立することによって、プライベートアクセスモデルを提供する。
これに加えて、CSPIは、FastConnectパブリックピアリングなどの技術を使用して、専用のパブリックアクセスを提供してもよい。当該アクセスでは、顧客オンプレミスインスタンスは、FastConnect接続を使用して、かつインターネットなどのパブリックネットワークをトラバースすることなく、顧客VCN内の1つ以上のサービスにアクセスすることができる。CSPIはまた、FastConnectプライベートピアリングを使用して、専用のプライベートアクセスを提供してもよい。当該アクセスでは、プライベートIPアドレスを有する顧客オンプレミスインスタンスは、FastConnect接続を使用して顧客のVCNワークロードにアクセスすることができる。FastConnectは、パブリックインターネットを使用して顧客のオンプレミスネットワークをCSPIおよびそのサービスに接続する代わりとなるネットワーク接続性である。FastConnectは、インターネットベースの接続と比較して、より高い帯域幅オプションおよびより信頼性が高く一貫したネットワーキング体験を有する専用のプライベート接続を作成する、容易で、柔軟で、経済的な方法を提供する。
図11およびそれに付随する上記の説明は、例示的な仮想ネットワークにおけるさまざまな仮想化コンポーネントを説明している。上述のように、仮想ネットワークは、基礎となる物理ネットワークまたは基幹ネットワーク上に構築される。図12は、特定の実施形態に係る、仮想ネットワークの基礎を提供するCSPI1200内の物理ネットワークにおける物理コンポーネントの簡略化されたアーキテクチャ図を示す。図示のように、CSPI1200は、クラウドサービスプロバイダ(CSP)によって提供されるコンポーネントおよびリソース(たとえば、計算リソース、メモリリソース、およびネットワーキングリソース)を含む分散環境を提供する。これらのコンポーネントおよびリソースを使用して、加入している顧客、すなわち、CSPによって提供される1つ以上のサービスに加入している顧客にクラウドサービス(たとえばIaaSサービス)を提供する。顧客が加入しているサービスに基づいて、CSPI1200のリソース(たとえば、計算リソース、メモリリソース、およびネットワーキングリソース)のサブセットが顧客に対してプロビジョニングされる。そして顧客は、CSPI1200によって提供される物理的な計算リソース、メモリリソース、およびネットワーキングリソースを使用して、自身のクラウドベースの(すなわちCSPIホスト型の)カスタマイズ可能なプライベート仮想ネットワークを構築することができる。上述のように、これらの顧客ネットワークは仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、これらの顧客VCN上に、計算インスタンスなどの1つ以上の顧客リソースを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態を取ることができる。CSPI1200は、顧客が高可用性のホスト型環境で広範なアプリケーションおよびサービスを構築して実行することを可能にするインフラストラクチャおよび一連の補完的なクラウドサービスを提供する。
図12に示される例示的な実施形態では、CSPI1200の物理コンポーネントは、1つ以上の物理ホストマシンまたは物理サーバ(たとえば1202,1206,1208)と、ネットワーク仮想化デバイス(NVD)(たとえば1210,1212)と、トップオブラック(TOR)スイッチ(たとえば1214,1216)と、物理ネットワーク(たとえば1218)と、物理ネットワーク1218内のスイッチとを含む。物理ホストマシンまたはサーバは、VCNの1つ以上のサブネットに参加するさまざまな計算インスタンスをホストし、実行し得る。計算インスタンスは、仮想マシンインスタンスおよびベアメタルインスタンスを含み得る。たとえば、図11に示されるさまざまな計算インスタンスは、図12に示される物理ホストマシンによってホストされてもよい。VCN内の仮想マシン計算インスタンスは、1つのホストマシンによって実行されてもよく、または複数の異なるホストマシンによって実行されてもよい。また、物理ホストマシンは、仮想ホストマシン、コンテナベースのホストまたは機能などをホストしてもよい。図11に示されるVNICおよびVCN VRは、図12に示されるNVDによって実行されてもよい。図11に示されるゲートウェイは、図12に示されるホストマシンおよび/またはNVDによって実行されてもよい。
ホストマシンまたはサーバは、ホストマシン上で仮想化環境を作成し可能にするハイパーバイザ(仮想マシンモニタまたはVMMとも呼ばれる)を実行し得る。仮想化または仮想化環境は、クラウドベースのコンピューティングを容易にする。1つ以上の計算インスタンスが、ホストマシン上のハイパーバイザによってそのホストマシン上で作成され、実行され、管理され得る。ホストマシン上のハイパーバイザは、ホストマシンの物理コンピューティングリソース(たとえば、計算リソース、メモリリソース、およびネットワーキングリソース)を、ホストマシンによって実行されるさまざまな計算インスタンス間で共有することを可能にする。
たとえば、図12に示されるように、ホストマシン1202および1208はハイパーバイザ1260および1266をそれぞれ実行する。これらのハイパーバイザは、ソフトウェア、ファームウエア、またはハードウェア、またはそれらの組み合わせを使用して実現されてもよい。典型的には、ハイパーバイザは、ホストマシンのオペレーティングシステム(OS)上にあるプロセスまたはソフトウェア層であり、OSはホストマシンのハードウェアプロセッサ上で実行される。ハイパーバイザは、ホストマシンの物理コンピューティングリソース(たとえば、プロセッサ/コア、メモリリソース、ネットワーキングリソースなどの処理リソース)を、ホストマシンによって実行されるさまざまな仮想マシン計算インスタンス間で共有することを可能にすることによって、仮想化環境を提供する。たとえば、図12では、ハイパーバイザ1260は、ホストマシン1202のOS上にあってもよく、ホストマシン1202のコンピューティングリソース(たとえば、処理リソース、メモリリソース、およびネットワーキングリソース)を、ホストマシン1202によって実行される計算インスタンス(たとえば仮想マシン)間で共有することを可能にする。仮想マシンは自身のオペレーティングシステム(ゲストオペレーティングシステムと呼ばれる)を有することができ、当該オペレーティングシステムはホストマシンのOSと同じであってもよく、または異なっていてもよい。ホストマシンによって実行される仮想マシンのオペレーティングシステムは、同じホストマシンによって実行される別の仮想マシンのオペレーティングシステムと同じであってもよく、または異なっていてもよい。よって、ハイパーバイザは、ホストマシンの同じコンピューティングリソースを共有しながら、複数のオペレーティングシステムを互いに並行して実行することを可能にする。図12に示されるホストマシンは、同じタイプのハイパーバイザを有してもよく、または異なるタイプのハイパーバイザを有してもよい。
計算インスタンスは、仮想マシンインスタンスまたはベアメタルインスタンスとすることができる。図12では、ホストマシン1202上の計算インスタンス1268およびホストマシン1208上の計算インスタンス1274は、仮想マシンインスタンスの一例である。ホストマシン1206は、顧客に提供されるベアメタルインスタンスの一例である。
特定の例では、ホストマシン全体が単一の顧客に対してプロビジョニングされてもよく、そのホストマシンによってホストされている1つ以上の計算インスタンス(仮想マシンまたはベアメタルインスタンスのいずれか)のすべてがその同じ顧客に属する。他の例では、ホストマシンは複数の顧客(すなわち複数のテナント)間で共有されてもよい。このようなマルチテナンシシナリオでは、ホストマシンは、異なる顧客に属する仮想マシン計算インスタンスをホストしてもよい。これらの計算インスタンスは、異なる顧客の異なるVCNのメンバであってもよい。特定の実施形態では、ベアメタル計算インスタンスは、ハイパーバイザなしのベアメタルサーバによってホストされている。ベアメタル計算インスタンスがプロビジョニングされる場合、単一の顧客またはテナントは、当該ベアメタルインスタンスをホストしているホストマシンの物理CPU、メモリ、およびネットワークインターフェイスの制御を維持し、ホストマシンは他の顧客またはテナントと共有されない。
上述したように、VCNの一部である各計算インスタンスは、計算インスタンスがVCNのサブネットのメンバになることを可能にするVNICに関連付けられる。計算インスタンスに関連付けられたVNICは、計算インスタンスとの間のパケットまたはフレームの通信を容易にする。計算インスタンスが作成されると、VNICが当該計算インスタンスに関連付けられる。特定の実施形態では、ホストマシンによって実行される計算インスタンスの場合、その計算インスタンスに関連付けられたVNICは、ホストマシンに接続されたNVDによって実行される。たとえば、図12では、ホストマシン1202は、VNIC1276に関連付けられた仮想マシン計算インスタンス1268を実行し、VNIC1276は、ホストマシン1202に接続されたNVD1210によって実行される。別の例として、ホストマシン1206によってホストされているベアメタルインスタンス1272は、ホストマシン1206に接続されたNVD1212によって実行されるVNIC1280に関連付けられる。さらに別の例として、VNIC1284は、ホストマシン1208によって実行される計算インスタンス1274に関連付けられ、VNIC1284は、ホストマシン1208に接続されたNVD1212によって実行される。
ホストマシンによってホストされている計算インスタンスの場合、そのホストマシンに接続されたNVDも、計算インスタンスがメンバであるVCNに対応するVCN VRを実行する。たとえば、図12に示される実施形態では、NVD1210は、計算インスタンス1268がメンバであるVCNに対応するVCN VR1277を実行する。NVD1212も、ホストマシン1206および1208によってホストされている計算インスタンスに対応するVCNに対応する1つ以上のVCN VR1283を実行し得る。
ホストマシンは、当該ホストマシンを他のデバイスに接続することを可能にする1つ以上のネットワークインターフェイスカード(NIC)を含み得る。ホストマシン上のNICは、当該ホストマシンを別のデバイスに通信可能に接続することを可能にする1つ以上のポート(またはインターフェイス)を提供し得る。たとえば、ホストマシン上およびNVD上に設けられた1つ以上のポート(またはインターフェイス)を使用して、当該ホストマシンを当該NVDに接続してもよい。また、ホストマシンを別のホストマシンなどの他のデバイスに接続してもよい。
たとえば、図12では、ホストマシン1202は、ホストマシン1202のNIC1232によって提供されるポート1234とNVD1210のポート1236との間に延在するリンク1220を使用してNVD1210に接続されている。ホストマシン1206は、ホストマシン1206のNIC1244によって提供されるポート1246とNVD1212のポート1248との間に延在するリンク1224を使用してNVD1212に接続されている。ホストマシン1208は、ホストマシン1208のNIC1250によって提供されるポート1252とNVD1212のポート1254との間に延在するリンク1226を使用してNVD1212に接続されている。
そしてNVDは、通信リンクを介して、物理ネットワーク1218(スイッチファブリックとも呼ばれる)に接続されているトップオブラック(TOR)スイッチに接続されている。特定の実施形態では、ホストマシンとNVDとの間のリンク、およびNVDとTORスイッチとの間のリンクは、イーサネットリンクである。たとえば、図12では、NVD1210および1212は、リンク1228および1230を使用してTORスイッチ1214および1216にそれぞれ接続されている。特定の実施形態では、リンク1220,1224,1226,1228および1230はイーサネットリンクである。TORに接続されているホストマシンおよびNVDの集合体はラックと呼ばれることもある。
物理ネットワーク1218は、TORスイッチが互いに通信することを可能にする通信ファブリックを提供する。物理ネットワーク1218は多層ネットワークとすることができる。特定の実現例では、物理ネットワーク1218はスイッチの多層Closネットワークであり、TORスイッチ1214および1216は、多層およびマルチノード物理スイッチングネットワーク1218のリーフレベルノードを表す。2層ネットワーク、3層ネットワーク、4層ネットワーク、5層ネットワーク、および一般的に「n」層ネットワークを含むがこれらに限定されない異なるClosネットワーク構成が可能である。Closネットワークの一例が図15に示されており、以下に説明される。
ホストマシンとNVDとの間には、1対1構成、多対1構成、1対多構成などのさまざまな異なる接続構成が可能である。1対1構成の実現例では、各ホストマシンが自身の別個のNVDに接続されている。たとえば、図12では、ホストマシン1202は、ホストマシン1202のNIC1232を介してNVD1210に接続されている。多対1構成では、複数のホストマシンが1つのNVDに接続されている。たとえば、図12では、ホストマシン1206および1208は、それぞれNIC1244および1250を介して同じNVD1212に接続されている。
1対多構成では、1つのホストマシンが複数のNVDに接続されている。図13は、ホストマシンが複数のNVDに接続されているCSPI1300内の一例を示す。図13に示されるように、ホストマシン1302は、複数のポート1306および1308を含むネットワークインターフェイスカード(NIC)1304を含む。ホストマシン1300は、ポート1306およびリンク1320を介して第1のNVD1310に接続され、ポート1308およびリンク1322を介して第2のNVD1312に接続されている。ポート1306および1308はイーサネットポートであってもよく、ホストマシン1302とNVD1310および1312との間のリンク1320および1322はイーサネットリンクであってもよい。そしてNVD1310は第1のTORスイッチ1314に接続され、NVD1312は第2のTORスイッチ1316に接続されている。NVD1310および1312とTORスイッチ1314および1316との間のリンクは、イーサネットリンクであってもよい。TORスイッチ1314および1316は、多層物理ネットワーク1318内の層-0スイッチングデバイスを表す。
図13に示される配置は、物理スイッチネットワーク1318からホストマシン1302への2つの別個の物理ネットワークパス、すなわち、TORスイッチ1314をトラバースしてNVD1310およびホストマシン1302に至る第1のパス、ならびにTORスイッチ1316をトラバースしてNVD1312およびホストマシン1302に至る第2のパスを提供する。これら別個のパスは、ホストマシン1302の改善された可用性(高可用性と呼ばれる)を提供する。一方のパスに問題がある(たとえば一方のパスのリンクがダウンした)場合、またはデバイスに問題がある(たとえば特定のNVDが機能していない)場合、他方のパスがホストマシン1302との間の通信に使用されてもよい。
図13に示される構成では、ホストマシンは、ホストマシンのNICによって提供される2つの異なるポートを使用して2つの異なるNVDに接続されている。他の実施形態では、ホストマシンは、複数のNVDへのホストマシンの接続を可能にする複数のNICを含み得る。
再び図12を参照して、NVDは、1つ以上のネットワークおよび/またはストレージ仮想化機能を実行する物理デバイスまたはコンポーネントである。NVDは、1つ以上の処理ユニット(たとえば、CPU、ネットワーク処理ユニット(NPU)、FPGA、パケット処理パイプラインなど)と、キャッシュを含むメモリと、ポートとを有するいずれのデバイスであってもよい。さまざまな仮想化機能は、NVDの1つ以上の処理ユニットによって実行されるソフトウェア/ファームウエアによって実行されてもよい。
NVDは、さまざまな異なる形態で実現され得る。たとえば、特定の実施形態では、NVDは、内蔵プロセッサを搭載したスマートNICまたはインテリジェントNICと呼ばれるインターフェイスカードとして実現される。スマートNICは、ホストマシン上のNICとは別個のデバイスである。図12では、NVD1210はホストマシン1202に接続されたスマートNICとして実現されてもよく、NVD1212はホストマシン1206および1208に接続されたスマートNICとして実現されてもよい。
しかしながら、スマートNICは、NVDの一実現例に過ぎない。さまざまな他の実現例が可能である。たとえば、いくつかの他の実現例では、NVDまたはNVDによって実行される1つ以上の機能が、CSPI1200の1つ以上のホストマシン、1つ以上のTORスイッチ、および他のコンポーネントに組み込まれてもよく、またはそれらによって実行されてもよい。たとえば、NVDはホストマシンにおいて具体化され、NVDによって実行される機能は当該ホストマシンによって実行されてもよい。別の例として、NVDはTORスイッチの一部であってもよく、またはTORスイッチは、パブリッククラウドに使用されるさまざまな複雑なパケット変換をTORスイッチが実行することを可能にするNVDによって実行される機能を実行するように構成されてもよい。NVDの機能を実行するTORは、スマートTORと呼ばれることもある。ベアメタル(BM)インスタンスではなく仮想マシン(VM)インスタンスが顧客に提供されるさらに他の実現例では、NVDによって提供される機能は、ホストマシンのハイパーバイザの内部で実現されてもよい。いくつかの他の実現例では、NVDの機能の一部は、一連のホストマシン上で動作する集中型サービスにオフロードされてもよい。
図12に示されるようにスマートNICとして実現される場合などの特定の実施形態では、NVDは、当該NVDを1つ以上のホストマシンおよび1つ以上のTORスイッチに接続することを可能にする複数の物理ポートを含んでもよい。NVD上のポートは、ホスト向きポート(「サウスポート(south port)」とも呼ばれる)またはネットワーク向きもしくはTOR向きポート(「ノースポート(north port)」とも呼ばれる)と分類され得る。NVDのホスト向きポートは、NVDをホストマシンに接続するために使用されるポートである。図12のホスト向きポートの例としては、NVD1210上のポート1236、ならびにNVD1212上のポート1248および1254が挙げられる。NVDのネットワーク向きポートは、NVDをTORスイッチに接続するために使用されるポートである。図12のネットワーク向きポートの例としては、NVD1210上のポート1256、およびNVD1212上のポート1258が挙げられる。図12に示されるように、NVD1210は、NVD1210のポート1256からTORスイッチ1214に延在するリンク1228を使用してTORスイッチ1214に接続されている。同様に、NVD1212は、NVD1212のポート1258からTORスイッチ1216に延在するリンク1230を使用してTORスイッチ1216に接続されている。
NVDは、ホスト向きポートを介してホストマシンからパケットおよびフレーム(たとえば、ホストマシンによってホストされている計算インスタンスによって生成されたパケットおよびフレーム)を受信し、必要なパケット処理を実行した後、NVDのネットワーク向きポートを介して当該パケットおよびフレームをTORスイッチに転送し得る。NVDは、NVDのネットワーク向きポートを介してTORスイッチからパケットおよびフレームを受信し得、必要なパケット処理を実行した後、NVDのホスト向きポートを介して当該パケットおよびフレームをホストマシンに転送し得る。
特定の実施形態では、NVDとTORスイッチとの間に複数のポートおよび関連付けられたリンクがあってもよい。これらのポートおよびリンクを集約して、複数のポートまたはリンクのリンクアグリゲータグループ(LAGと呼ばれる)を形成してもよい。リンクを集約することで、2つのエンドポイント間の(たとえばNVDとTORスイッチとの間の)複数の物理リンクを1つの論理リンクとして扱うことが可能になる。所与のLAG内のすべての物理リンクは、同じ速度で全二重モードで動作し得る。LAGは、2つのエンドポイント間の接続の帯域幅および信頼性を高めるのに役立つ。LAG内の物理リンクのうちの1つがダウンすると、LAG内の他の物理リンクのうちの1つにトラフィックが動的かつ透過的に再び割り当てられる。集約された物理リンクは、個々の各リンクよりも高い帯域幅を達成する。LAGに関連付けられた複数のポートは、1つの論理ポートとして扱われる。トラフィックをLAGの複数の物理リンク間でロードバランシングすることができる。2つのエンドポイント間に1つ以上のLAGが構成されてもよい。2つのエンドポイントは、NVDとTORスイッチとの間、ホストマシンとNVDとの間などであってもよい。
NVDは、ネットワーク仮想化機能を実現または実行する。これらの機能は、NVDによって実行されるソフトウェア/ファームウエアによって実行される。ネットワーク仮想化機能の例としては、限定されないが、パケットのカプセル化およびデカプセル化機能、VCNネットワークを作成するための機能、VCNセキュリティリスト(ファイアウォール)機能などのネットワークポリシーを実現するための機能、VCN内の計算インスタンスとの間のパケットのルーティングおよび転送を容易にする機能などが挙げられる。特定の実施形態では、パケットを受信すると、NVDは、パケットを処理し、パケットをどのように転送またはルーティングするかを判断するためのパケット処理パイプラインを実行するように構成されている。このパケット処理パイプラインの一部として、NVDは、VCN内の計算インスタンスに関連付けられたVNICの実行、VCNに関連付けられた仮想ルータ(VR)の実行、仮想ネットワーク内の転送またはルーティングを容易にするためのパケットのカプセル化およびデカプセル化、特定のゲートウェイ(たとえばローカルピアリングゲートウェイ)の実行、セキュリティリストの実現、ネットワークセキュリティグループ、ネットワークアドレス変換(NAT)機能(たとえばホスト単位でのパブリックIPからプライベートIPへの変換)、スロットル機能、および他の機能など、オーバーレイネットワークに関連付けられた1つ以上の仮想機能を実行し得る。
特定の実施形態では、NVD内のパケット処理データパスは複数のパケットパイプラインを含み、その各々が一連のパケット変換ステージで構成されてもよい。特定の実現例では、パケットを受信すると、当該パケットはパースされ、1つのパイプラインに分類される。そしてパケットは、パケットがドロップされるまたはNVDのインターフェイスを介して送出されるまで、ステージからステージへと線形的に処理される。これらのステージは、基本的な機能パケット処理ビルディングブロック(たとえば、ヘッダの検証、スロットルの実施、新しいレイヤ2ヘッダの挿入、L4ファイアウォールの実施、VCNカプセル化/デカプセル化など)を提供するので、既存のステージを構成することによって新しいパイプラインを構築することができ、新しいステージを作成してそれらを既存のパイプラインに挿入することによって新しい機能を追加することができる。
NVDは、VCNの制御プレーンおよびデータプレーンに対応する制御プレーン機能およびデータプレーン機能の両方を実行し得る。制御プレーン機能は、データをどのように転送するかを制御するネットワークを構成する(たとえば、ルートおよびルートテーブルをセットアップする、VNICを構成するなど)ために使用される機能を含む。特定の実施形態では、すべてのオーバーレイと基板とのマッピングを一元的に計算し、当該マッピングをNVDに、ならびにDRG、SGW、IGW等のさまざまなゲートウェイなどの仮想ネットワークエッジデバイスに公開するVCN制御プレーンが提供される。同じメカニズムを使用してファイアウォールルールも公開されてもよい。特定の実施形態では、NVDは、そのNVDに関連しているマッピングのみを取得する。データプレーン機能は、制御プレーンを使用してセットアップされた構成に基づいてパケットを実際にルーティング/転送するための機能を含む。VCNデータプレーンは、顧客のネットワークパケットが基幹ネットワークをトラバースする前に当該パケットをカプセル化することによって実現される。カプセル化/デカプセル化機能はNVD上で実現される。特定の実施形態では、NVDは、ホストマシンに出入りするすべてのネットワークパケットを傍受し、ネットワーク仮想化機能を実行するように構成されている。
上述のように、NVDは、VNICおよびVCN VRを含むさまざまな仮想化機能を実行する。NVDは、VNICに接続された1つ以上のホストマシンによってホストされている計算インスタンスに関連付けられたVNICを実行し得る。たとえば、図12に示されるように、NVD1210は、NVD1210に接続されたホストマシン1202によってホストされている計算インスタンス1268に関連付けられたVNIC1276のための機能を実行する。別の例として、NVD1212は、ホストマシン1206によってホストされているベアメタル計算インスタンス1272に関連付けられたVNIC1280を実行し、ホストマシン1208によってホストされている計算インスタンス1274に関連付けられたVNIC1284を実行する。ホストマシンは、異なる顧客に属する異なるVCNに属する計算インスタンスをホストし得、ホストマシンに接続されたNVDは、計算インスタンスに対応するVNICを実行し得る(すなわち、VNICに関連する機能を実行し得る)。
NVDはまた、計算インスタンスのVCNに対応するVCN仮想ルータを実行する。たとえば、図12に示される実施形態では、NVD1210は、計算インスタンス1268が属するVCNに対応するVCN VR1277を実行する。NVD1212は、ホストマシン1206および1208によってホストされている計算インスタンスが属する1つ以上のVCNに対応する1つ以上のVCN VR1283を実行する。特定の実施形態では、そのVCNに対応するVCN VRは、そのVCNに属する少なくとも1つの計算インスタンスをホストするホストマシンに接続されたすべてのNVDによって実行される。ホストマシンが、異なるVCNに属する計算インスタンスをホストする場合、そのホストマシンに接続されたNVDは、それらの異なるVCNに対応するVCN VRを実行し得る。
VNICおよびVCN VRに加えて、NVDは、さまざまなソフトウェア(たとえばデーモン)を実行し、NVDによって実行されるさまざまなネットワーク仮想化機能を容易にする1つ以上のハードウェアコンポーネントを含み得る。簡単にするために、これらのさまざまなコンポーネントは、図12に示される「パケット処理コンポーネント」としてグループ化されている。たとえば、NVD1210はパケット処理コンポーネント1286を含み、NVD1212はパケット処理コンポーネント1288を含む。たとえば、NVDのパケット処理コンポーネントは、NVDのポートおよびハードウェアインターフェイスとやり取りすることによって、NVDによって受信されNVDを使用して通信されるすべてのパケットを監視し、ネットワーク情報を格納するように構成されたパケットプロセッサを含み得る。ネットワーク情報は、たとえば、NVDによって処理される異なるネットワークフローを識別するネットワークフロー情報、およびフローごとの情報(たとえばフローごとの統計)を含み得る。特定の実施形態では、ネットワークフロー情報はVNIC単位で格納され得る。パケットプロセッサは、パケットごとの操作を実行するだけでなく、ステートフルNATおよびL4ファイアウォール(FW)を実現し得る。別の例として、パケット処理コンポーネントは、NVDによって格納された情報を1つ以上の異なる複製ターゲットストアに複製するように構成された複製エージェントを含み得る。さらに別の例として、パケット処理コンポーネントは、NVDのロギング機能を実行するように構成されたロギングエージェントを含み得る。パケット処理コンポーネントはまた、NVDの性能および健全性を監視するための、さらに場合によっては、NVDに接続された他のコンポーネントのステートおよび健全性を監視するソフトウェアを含み得る。
図11は、VCNと、VCN内のサブネットと、サブネット上に展開される計算インスタンスと、計算インスタンスに関連付けられたVNICと、VCNのVRと、VCNのために構成されたゲートウェイのセットとを含む、例示的な仮想ネットワークまたはオーバーレイネットワークのコンポーネントを示す。図11に示されるオーバーレイコンポーネントは、図12に示される物理コンポーネントのうちの1つ以上によって実行またはホストされてもよい。たとえば、VCN内の計算インスタンスは、図12に示される1つ以上のホストマシンによって実行またはホストされてもよい。ホストマシンによってホストされている計算インスタンスの場合、その計算インスタンスに関連付けられたVNICは、典型的には、そのホストマシンに接続されたNVDによって実行される(すなわち、VNIC機能は、そのホストマシンに接続されたNVDによって提供される)。VCNのVCN VR機能は、そのVCNの一部である計算インスタンスをホストまたは実行するホストマシンに接続されたすべてのNVDによって実行される。VCNに関連付けられたゲートウェイは、1つ以上の異なるタイプのNVDによって実行されてもよい。たとえば、特定のゲートウェイはスマートNICによって実行されてもよく、他のゲートウェイは1つ以上のホストマシンまたはNVDの他の実現例によって実行されてもよい。
上述のように、顧客VCN内の計算インスタンスはさまざまな異なるエンドポイントと通信してもよく、当該エンドポイントは、ソース計算インスタンスと同じサブネット内にあり得るか、異なるサブネットであるがソース計算インスタンスと同じVCN内にあり得るか、または、ソース計算インスタンスのVCNの外部のエンドポイントを有し得る。これらの通信は、計算インスタンスに関連付けられたVNICと、VCN VRと、VCNに関連付けられたゲートウェイとを使用して容易になる。
VCN内の同じサブネット上の2つの計算インスタンス間の通信の場合、当該通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICを使用して容易になる。ソース計算インスタンスおよび宛先計算インスタンスは、同じホストマシンによってホストされてもよく、または異なるホストマシンによってホストされてもよい。ソース計算インスタンスから送出されるパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに転送されてもよい。NVD上で、パケットはパケット処理パイプラインを使用して処理され、これは、ソース計算インスタンスに関連付けられたVNICの実行を含み得る。パケットの宛先エンドポイントは同じサブネット内にあるので、ソース計算インスタンスに関連付けられたVNICを実行すると、パケットは、宛先計算インスタンスに関連付けられたVNICを実行するNVDに転送され、NVDは次に、パケットを処理して宛先計算インスタンスに転送する。ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICは、(たとえば、ソース計算インスタンスおよび宛先計算インスタンスの両方が同じホストマシンによってホストされている場合は)同じNVD上で実行されてもよく、または(たとえば、ソース計算インスタンスおよび宛先計算インスタンスが異なるNVDに接続された異なるホストマシンによってホストされている場合は)異なるNVD上で実行されてもよい。VNICは、NVDによって格納されたルーティング/転送テーブルを使用して、パケットのネクストホップを決定してもよい。
サブネット内の計算インスタンスから同じVCN内の異なるサブネット内のエンドポイントにパケットを通信する場合、ソース計算インスタンスから送出されるパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに通信される。NVD上で、パケットはパケット処理パイプラインを使用して処理され、これは、1つ以上のVNIC、およびVCNに関連付けられたVRの実行を含み得る。たとえば、パケット処理パイプラインの一部として、NVDは、ソース計算インスタンスに関連付けられたVNICに対応する機能を実行するか呼び出す(VNICを実行するとも呼ばれる)。VNICによって実行される機能は、パケット上のVLANタグに注目することを含み得る。パケットの宛先がサブネットの外部にあるので、次にVCN VR機能がNVDによって呼び出されて実行される。そして、VCN VRは、宛先計算インスタンスに関連付けられたVNICを実行するNVDにパケットをルーティングする。そして、宛先計算インスタンスに関連付けられたVNICは、パケットを処理し、パケットを宛先計算インスタンスに転送する。ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICは、(たとえば、ソース計算インスタンスおよび宛先計算インスタンスの両方が同じホストマシンによってホストされている場合は)同じNVD上で実行されてもよく、または(たとえば、ソース計算インスタンスおよび宛先計算インスタンスが異なるNVDに接続された異なるホストマシンによってホストされている場合は)異なるNVD上で実行されてもよい。
パケットの宛先がソース計算インスタンスのVCNの外部にある場合、ソース計算インスタンスから送出されるパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに通信される。NVDは、ソース計算インスタンスに関連付けられたVNICを実行する。パケットの宛先エンドポイントがVCNの外部にあるので、次にパケットはそのVCNのVCN VRによって処理される。NVDは、VCN VR機能を呼び出し、その結果、パケットが、VCNに関連付けられた適切なゲートウェイを実行するNVDに転送されてもよい。たとえば、宛先が顧客のオンプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VRによって、VCNのために構成されたDRGゲートウェイを実行するNVDに転送されてもよい。VCN VRは、ソース計算インスタンスに関連付けられたVNICを実行するNVDと同じNVD上で実行されてもよく、または異なるNVDによって実行されてもよい。ゲートウェイは、スマートNIC、ホストマシン、または他のNVD実現例であり得るNVDによって実行されてもよい。そして、パケットは、ゲートウェイによって処理され、意図された宛先エンドポイントへのパケットの通信を容易にするネクストホップに転送される。たとえば、図12に示される実施形態では、計算インスタンス1268から送出されるパケットは、(NIC1232を使用して)リンク1220を介してホストマシン1202からNVD1210に通信されてもよい。NVD1210上では、VNIC1276がソース計算インスタンス1268に関連付けられたVNICであるため、VNIC1276が呼び出される。VNIC1276は、パケット内のカプセル化情報を調べ、意図された宛先エンドポイントへのパケットの通信を容易にすることを目的としてパケットを転送するためのネクストホップを決定し、次に、決定したネクストホップにパケットを転送するように構成されている。
VCN上に展開される計算インスタンスは、さまざまな異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI1200によってホストされているエンドポイントおよびCSPI1200の外部のエンドポイントを含み得る。CSPI1200によってホストされているエンドポイントは、同じVCN内の、または顧客のVCNもしくは顧客に属さないVCNであり得る他のVCN内のインスタンスを含み得る。CSPI1200によってホストされているエンドポイント間の通信は、物理ネットワーク1218を介して実行されてもよい。計算インスタンスはまた、CSPI1200によってホストされていない、またはCSPI1200の外部にあるエンドポイントと通信し得る。これらのエンドポイントの例としては、顧客のオンプレミスネットワークもしくはデータセンター内のエンドポイント、またはインターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイントが挙げられる。CSPI1200の外部のエンドポイントとの通信は、さまざまな通信プロトコルを使用してパブリックネットワーク(たとえばインターネット)(図12には図示せず)またはプライベートネットワーク(図12には図示せず)を介して実行されてもよい。
図12に示されるCSPI1200のアーキテクチャは一例に過ぎず、限定することを意図していない。代替の実施形態では変形例、代替例、および修正例が可能である。たとえば、いくつかの実現例では、CSPI1200は、図12に示されるよりも多いもしくは少ないシステムもしくはコンポーネントを有してもよく、2つ以上のシステムを組み合わせてもよく、またはシステムの異なる構成もしくは配置を有してもよい。図12に示されるシステム、サブシステム、および他のコンポーネントは、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で、ハードウェアを使用して、またはそれらの組み合わせで、実現されてもよい。ソフトウェアは非一時的な記憶媒体上に(たとえばメモリデバイス上に)に格納されてもよい。
図14は、特定の実施形態に係る、マルチテナンシをサポートするためのI/O仮想化を提供するためのホストマシンとNVDとの間の接続性を示す。図14に示されるように、ホストマシン1402は、仮想化環境を提供するハイパーバイザ1404を実行する。ホストマシン1402は2つの仮想マシンインスタンス、すなわち、顧客/テナント#1に属するVM1 1406および顧客/テナント#2に属するVM2 1408を実行する。ホストマシン1402は、リンク1414を介してNVD1412に接続されている物理NIC1410を含む。計算インスタンスの各々は、NVD1412によって実行されるVNICにアタッチされている。図14の実施形態では、VM1 1406はVNIC-VM1 1420にアタッチされ、VM2 1408はVNIC-VM2 1422にアタッチされている。
図14に示されるように、NIC1410は2つの論理NIC、すなわち、論理NIC A1416および論理NIC B1418を含む。各仮想マシンは、自身の論理NICにアタッチされ、自身の論理NICとともに動作するように構成されている。たとえば、VM1 1406は論理NIC A1416にアタッチされ、VM2 1408は論理NIC B1418にアタッチされている。ホストマシン1402は、複数のテナントによって共有される1つの物理NIC1410しか含んでいないが、論理NICにより、各テナントの仮想マシンは、自身のホストマシンおよびNICを有していると信じている。
特定の実施形態では、各論理NICには、自身のVLAN IDが割り当てられる。よって、テナント#1の論理NIC A1416には特定のVLAN IDが割り当てられ、テナント#2の論理NIC B1418には異なるVLAN IDが割り当てられる。VM1 1406からパケットが通信されると、テナント#1に割り当てられたタグがハイパーバイザによってパケットにアタッチされ、次にパケットがリンク1414を介してホストマシン1402からNVD1412に通信される。同様に、VM2 1408からパケットが通信されると、テナント#2に割り当てられたタグがハイパーバイザによってパケットにアタッチされ、次にパケットがリンク1414を介してホストマシン1402からNVD1412に通信される。したがって、ホストマシン1402からNVD1412に通信されるパケット1424は、特定のテナントおよび関連付けられたVMを識別する、関連付けられたタグ1426を有する。NVD上で、ホストマシン1402からパケット1424を受信した場合、当該パケットに関連付けられたタグ1426を使用して、当該パケットをVNIC-VM1 1420によって処理するかVNIC-VM2 1422によって処理するかを判断する。そしてパケットは、対応するVNICによって処理される。図14に示される構成は、各テナントの計算インスタンスが、自身のホストマシンおよびNICを有していると信じることを可能にする。図14に示されるセットアップは、マルチテナンシをサポートするためのI/O仮想化を提供する。
図15は、特定の実施形態に係る物理ネットワーク1500の簡略化されたブロック図を示す。図15に示される実施形態は、Closネットワークとして構築されている。Closネットワークは、高い二分割帯域幅および最大リソース利用を維持しながら接続冗長性を提供するように設計された特定のタイプのネットワークトポロジである。Closネットワークは、一種の非ブロッキングの、多段または多層スイッチングネットワークであり、段または層の数は、2,3,4,5などとすることができる。図15に示される実施形態は、層1,2および3を含む3層ネットワークである。TORスイッチ1504はClosネットワーク内の層-0スイッチを表す。1つ以上のNVDがTORスイッチに接続されている。層-0スイッチは、物理ネットワークのエッジデバイスとも呼ばれる。層-0スイッチは、リーフスイッチとも呼ばれる層-1スイッチに接続されている。図15に示される実施形態では、「n」個の層-0 TORスイッチのセットが「n」個の層-1スイッチのセットに接続され、ともにポッドを形成する。あるポッド内の各層-0スイッチは、当該ポッド内のすべての層-1スイッチに相互接続されるが、ポッド間のスイッチの接続性はない。特定の実現例では、2つのポッドはブロックと呼ばれる。各ブロックは、「n」個の層-2スイッチ(スパインスイッチと呼ばれることもある)のセットによってサービスを提供されるか、または当該セットに接続されている。いくつかのブロックが物理ネットワークトポロジ内にあり得る。そして層-2スイッチは、「n」個の層-3スイッチ(スーパースパインスイッチと呼ばれることもある)に接続されている。物理ネットワーク1500を介したパケットの通信は典型的に、1つ以上のレイヤ3通信プロトコルを使用して実行される。典型的に、TOR層を除く物理ネットワークのすべての層はnウェイ冗長であり、したがって高可用性を実現することができる。物理ネットワークのスケーリングを有効にするために物理ネットワーク内のスイッチの相互の可視性を制御するポリシーを、ポッドおよびブロックに対して指定してもよい。
Closネットワークの特徴は、ある層-0スイッチから別の層-0スイッチに(または、層-0スイッチに接続されたNVDから層-0スイッチに接続された別のNVDに)到達するための最大ホップカウントが固定されていることである。たとえば、3層のClosネットワークでは、あるNVDから別のNVDにパケットが到達するために最大で7個のホップが必要であり、ソースNVDおよびターゲットNVDはClosネットワークのリーフ層に接続されている。同様に、4層のClosネットワークでは、あるNVDから別のNVDにパケットが到達するために最大で9個のホップが必要であり、ソースNVDおよびターゲットNVDはClosネットワークのリーフ層に接続されている。よって、Closネットワークアーキテクチャはネットワーク全体の遅延を一定に保つ。これは、データセンター内およびデータセンター間の通信に重要である。Closトポロジは水平方向にスケーリングされ、費用対効果が高い。さまざまな層により多くのスイッチ(たとえば、より多くのリーフスイッチおよびスパインスイッチ)を追加することによって、かつ、隣接層におけるスイッチ間のリンク数を増やすことによって、ネットワークの帯域幅/スループット容量を容易に増加させることができる。
特定の実施形態では、CSPI内の各リソースには、クラウド識別子(CID)と呼ばれる固有の識別子が割り当てられる。この識別子は、リソースの情報の一部として含まれ、たとえばコンソールを介してまたはAPIを通じてリソースを管理するために使用することができる。CIDの例示的なシンタックスは、
ocid1.<RESOURCE TYPE>.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>
である。式中、
「ocid1」は、CIDのバージョンを示すリテラル文字列である。
「resource type」は、リソースのタイプ(たとえば、インスタンス、ボリューム、VCN、サブネット、ユーザ、グループなど)である。
「realm」は、リソースが存在するレルムである。例示的な値は、商用レルムの「c1」、政府クラウドレルムの「c2」、または連邦政府クラウドレルムの「c3」などである。各レルムは自身のドメイン名を有し得る。
「region」は、リソースが存在するリージョンである。リージョンがリソースに適用されない場合、この部分は空白であってもよい。
「future use」は、将来使用するために確保されている。
「unique ID」は、IDの固有部分である。フォーマットはリソースまたはサービスのタイプによって異なり得る。
本開示の特定の実施形態を説明したが、さまざまな修正例、代替例、代替構成、および均等物も本開示の範囲内に包含される。本開示の実施形態は、特定の具体的なデータ処理環境内の動作に制限されず、複数のデータ処理環境内で自由に動作することができる。これに加えて、特定の一連のトランザクションおよびステップを用いて本開示の実施形態を説明したが、本開示の範囲は説明された一連のトランザクションおよびステップに限定されないことは、当業者に明らかであるはずである。上述した実施形態のさまざまな特徴および態様は、個別にまたは共同で使用されてもよい。
さらに、ハードウェアとソフトウェアとの特定の組み合わせを用いて本開示の実施形態を説明したが、ハードウェアとソフトウェアとの他の組み合わせも本開示の範囲内にあることが認識されるべきである。本開示の実施形態は、ハードウェアのみで、またはソフトウェアのみで、またはそれらの組み合わせを用いて、実現されてもよい。本明細書に記載されているさまざまなプロセスは、同じロセッサまたは任意の組み合わせの異なるプロセッサ上で実現することができる。したがって、コンポーネントまたはモジュールが特定の動作を実行するように構成されると記載されている場合、そのような構成は、たとえば、その動作を実行するように電子回路を設計することによって、その動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組み合わせによって、達成することができる。プロセスは、プロセス間通信のための従来技術を含むさまざまな技術を用いて通信することができるが、これに限定されず、プロセスの異なるペアが異なる技術を使用してもよく、またはプロセスの同じペアが異なる時間に異なる技術を使用してもよい。
したがって、明細書および図面は、限定的ではなく例示的であるとみなされるべきである。しかしながら、特許請求の範囲に記載されたより広義の精神および範囲から逸脱することなく、追加、削減、削除、ならびに他の修正および変更をそれらに対して行ってもよいことが明らかであろう。ゆえに、本開示の特定の実施形態を説明したが、これらは限定することを意図していない。さまざまな修正および均等物が添付の特許請求の範囲に含まれる。
開示されている実施形態を説明する文脈における(特に、添付の特許請求の範囲の文脈における)「a」および「an」および「the」という語、ならびに同様の指示対象の使用は、本明細書において特に明記しない限り、または文脈上明らかに矛盾のない限り、単数および複数の両方を含むと解釈されるべきである。「備える」、「有する」、「含む」、および「含有する」という語は、特に記載されていない限り、非限定的な語であると解釈されるべきである(すなわち、「…を含むがこれらに限定されない」ことを意味する)。「接続される」という語は、何かが介在している場合であっても、一部または全部が含まれている、取り付けられている、または結合されていると解釈されるべきである。本明細書における値の範囲の記載は、本明細書において特に明記しない限り、その範囲内に含まれる個別の各値に個々に言及することを省略する方法であることが意図されているに過ぎず、個別の各値は本明細書において個別に記載されているかのように本明細書に組み込まれる。本明細書に記載されている方法はすべて、本明細書において特に明記しない限り、または文脈上明らかに矛盾のない限り、任意の適切な順序で実行することができる。本明細書に提供されているあらゆる例、または例示的な言い回し(たとえば「~など」)の使用は、本開示の実施形態をより明らかにすることを意図しているに過ぎず、特にクレームされていない限り、本開示の範囲を限定するものではない。明細書中のすべての言い回しは、クレームされていない要素が本開示を実施するのに必須の要素であることを示す言い回しであると解釈されるべきではない。
「X、Y、またはZのうちの少なくとも1つ」というフレーズなどの離接的な言い回しは、特に具体的に明記されていない限り、項目、用語などがX、Y、もしくはZ、またはそれらの任意の組合せ(たとえば、X、Y、および/もしくはZ)のいずれかであり得ることを提示するために一般的に使用される文脈内で理解されることが意図されている。ゆえに、このような離接的な言い回しは、概して、特定の実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくとも1つが各々存在することが必要であることを含意することを意図しておらず、またそのように含意すべきではない。
本開示を実施するために知られている最良の形態を含む、本開示の好ましい実施形態が本明細書に記載されている。上記の説明を読むと、これらの好ましい実施形態の変形例が当業者に明らかになるであろう。当業者は、このような変形例を適宜採用することができるはずであり、本開示は、本明細書に具体的に記載されている以外の方法で実施されてもよい。したがって、本開示は、適用される法律によって許可される、本明細書に添付された特許請求の範囲に記載されている主題のすべての修正例および均等物を含む。さらに、そのすべての可能な変形例における上述の要素の任意の組み合わせは、本明細書に特に示されていない限り、本開示に包含される。
本明細書において引用されている刊行物、特許出願、および特許を含むすべての参考文献は、各文献が引用により援用されることが個別にかつ具体的に示され、その全体が本明細書に記載された場合と同じ程度に、引用により本明細書に援用される。
上記の明細書では、本開示の態様をその具体的な実施形態を参照して説明しているが、当業者は、本開示がそれらに限定されないことを認識するであろう。上述した開示のさまざまな特徴および態様は、個別にまたは共同で使用されてもよい。さらに、実施形態は、本明細書のより広義の精神および範囲から逸脱することなく、本明細書に説明されているものを超える任意の数の環境および用途で利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。

Claims (20)

  1. システムであって、
    第1の仮想マシンをインスタンス化するように構成された第1の仮想化エンジンを含み、前記第1の仮想化エンジンは、
    第1のキーを格納するように構成された第1のメモリデバイスを含み、前記第1のキーは暗号キーであり、前記第1の仮想化エンジンはさらに、
    前記第1のキーを使用して前記第1の仮想マシンへのおよび/または前記第1の仮想マシンからのデータを暗号化および/または復号するように構成された第1の暗号プロセッサを含み、前記システムはさらに、
    第2の仮想マシンをインスタンス化するように構成された第2の仮想化エンジンを含み、前記第2の仮想化エンジンは、
    第2のキーを格納するように構成された第2のメモリデバイスを含み、前記第2のキーは暗号キーであり、前記第2の仮想化エンジンはさらに、
    前記第2のキーを使用して前記第2の仮想マシンへのおよび/または前記第2の仮想マシンからのデータを暗号化および/または復号するように構成された第2の暗号プロセッサを含み、
    前記第1の仮想化エンジンおよび前記第2の仮想化エンジンはデバイスの一部であり、
    前記デバイスのホストは前記第1のキーおよび前記第2のキーへのアクセスを有していない、システム。
  2. 前記第1の仮想化エンジンは、キー管理サービスから前記第1のキーを受け取り、前記第1のキーを前記第1のメモリデバイスに保存するように構成されている、請求項1に記載のシステム。
  3. 前記キー管理サービスは、前記デバイスの前記ホストが顧客のための前記第1のキーへのアクセスを有することなく、前記第1のキーを前記デバイスに提供する、請求項2に記載のシステム。
  4. 前記第1の仮想化エンジンは、前記キー管理サービスにクレデンシャルを提供して前記第1のキーを受け取る、請求項1または2のいずれか1項に記載のシステム。
  5. 前記第1のメモリデバイスは、コンデンサおよびトランジスタを含むスタティックランダムアクセスメモリデバイスである、請求項1~4のいずれか1項に記載のシステム。
  6. 前記第1の仮想化エンジンおよび前記第2の仮想化エンジンは各々、一度に1つの仮想マシンのみをインスタンス化するように構成されている、請求項1~5のいずれか1項に記載のシステム。
  7. 前記第1の仮想マシンは第1の仮想クラウドネットワークの一部であり、前記第2の仮想マシンは第2の仮想クラウドネットワークの一部である、請求項1~6のいずれか1項に記載のシステム。
  8. 前記第1の暗号プロセッサは、前記第1の仮想マシンのためのインラインデータ暗号化を提供するように構成されている、請求項1~7のいずれか1項に記載のシステム。
  9. 前記第1の仮想化エンジンは、前記第1の仮想化マシンのためのデータパケットのネットワークルーティングを提供するように構成されている、請求項1~8のいずれか1項に記載のシステム。
  10. 前記第1のキーは前記第2のキーと同じである、請求項1~9のいずれか1項に記載のシステム。
  11. 前記デバイスはネットワークインターフェイスカードである、請求項1~10のいずれか1項に記載のシステム。
  12. 前記第1のキーは定期的に更新される、請求項1~11のいずれか1項に記載のシステム。
  13. 前記第1の仮想マシンおよび前記第2の仮想マシンは、サブネットの一部である、請求項1~12のいずれか1項に記載のシステム。
  14. 前記第1の仮想マシンおよび前記第2の仮想マシンは、異なる仮想クラウドネットワークの一部である、請求項1~12のいずれか1項に記載のシステム。
  15. 前記第1のキーおよび前記第2のキーは同時にリフレッシュされる、請求項1~14のいずれか1項に記載のシステム。
  16. 方法であって、
    第1の仮想化エンジンを使用して第1の仮想マシンをインスタンス化することと、
    第2の仮想化エンジンを使用して第2の仮想マシンをインスタンス化することと、
    前記第1の仮想化エンジンの第1のメモリデバイスに第1のキーを格納することと、
    前記第2の仮想化エンジンの第2のメモリデバイスに第2のキーを格納することと、
    第1の暗号プロセッサおよび前記第1のキーを使用して前記第1の仮想マシンのデータを暗号化することとを含み、前記第1の暗号プロセッサは前記第1の仮想化エンジンの一部であり、前記方法はさらに、
    第2の暗号プロセッサおよび前記第2のキーを使用して前記第2の仮想エンジンのデータを暗号化することを含み、
    前記第2の暗号プロセッサは前記第2の仮想化エンジンの一部であり、
    前記第1の仮想化エンジンおよび前記第2の仮想化エンジンはデバイスの一部であり、
    前記デバイスのホストは前記第1のキーまたは前記第2のキーへのアクセスを有していない、方法。
  17. 前記第1のキーは前記第2のキーとは異なる、請求項16に記載の方法。
  18. 前記第1のメモリデバイスは、前記第1の仮想マシンのみのためのキーを格納するように構成されている、請求項16または17のいずれか1項に記載の方法。
  19. 1つ以上のプロセッサによって実行可能な複数の命令を格納する非一時的なコンピュータ読取可能メモリであって、前記複数の命令は、前記1つ以上のプロセッサによって実行されると前記1つ以上のプロセッサに処理を実行させる命令を含み、前記処理は、
    第1の仮想化エンジンを使用して第1の仮想マシンをインスタンス化することと、
    第2の仮想化エンジンを使用して第2の仮想マシンをインスタンス化することと、
    前記第1の仮想化エンジンの第1のメモリデバイスに第1のキーを格納することと、
    前記第2の仮想化エンジンの第2のメモリデバイスに第2のキーを格納することと、
    第1の暗号プロセッサおよび前記第1のキーを使用して前記第1の仮想マシンのデータを暗号化することとを含み、前記第1の暗号プロセッサは前記第1の仮想化エンジンの一部であり、前記処理はさらに、
    第2の暗号プロセッサおよび前記第2のキーを使用して前記第2の仮想エンジンのデータを暗号化することを含み、
    前記第2の暗号プロセッサは前記第2の仮想化エンジンの一部であり、
    前記第1の仮想化エンジンおよび前記第2の仮想化エンジンはデバイスの一部であり、
    前記デバイスのホストは前記第1のキーまたは前記第2のキーへのアクセスを有していない、非一時的なコンピュータ読取可能メモリ。
  20. 前記複数の命令は、前記1つ以上のプロセッサによって実行されると、前記第1の仮想化エンジンのメモリデバイスに暗号キーを格納することを含む処理を前記1つ以上のプロセッサに実行させる命令をさらに含む、請求項19に記載の非一時的なコンピュータ読取可能メモリ。
JP2023538778A 2020-12-23 2021-12-16 ネットワーク仮想化デバイスにおいて顧客管理キーを使用して顧客vcnネットワーク暗号化を提供するメカニズム Pending JP2024502770A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/133,526 US11856097B2 (en) 2020-12-23 2020-12-23 Mechanism to provide customer VCN network encryption using customer-managed keys in network virtualization device
US17/133,526 2020-12-23
PCT/US2021/063714 WO2022140142A1 (en) 2020-12-23 2021-12-16 Mechanism to provide customer vcn network encryption using customer-managed keys in network virtualization device

Publications (1)

Publication Number Publication Date
JP2024502770A true JP2024502770A (ja) 2024-01-23

Family

ID=79686960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023538778A Pending JP2024502770A (ja) 2020-12-23 2021-12-16 ネットワーク仮想化デバイスにおいて顧客管理キーを使用して顧客vcnネットワーク暗号化を提供するメカニズム

Country Status (5)

Country Link
US (1) US11856097B2 (ja)
EP (1) EP4268425A1 (ja)
JP (1) JP2024502770A (ja)
CN (1) CN116803053A (ja)
WO (1) WO2022140142A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11689455B2 (en) 2020-05-28 2023-06-27 Oracle International Corporation Loop prevention in virtual layer 2 networks
US11765080B2 (en) 2020-12-30 2023-09-19 Oracle International Corporation Layer-2 networking span port in a virtualized cloud environment
US11671355B2 (en) 2021-02-05 2023-06-06 Oracle International Corporation Packet flow control in a header of a packet
US20220263754A1 (en) * 2021-02-13 2022-08-18 Oracle International Corporation Packet flow in a cloud infrastructure based on cached and non-cached configuration information
US11777897B2 (en) 2021-02-13 2023-10-03 Oracle International Corporation Cloud infrastructure resources for connecting a service provider private network to a customer private network
JP2024507147A (ja) * 2021-02-13 2024-02-16 オラクル・インターナショナル・コーポレイション クラウドインフラストラクチャにおけるキャッシュされたフロー情報の無効化
US11675804B2 (en) * 2021-08-18 2023-06-13 Jpmorgan Chase Bank, N.A. Systems and methods for universal data ingestion
US20230078179A1 (en) * 2021-09-10 2023-03-16 Arista Networks, Inc. High frequency rotation of cryptographic data
US11579783B1 (en) * 2022-03-09 2023-02-14 Vim Inc. Multi-tenant storage
US20230353358A1 (en) * 2022-04-27 2023-11-02 Dell Products L.P. Disaggregated key management in a distributed system

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8923307B2 (en) * 2003-07-14 2014-12-30 Broadcom Corporation Method and system for an integrated dual port gigabit ethernet controller chip
US8898452B2 (en) 2005-09-08 2014-11-25 Netapp, Inc. Protocol translation
US8503468B2 (en) * 2008-11-05 2013-08-06 Fusion-Io, Inc. PCI express load sharing network interface controller cluster
US8739177B2 (en) * 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
US8954704B2 (en) * 2011-08-12 2015-02-10 International Business Machines Corporation Dynamic network adapter memory resizing and bounding for virtual function translation entry storage
US20140019745A1 (en) * 2012-07-12 2014-01-16 David S. Dodgson Cryptographic isolation of virtual machines
US9197551B2 (en) 2013-03-15 2015-11-24 International Business Machines Corporation Heterogeneous overlay network translation for domain unification
US9934057B2 (en) * 2014-04-21 2018-04-03 Oracle International Corporation Shadow VNICs for the control and observability of IO virtual functions
US9979704B2 (en) 2014-12-17 2018-05-22 Cisco Technology, Inc. End-to-end security for virtual private service chains
US9578008B2 (en) * 2015-05-11 2017-02-21 Intel Corporation Technologies for secure bootstrapping of virtual network functions
US10326744B1 (en) 2016-03-21 2019-06-18 EMC IP Holding Company LLC Security layer for containers in multi-tenant environments
US10693732B2 (en) 2016-08-03 2020-06-23 Oracle International Corporation Transforming data based on a virtual topology
US10771439B2 (en) * 2017-06-28 2020-09-08 Microsoft Technology Licensing, Llc Shielded networks for virtual machines
US10614028B2 (en) 2017-09-14 2020-04-07 Microsoft Technology Licensing, Llc Network traffic routing in distributed computing systems
US11687654B2 (en) * 2017-09-15 2023-06-27 Intel Corporation Providing isolation in virtualized systems using trust domains
US10721072B2 (en) 2017-09-29 2020-07-21 Xilinx, Inc. Network interface device and method
US10545883B2 (en) 2017-09-29 2020-01-28 Intel Corporation Verification bit for one-way encrypted memory
US10708247B2 (en) * 2018-09-27 2020-07-07 Intel Corporation Technologies for providing secure utilization of tenant keys
US11044238B2 (en) * 2018-10-19 2021-06-22 International Business Machines Corporation Secure communications among tenant virtual machines in a cloud networking environment
LU101362B1 (en) * 2019-08-26 2021-03-12 Microsoft Technology Licensing Llc Computer device including process isolated containers with assigned virtual functions
US11934330B2 (en) 2020-05-08 2024-03-19 Intel Corporation Memory allocation for distributed processing devices
JP2023535150A (ja) 2020-07-14 2023-08-16 オラクル・インターナショナル・コーポレイション レイヤ2ネットワーク内のインターフェイスベースのacl
US20220164451A1 (en) 2020-11-23 2022-05-26 Verizon Patent And Licensing Inc. Smart network interface card-based inline secure communication service

Also Published As

Publication number Publication date
EP4268425A1 (en) 2023-11-01
US11856097B2 (en) 2023-12-26
US20220200801A1 (en) 2022-06-23
CN116803053A (zh) 2023-09-22
WO2022140142A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
US11856097B2 (en) Mechanism to provide customer VCN network encryption using customer-managed keys in network virtualization device
US11848918B2 (en) End-to-end network encryption from customer on-premise network to customer virtual cloud network using customer-managed keys
US20230041806A1 (en) Location-independent programming data plane for packet processing
US11671355B2 (en) Packet flow control in a header of a packet
US20240154904A1 (en) Dynamic ip routing in a cloud environment
US20230031821A1 (en) Overlay network based techniques for enabling communication between on-premises and cloud hosted data centers
US11637770B2 (en) Invalidating cached flow information in a cloud infrastructure
US20230224223A1 (en) Publishing physical topology network locality for general workloads
US20230246956A1 (en) Invalidating cached flow information in a cloud infrastructure
US20220417138A1 (en) Routing policies for graphical processing units
US20240126581A1 (en) Implementing communications within a container environment
US20240054004A1 (en) Dual top-of-rack switch implementation for dedicated region cloud at customer
US20230222007A1 (en) Publishing physical topology network locality information for graphical processing unit workloads
US20230412496A1 (en) Geometric based flow programming
WO2023136965A1 (en) Publishing physical topology network locality for general workloads
WO2024039520A1 (en) Dual top-of-rack switch implementation for dedicated region cloud at customer
WO2024039522A1 (en) Network architecture for dedicated region cloud at customer
WO2022271990A1 (en) Routing policies for graphical processing units
EP4360280A1 (en) Routing policies for graphical processing units
WO2023136964A1 (en) Publishing physical topology network locality information for graphical processing unit workloads
WO2024039519A1 (en) Multiple top-of-rack (tor) switches connected to a network virtualization device
WO2024039521A1 (en) Providing fault-resistance services in a dedicated region cloud at customer