【OCIjp】OCI仮想ネットワークを一から構築

こんにちは!
OCIjp #5で、仮想ネットワークを一から構築するデモで登壇しました。k.otsukaです。
今回は、登壇資料の配布と、
改めて「QuickStart」で作成できる仮想ネットワークを手動で一から作成する方法を記載していきます。
当日来られなかった方や振り返りたい方はぜひご覧ください。

また登壇したときも触れませんでしたが、本記事でもコンパートメントには触れません。
コーソルさんの以下の記事がとても分かりやすいので、ご参照ください。

cosol.jp

本記事の目次

VCNとサブネット

VCN

  • OCI上に作成できるプライベートな仮想ネットワークをVCNVirtual Cloud Network)と呼びます。
    プライベートIPアドレスの値は自由に設定することが可能ですが、グローバルIPアドレスと重なる形で作成してしまうと、障害が起きる可能性があります。
    基本的には世界共通ルールに則って、以下の範囲の中でVCNの作成を行いましょう。
作成範囲 プライベートIPアドレス範囲
大規模 10.0.0.0〜10.255.255.255
中規模 172.16.0.0〜172.31.255.255
小規模 192.168.0.0〜192.168.255.255

tech.nikkeibp.co.jp

  • 作成方法
    リソース選択画面から[ネットワーキング]⇒[仮想クラウド・ネットワーク]を選択し、[仮想クラウド・ネットワークの作成]ボタンをクリックします。
    f:id:k_otsuka_atom:20200122155356p:plain

  • 設定値

項目 設定値
名前 vcn-otsuka
CIDRブロック 10.1.0.0/16
DNS解決
DNSラベル 無記入
  • 補足
    • CIDRの範囲ついて
      VCNで作成できるCIDRの範囲は「16~30」までです。
    • DNS解決について
      VCN配下に作成するインスタンスなどに、ホスト名を割り当てるかどうかの確認項目です。
      作成時に要件など特に指定がない場合は、☑を付けたまま作成することをオススメします。
    • DNSラベルについて
      無記入の場合は、「名前」の項目で入力した文字列が「-」「_」などの記号を削除された状態で付けられます。任意で入力しても構いません。

f:id:k_otsuka_atom:20200122152547p:plain

  • 項目を埋めたら[仮想クラウド・ネットワークの作成]ボタンをクリックすると、VCNが作成されます。

サブネット

  • 作成したVCNを、さらに細かく分割して使用するための領域のことをサブネットと呼びます。
    OCIの場合は、インスタンスを立てるにはサブネットの作成が必須となります。
    VCNの上位ビット数に注意して、サブネットを作成しましょう。
    本記事では、インターネットから接続が可能な「パブリック・サブネット」とインターネットから接続ができない「プライベート・サブネット」を作成していきます。

  • 作成方法
    VCNを作成すると「仮想クラウド・ネットワークの詳細」画面に飛んでいます。
    画面内中央にある[サブネットを作成]ボタンを押し、作成画面に移りましょう。
    設定値を入力し、[サブネット作成]ボタンを押すとサブネットを作成されます。

  • 設定値

