OCI VCNの作り方:3層サブネットの分け方、CIDR、作成の順番を図解

※当ページにはAmazonアソシエイト等の広告リンクを含みます。

公式ドキュメントで検証最終検証 2026-11-01編集部出典 12件

当ページの解説・制限値・構成図は、一般公開されている Oracle Cloud Infrastructure (OCI) 公式ドキュメント、Oracle Cloud Price List、および Oracle University 公開試験ガイドを一次根拠として検証し、独自のSVG視覚図解として作成しています。

1. 3層に分ける理由

題材は、社員30人の会社の経費申請Webアプリです。社内向けですが、社員は外出先からも使うので、入口はインターネットに置きます。ただし、外から届く場所は1つに絞ります。

そこで、役割ごとにサブネットを3つに分けます。

Three Tier VCN経費申請アプリの3層サブネット
社員社内・外出先VCN 10.0.0.0/16(compartment: network)public-lb10.0.0.0/24Flexible LBWAFポリシーパブリックサブネットLBが公開IPを持つprivate-app10.0.1.0/24Compute 1Compute 2プライベートサブネット公開IPを持てないprivate-db10.0.2.0/24Autonomous AI DBプライベートエンドポイントプライベートサブネット外への既定ルートを入れないサーバーとDBには公開IPがなく、外から直接は届かない1234
  1. 入口:社員の通信はLBのHTTPSで受けます。
  2. LBからアプリ:LBが2台のComputeへ振り分けます。
  3. アプリからDB:DBへ常時つなぐのはアプリ層です。管理者はBastion経由で入ります。
  4. 遮断:インターネットからアプリ層とDB層へは経路がありません。
図1:通信はLB、アプリ、DBの順に進み、インターネットからアプリ層とDB層へは経路がない

各層の役割と、置くものを表1にまとめます。

表1:経費申請アプリの3層サブネット

サブネットCIDR種類置くものルート表の考え方
public-lb10.0.0.0/24パブリックFlexible LB(WAFポリシーを付ける)既定ルートをInternet Gatewayへ
private-app10.0.1.0/24プライベートCompute 2台外向きはNAT、OCIサービス向きはService Gateway
private-db10.0.2.0/24プライベートAutonomous AI Database のプライベートエンドポイント外へ出るルートを入れない

パブリックLBの置き場所には理由があります。公開LBにはパブリックサブネットが必要で、プライベートサブネットは指定できません。ADが1つのリージョンでは、パブリックサブネット1つにプライマリとスタンバイを置けます。

VCNの中の通信にルートルールは要りません。VCNのローカル経路が自動で働くためです。private-db に外へのルートがなくても、private-app からは届きます。通信を許可するかどうかは、ルート表ではなくNSGなどのセキュリティルールで決めます。

2. CIDRの決め方

CIDRは、大きさ、予約分、重なりの3点で確かめます。

CIDR MapVCNとサブネットのアドレスの地図
VCN 10.0.0.0/16:/24 が 256個入る大きさpublic-lb10.0.0.0/24private-app10.0.1.0/24private-db10.0.2.0/24空き10.0.3.0/24空き10.0.4.0/24空き10.0.5.0/24空き10.0.6.0/24…空き10.0.255.0/24private-app の中身10.0.1.0ネットワーク10.0.1.1ゲートウェイ10.0.1.255ブロードキャスト10.0.1.2 〜 10.0.1.254Compute などに割り当てられる 253個赤:Networking サービスの予約。1つのサブネットで3個使えない空きの /24 は、あとから層を増やすときに使う
図2:/16 のVCNに /24 のサブネットを並べ、1つの /24 では253個のアドレスが使える

VCNの大きさ

VCNに指定できる大きさは /16 から /30 までです。Oracleは RFC 1918 の範囲を推奨していますが、/8 や /12 のままでは使えません。10.0.0.0/16、172.16.0.0/16、192.168.0.0/16 のように /16 以下にします。

今回は 10.0.0.0/16 にします。1つのVCNのプライベートIPオブジェクトは、CIDRの数にかかわらず最大64,000個です(2026-11-01確認。最新は公式で確認してください)。

予約されるアドレス

各サブネットでは、先頭の2つと末尾の1つをNetworkingサービスが予約します。/24 なら256個のうち3個が使えないので、残りは253個です。AWSは先頭4つと末尾1つの5個を予約するので、OCIのほうが2個多く使えます。

LBなどもサブネットのIPを使います。たとえば、リージョナルサブネットのパブリックLBはプライベートIPを2個消費します。公開IPはサブネットのアドレスからは取られません。小さなサブネットを切るときは、この消費分も見込みます。

重ならないようにする

次の範囲は重ならないようにします。

  • VCN内のCIDRブロック同士
  • 同じVCNのサブネット同士
  • つなぐ予定のオンプレミスのネットワーク
  • ピアリングする別のVCN

今の題材にオンプレミス接続はありません。それでも、社内ネットワークが 10.0.0.0/16 を使っていないかは確かめておきます。あとでDRGをつなぐときに重なると、経路を作りにくくなるためです。

3. リージョナルサブネットと公開・非公開の指定

サブネットを作るときに、重要な指定が2つあります。範囲をリージョナルにするか、公開か非公開か、です。

