三流エンジニアの落書き帳

さあ、今日も未知という扉を開けてみよう

OCIの勉強メモ~VCN編~

OCIの勉強会(?)第2回目はVCNです。

クラウドでサービスを構築する際の最も基本的な要素なので、しっかり要点を押さえたいところです。

VCNの特徴

VCN(Virtual Cloud Network)は、OCI上で仮想ネットワークを提供するリージョナルサービス

AWSで言うところのVPCに該当するサービスで、数クリックで簡単にネットワークを構成できるのが特徴

VCNのIPアドレス範囲は/16~/30までとなっている

ただし、CIDRブロックの数に関係なく、VCN内で作成できるプライベートIPの最大数は64,000となっている

デフォルト・コンポーネント

VCNを作成すると、次の3つのコンポーネントが自動で作成される

  • ルート表
  • セキュリティ・リスト
  • DHCPオプション・セット

セキュリティ・リストとはサブネットに関連付けられている仮想ファイアフォール、AWSで言うところのネットワークACLのようなもの

後に出てくるがOCIにはもう一つネットワーク・セキュリティ・グループ(NSG)と呼ばれるものがある

これはAWSで言うところのセキュリティグループで、コンピュートインスタンスのような特定のサービスに関連付けられている仮想ファイアフォール

サブネット

VCNを作成しても、そこにコンピュートインスタンスを配置することはできない

各VCNネットワークは、さらにサブネットの単位で細分化する必要がある

コンピュートインスタンスは、サブネットに配置されそのサブネットから、内部IPアドレスとネットワーク構成を取得する

サブネットにはタイプとして、リージョナルと可用性ドメイン固有が存在するが、リージョナルが推奨されてい

またサブネットの種類として、インターネットから直接到達可能なパブリックサブネットと、インターネットから直接到達不可能なプライベートサブネットが存在する

VNIC

サブネットに配置されたインスタンスには、各サブネットに属するVNIC(Virtual Network Interface Card)がアタッチされる

VNICには必ず1つのプライマリープライベートIPアドレス*1が付随し、さらに最大31個のセカンダリプライベートIPを付与することができる

1つのインスタンスに複数のVNICをアタッチすることも可能

パブリックIP

インターネットから到達可能なIPv4アドレスをパブリックIPと呼ぶ

1つのインスタンスに、複数のVNICで複数のパブリックIPを割り当てることも可能

パブリックIPには次の2種類が存在する

セキュリティ・リスト(SL)

サブネットに関連付けられたファイアウォール

そのサブネット内で起動しているインスタンスすべてに適用される*3

前述した通り、AWSではネットワークACLに該当する機能である

ただし、ネットワークACLと異なり、ルールでステートフルかステートレスを選択できる

1つのサブネットに最大で5つのSLを関連付けることができる

ネットワーク・セキュリティ・グループ(NSG)

サブネットに関連付けるセキュリティ・リストに対して、NSGはコンピュートインスタンスといったリソースに関連付けるファイアウォール*4

AWSで言うところのセキュリティグループに該当する機能である

NSGの送信元または送信先NSG自体を指定することも可能

SLと併用して利用できるが、その場合SLまたはNSGのいずれかのルールによりトラフィックが許可されている場合、そのパケットは許可される(どちらもAllowしか記述できないので、当たり前といえば当たり前)

Bastionホスト

いわゆる踏み台サーバーのこと

一般的にプライベートサーバーに接続する際は、Bastionサーバーに一度SSHで接続し、そこからさらにプライベートサーバーにSSHで接続する

そのため、Bastionホストは外部からSSH接続可能なサブネットに配置する必要がある

Gateway

Internet Gateway

VCNとインターネットの通信に必要なゲートウェイ

NAT Gateway

プライベートサブネットにあるインスタンスは、インターネットへの通信ができない

しかし、ソフトウェアの更新などインターネットへ通信を行う必要もある

そういう場合にはNATゲートウェイを作成し、NATゲートウェイを経由することでインターネットへの通信を可能とする

こうすることで、プライベートサブネットからインターネットへの一方通行の通信が可能となる

Service Gateway

VCNとOracle Service Network(OSN)間の通信を、インターネットを経由することなく安全に行うためのゲートウェイ

例えばコンピュートインスタンスからオブジェクトストレージに通信する際に、インターネットを経由せずに通信をしたい場合などに使える

(イメージとしては、AWSVPCエンドポイントに近いのか?)

Dynamic Routing Gateway

VCNとオンプレミスネットワーク、OCI VCNなどの間のプライベート通信を行うためのゲートウェイ

AWSの仮想プライベートゲートウェイと似たようなもの?)

VCN Peering

Local Perring Gateway(LPG)

同一リージョン内の、2つのVCN間のプライベート接続を行う*5

Remote Peering Connection(Dynamic Routing Gateway)

異なるリージョン間で、2つのVCN間のでプライベート接続を行う*6

ただし、Remote Peeringは機能拡張をして、同一リージョン間でもプライベート接続を行えるようになった

DRG(Dynamic Routing Gateway)の機能拡張

  • リモートピアリング接続(RPC)
  • 複数のVCNにDRGを接続して、VCN間ネットワーク接続を提供する
  • Remote On Ramp/Transit Routing
  • DRGを複数利用した冗長化構成
  • ECMP*7のサポート

DRGは下記の3つのリソースに接続可能である

  • VCN
  • RPC(Remote Peering Connection)
  • サイト間VPN IPSecトンネル

VCNからオンプレミスへの接続

VPN

構成の流れ

  1. VCNを作成
  2. DRGを作成し、VCNにアタッチ
  3. ルートテーブルを更新する
  4. オンプレミス側にCPEオブジェクトを作成
  5. CPEとDRGの間にIPSec接続を作成し、スタティック・ルートを提供するか、BGPルーティングを使用する
  6. オンプレミスのCPEルートを設定する

FastConnect

  • 専用線サービス(AWSのDirect Connectのようなもの)
  • FastConnectダイレクトか、FastConnectパートナーを介して接続
  • DRG(Dynamic Routing Gateway)に接続
  • ポート速度は1Gbps、10Gbps単位で設定可能
  • 受信/送信データの転送に料金はかからない
  • BGPプロトコルを使用
  • SLA対象(99.9%の可用性)

まとめ

というわけで、2回目はVCNについて勉強しました。

VCNは基本中の基本となるサービスなので、他のサービスを勉強する際にも出てきそうですね。

*1:パブリックサブネットに存在する場合、オプションでパブリックIPで割り当てることが可能

*2:ただしAWSのように利用していないときに課金が発生するといったことは無いようだ

*3:正確にはVNICに適用されている

*4:厳密にはVNICに関連付けている

*5:もちろん、2つのVCNはCIDRが重複してはいけない

*6:同一テナントである必要がある

*7:等コストの経路が複数存在するときに、トラフィックを振り分ける転送メカニズム