項目 パブリック・サブネット プライベート・サブネット
名前 otsuka-public-subnet otsuka-private-subnet
サブネット・タイプ リージョナル(推奨) リージョナル(推奨)
CIDRブロック 10.1.1.0/24 10.1.2.0/24
ルート表 Default Route Table Default Route Table
サブネット・アクセス パブリック・サブネット プライベート・サブネット
DNS解決
DNSラベル 無記入 無記入
DHCPオプション Defalult DHCP Options Defalult DHCP Options
セキュリティ・リスト Default Security List Default Security List
  • 補足
    • サブネット・タイプについて
      「リージョナル」を選択すると、アベイラビリティ・ドメイン(AD)を分けてインスタンスを作成することができ、ロードバランシングを採用する際に、高可用性に繋がります。
      「可用性ドメイン固有」を選択すると、1つのADにのみインスタンスを作成するように設定されます。
      リージョナルを選択した場合でも、ADを1つに集中して作成することは可能なので
      特に必要がない限りは、「リージョナル」を選択しましょう。
    • サブネット・アクセスについて
      「プライベート・サブネット」を選択すると、OCIサービスに対して、パブリックIPアドレスが付与できない構成になります。「パブリック・サブネット」はその逆になります。こちらは、作成するサブネットの用途に応じて選択しましょう。
    • DHCPオプションについて
      デフォルトのオプションを選択することで、2つの機能が追加されます。
      ・インターネット・リゾルバ…インターネット上に公開されているホスト名を名前解決できるようにする
      ・VCNリゾルバ…同じVCN内のインスタンスのホスト名を名前解決できるようにする
      どちらも便利な機能になりますので、必ず選択しましょう。
      ※ 「選択しましょう」と書きましたが、「ルート表」「DHCPオプション」「セキュリティ・リスト」は、選択しないでサブネット作成しても自動的にデフォルトのものが付与されるので、実は忘れても問題なかったりします。

f:id:k_otsuka_atom:20200122161607p:plain

各種ゲートウェイ

本記事で使用するゲートウェイを紹介します。

  • インターネット・ゲートウェイ
    インターネットからサブネットへアクセス、もしくはサブネット内からインターネットへアクセスするときに使用するゲートウェイです。
    主に、パブリック・サブネット用に使われます。
  • NATゲートウェイ
    サブネット内からインターネットへアクセスするときに使用するゲートウェイです。
    内⇒外用なので、インターネットから通信を行うことができません。
    主に、プライベート・サブネット用に使われます。
  • サービス・ゲートウェイ
    Oracleが提供しているサービス(オブジェクト・ストレージなど)へのアクセスのみしたい場合に使用するゲートウェイです。

  • 作成方法
    ゲートウェイ作成手順はほぼ同じなので、少しだけ選択肢が増えるサービス・ゲートウェイを、本記事では作成していきます。
    ※裏では3つ作ってます。
    [仮想クラウド・ネットワークの詳細]画面にあるリソース選択の中から、[サービス・ゲートウェイ]を選択し
    [サービス・ゲートウェイの作成]ボタンを押しましょう。

f:id:k_otsuka_atom:20200122175742p:plain

  • サービス・ゲートウェイには、サービスの種類を選択することができます。
    • OCI NRT Object Storage オブジェクト・ストレージと接続するときのみに使用するゲートウェイです。
    • ALL NRT Services In Oracle Services Network その他Oracleサービスと接続したいときに使用するゲートウェイです。

オブジェクト・ストレージとも接続可能なので、事情が無い限りは「ALL NRT Services In Oracle Services Network」で作成をオススメします。
f:id:k_otsuka_atom:20200123160520p:plain

  • 「インターネット・ゲートウェイ」と「NATゲートウェイ」も同様の方法で作成することができます。

ルート表

  • ”作成したゲートウェイとどこを繋ぐのか”をルート表に登録することで、通信ができるようになります。
    ※例:インターネットとサブネット間の通信
    デモでは、パブリック・サブネット用のルート表に、"インターネット・ゲートウェイ"を登録し
    プライベート・サブネット用のルート表に、"NATゲートウェイ"とサービス・ゲートウェイ"を登録しました。
    本記事では、パブリック・サブネット用のルート表の作成方法のみ紹介します。
    構成は以下のようになります。
項目 パブリック・サブネット用 プライベート・サブネット用
名前 public-route-table pribate-route-table
ターゲット・タイプ インターネット・ゲートウェイ NATゲートウェイ
CIDRブロック 0.0.0.0/0 0.0.0.0/0
ターゲット・ゲートウェイ <作成したゲートウェイの名前> <作成したゲートウェイの名前>
  • 作成方法
    • [仮想クラウド・ネットワークの詳細]画面にあるリソース選択の中から、[ルート表]を選択し
      [ルート表の作成]ボタンを押しましょう。
    • 上記の構成表のように値を入力し[ルート表の作成]ボタンを押すことで、ルート表の作成は完了となります。