リージョナルサブネットを選ぶ

サブネットには、リージョナルとAD固有の2種類があります。リージョナルは、リージョン内のどのADのリソースでも置けます。AD固有は、指定した1つのADのリソースだけを置けます。Oracleはリージョナルを推奨しています。

AWSのサブネットは1つのアベイラビリティーゾーンに収まり、ゾーンをまたげません。3層を2つのゾーンに置くなら6サブネットが必要です。OCIのリージョナルサブネットなら、層ごとに1つで済みます。

パブリックとプライベートを指定する

パブリックのサブネットでは、インスタンスがパブリックIPv4を持てます。プライベートでは持てません。この指定は作成時に選び、あとから変更できません。

AWSとは考え方が違います。

表2:サブネットの考え方の違い(AWSとOCI)

項目AWS VPCOCI VCN
サブネットの範囲1つのアベイラビリティーゾーンリージョナル(推奨)またはAD固有
公開か非公開かの決まり方Internet Gatewayへの直接のルートがあるかどうかサブネット作成時の指定
あとからの変更ルートを変えれば種類が変わる変更できない
予約されるIP5個3個

4. VCN作成の順番

作る順番は次のとおりです。必要なものを先に作っておくと、サブネットの画面で指定を埋められます。

Build OrderVCNを作る順番
compartment: networkサブネットを作るときに指定するVCN10.0.0.0/161ゲートウェイIGW・NAT・SGW2ルート表層ごとに3つ3既定ルール確認SSHの受信など4サブネット3つ5NSGLB・app・DB6
  1. 実線:作る順番です。前のものを次で参照します。
  2. 緑の点線:ルート表とセキュリティ・リストは、サブネットの設定として指定します。
図3:サブネットで指定するルート表を先に作ると、作成時に正しいものを選べる
  1. コンパートメントが network であることを確かめ、VCNを作ります。IPv4 CIDRブロックに 10.0.0.0/16 を入れます。
  2. Internet Gateway、NAT Gateway、Service Gateway を作ります。
  3. ルート表を3つ作ります。rt-public、rt-private-app、rt-private-db のように層の名前を付けます。
  4. 既定のセキュリティ・リストを確かめます。
  5. サブネットを3つ作ります。種類はRegionalを選び、サブネットアクセスでPublicかPrivateを指定します。
  6. NSGをLB、アプリ、DB用に作ります。

コンソールでVCNを作成すると、できるのはネットワークそのものだけです。インターネットやオンプレミスへ通信するには、サブネット、ゲートウェイ、ルート、セキュリティの設定を別に作る必要があります。

3つのルート表の中身は、表3のとおりです。ゲートウェイの選び方と書き方は、VCNと5つのゲートウェイの解説に任せます。

表3:3つのルート表

ルート表宛先ターゲット
rt-public0.0.0.0/0Internet Gateway
rt-private-app0.0.0.0/0NAT Gateway
All NRT Services in Oracle Services NetworkService Gateway
rt-private-dbルールなしVCN内はローカル経路で届く

DBからVCNの外へ出る機能(DBリンクなど)をプライベートエンドポイント経由にするときは、rt-private-db にルートの追加が要る場合があります。今回の題材では使いません。

rt-public の 0.0.0.0/0 は、外へ出る経路の指定です。受信を許可するルールではありません。

CLIで作る場合の例です。コンパートメントなどのOCIDは自分の環境の値に置き換えます。リージョナルサブネットにするには、--availability-domain を指定しません。

oci network vcn create \
  --compartment-id "$NETWORK_COMPARTMENT_ID" \
  --cidr-blocks '["10.0.0.0/16"]' \
  --display-name "vcn-expense" \
  --dns-label "expense"

oci network subnet create \
  --compartment-id "$NETWORK_COMPARTMENT_ID" \
  --vcn-id "$VCN_ID" \
  --cidr-block "10.0.1.0/24" \
  --display-name "private-app" \
  --dns-label "app" \
  --route-table-id "$RT_PRIVATE_APP_ID" \
  --prohibit-public-ip-on-vnic true

VCNとサブネットのDNSラベルは、あとから変更できません。ホスト名で名前解決するなら、作成時に決めます。

次に読むページ

ロードマップの次の項目は「ゲートウェイを選ぶ」です。3つのルート表に入れるゲートウェイを、通信先から決めます。

よくある質問(FAQ)

VCNのCIDRはあとから変更できますか?
できます。CIDRブロックは作成後に追加や削除ができ、サブネットのIPv4 CIDRも条件を満たせばサイズを変更できます。ただしサブネットを広げるとき、ネットワークアドレスは変えられません。最初から広めのVCNにしておくほうが、作業は少なく済みます。
作成後にプライベートサブネットをパブリックへ変更できますか?
できません。パブリックかプライベートかは作成時に選び、あとから変更できないと公式に書かれています。変えたいときは、新しいサブネットを作ることになります。
東京はADが1つなのに、リージョナルサブネットにする意味はありますか?
あります。Oracleは柔軟性からリージョナルサブネットを推奨しています。東京ではADの分散はできませんが、AD固有にする理由もないので、リージョナルを選ぶのが素直です。
目次