f:id:k_otsuka_atom:20200124100128p:plain

セキュリティ・リスト

  • ルート表を登録しただけでは、通信はできません。
    OCIのトラフィック制御機能のセキュリティ・リストから、ポートの開放を行いましょう。
    イングレスは、外側から内側へのルール設定で
    エグレスは、内側から外側へのルール設定となります。
  • ルールを追加する際、トラフィックを「ステートレス」にするためのチェック項目があります。
    特別な要件や設計が無い限りは、チェックマークを付けないで作成すると良いです。
    ざっくり説明すると
    ステートレス(☑あり)...片側(イングレスであれば、外⇒内)のトラフィックが許可されている状態
    ステートフル(☑なし)…両側(イングレスであれば、外⇒内,内⇒外)のトラフィックが許可されている状態
    となります。
    ステートレスでセキュリティ・リストを作る場合は、エグレス側にもイングレス側で許可したポート設定が必要になるので、ご注意ください。

  • 作成方法
    イングレスルールもエグレスルールも作成方法はほぼ同じです。
    本記事では、イングレスルールには「TCP:ポート22」,エグレスルールには「すべてのトラフィックを全開放」なセキュリティ・リストを作成します。

    • [仮想クラウド・ネットワークの詳細]画面にあるリソース選択の中から、[セキュリティ・リスト]を選択し、[セキュリティ・リストの作成]ボタンを押しましょう。
    • 「IPプロトコル」から「TCP」を選択し、「宛先ポート範囲」に特定のポート番号を入力することで、サブネット内に建てたインスタンスに、そのポート番号でのみ通信することができます。
      「22」と入力し、SSH接続が可能な状態にしましょう。
      f:id:k_otsuka_atom:20200128104546p:plain

    • すべてのトラフィックを全開放する場合は、IPプロトコルで「すべてのプロトコル」を選択します。
      f:id:k_otsuka_atom:20200124114311p:plain

  • ルール作成が終わったら、[セキュリティ・リストの作成]ボタンを押すことで、セキュリティ・リストの作成は完了となります。

作成後処理

  • 作成した「ルート表」「セキュリティ・リスト」は、必ず対象のサブネットに対して変更を加えましょう。
  • 「ルート表」は、サブネット詳細画面の[編集]ボタンから変更ができます。サブネット作成時の画面が表示されるので、新しく作ったものを選択して、[変更の保存]ボタンを押しましょう。
  • 「セキュリティ・リスト」は、サブネット詳細画面の[セキュリティ・リストの追加]ボタンから追加ができます。合計5個まで追加できますが、不要なものは削除しましょう。

f:id:k_otsuka_atom:20200128153352p:plain

QuickStartのススメ

  • [ネットワーキングQuickStart]を活用すると上記の作業が1~2分で完了します。
    サクッと環境を作成したいときに非常に便利な機能です。

  • 今回の環境は「インターネット接続性を持つVCN」を選択することで作成できます。
    作り方も非常に簡単で、「VCN」と「サブネット」のIPアドレスとCIDR範囲を入力して2回クリックするだけです。

  • リソースの表示名も自動的に付けられます。
    「サブネット」以外変更できない点だけ注意が必要です。
    サブネットだけ変更できるのもおかしな話なので、アップデートに期待したいですね f:id:k_otsuka_atom:20200128162119p:plain

終わりに

感覚的にサクッと作成できそうな仮想ネットワークも、一から作るとなると少し時間はかかりますし、何度も作るとなると億劫になります。
QuickStartがどこからどこまで作られて、何の設定されるのかも把握しておくことで、そこからまた設定をしていくこともできます。
ぜひ今後活躍していきたいたいですね。

告知

初心者・管理者のためのOCIのユーザーグループ会が毎月第3火曜に開催されています!!
興味がある方はぜひ一緒に参加しましょう!

fullenergy-oci.connpass.com