はじめに(全体の体系と記事の種類について)
本ブログでは、OCI学習を体系立てて整理するために、次の2種類の記事を扱います。
- 知識ノート(N-xx):概念・設計の考え方・判断基準を整理します。
- 検証(L-xx):手順・設定値・つまずきポイントを、再現可能な形で記録します。
ブログの全体像についてはこちら:〔URL N-00〕
本記事は、知識ノート(N-03)として、VCNとSubnetの基本、およびPublic / Private Subnetの意味と使い分けを整理します。
1. この記事の目的
VCN / Subnet / Public / Private について、次を説明できる状態を目指します。
- VCNとSubnetの役割の違いを説明できる
- Public Subnet / Private Subnetの意味を、ルーティングとインターネットからの接続性の観点で説明できる
- 用途に応じて、どこに何を置くか基本方針を持てる
2. どこで使う(ユースケース)
- 検証環境を作る:まずVCNを作成し、Web用・検証用などのSubnetへ分けて構成を整理します。
- 3層構成を作る:WebサーバーはPublic Subnet、DBサーバーはPrivate Subnetに配置し、公開する領域と内部専用の領域を分けます。
- 運用・セキュリティ設計を整理する:Subnet単位でルート表・Security List/NSGを分け、通信要件を明確にします。
3. 図(1枚)
図の内容
「1つのVCNの中に、Public SubnetとPrivate Subnetがあり、通信経路が異なる」図を示します。

要素
- 外部接続元
- On-Premises(オンプレミス)
- Site-to-site VPN(オンプレ⇔OCI間のVPN接続)
- OCI側の枠組み
- OCI Region(リージョンの枠)
- VCN:10.0.0.0/16(リージョン内の仮想ネットワーク)
- Public Subnet:10.0.1.0/24
- Private Subnet:10.0.2.0/24
- ルーティング/接続ゲートウェイ
- Dynamic Routing Gateway(DRG):Site-to-site VPNの終端(オンプレ接続の入口)
- Internet Gateway(IGW):VCN→Internetへの出入口(Public系の外部接続)
- NAT Gateway:Private Subnetからの外向き通信(インターネットへの送信)用
- Service Gateway:VCN→Oracle Service Networkへの接続(Oracleサービス宛て)
- 接続先ネットワーク
- Internet(外部インターネット)
- Oracle Service Network(OCIの各種サービス側ネットワーク)
- セキュリティ制御(図中の盾アイコン)
- セキュリティ制御(Security List/NSG)
補足説明
- 1つのVCN内で Public/Private Subnetを分け、通信経路を分けています。
- Public Subnet → IGW → Internet(外部到達を想定。到達可否は公開IPと許可ルール次第)。
- Private Subnet → NAT Gateway → Internet(外向き通信のみを想定。インターネットから直接到達させない意図)。
- Private Subnet → Service Gateway → Oracle Service Network(OCIサービス宛てをインターネット経由にしない意図)。
- On-Premises → VPN → DRG → VCN(オンプレからVCN内へ到達させる入口)。
4. 代表パターン例(3つ)
代表パターンの意味
ここでいう代表パターンとは、用途ごとにSubnetを分け、インターネットへの到達可否と運用ルールを整理しやすくする構成の型を指します。
パターン1:最小構成(学習・検証用)
- 構成:VCN + Subnet 1つ(PublicまたはPrivateのどちらか)
- 使いどころ:VCN / Subnetの作成、ルート表、NSGの基本確認
- 意図:構成要素を増やさず、まずは「VCNの中にSubnetを切る」考え方を理解します。
パターン2:Web公開 + 内部処理の分離(基本2層)
- 構成:
- Public Subnet:Web / Bastion
- Private Subnet:App / Batch
- 使いどころ:公開用と内部用を分けたい場合
- 意図:インターネットから直接到達させる領域と、内部処理の領域を分離します。
パターン3:Web / App / DB の3層分離
- 構成:
- Public Subnet:Web / Bastion
- Private Subnet(App)
- Private Subnet(DB)
- 使いどころ:本番相当の多層構成
- 意図:役割ごとにSubnetを分け、ルート表・NSG・運用責任範囲を整理しやすくします。
5. 落とし穴(3つ)
落とし穴1:Public / Privateを「リソースの種類」で決めてしまう
- 問題:Webだから必ずPublic、DBだから必ずPrivate、のように固定すると、要件との不一致が起きます。
- 対策:役割名ではなく、接続性(誰から接続させる必要があるか)で判断します。
落とし穴2:Public / Privateの違いをNSGだけで説明しようとする
- 問題:通信許可(NSG/Security List)と、経路(Route Table / Gateway)の役割が混ざり、設計判断が曖昧になります。
- 対策:
- ルート表/Gateway:どこへ行けるか(経路)
- NSG/Security List:何を許可するか(通信制御)
を分けて整理します。
落とし穴3:Private Subnetなのに外向き更新が必要な要件を見落とす
- 問題:Private Subnetに置いたインスタンスがOS更新や外部取得を行えず、運用時に詰まります。
- 対策:要件に応じて、NAT GatewayやService Gatewayの必要性を先に確認します。OCIのシナリオでも、Private SubnetはNAT Gateway経由で外向き通信開始が可能な構成が示されています。
6. 用語ミニ辞典
- VCN(Virtual Cloud Network):OCI上に作成する仮想ネットワークの単位です。リージョン内でCIDR(例:10.0.0.0/16)を持ち、Subnetやゲートウェイ、ルート表などを内包します。
- Subnet:VCNの下位区分(論理的な分割)です。VCN内で重複しないCIDR範囲を持ちます。
- Public Subnet:インターネット到達性を持つ構成で使うSubnet(通常はIGWとルート設定を伴う)です。
- Private Subnet:インターネットから直接着信を受けない構成で使うSubnet(必要に応じてNAT経由で外向き通信)です。
- IGW(Internet Gateway):VCNとインターネットを接続するゲートウェイです。
- NAT Gateway:Private Subnet内インスタンスの外向き通信開始に使うゲートウェイ(インターネットからの着信不可)です。
- Route Table:宛先CIDRごとに次ホップ(IGW / NAT / DRG 等)を決める表です。
- NSG / Security List:通信許可ルールを定義する仕組み(経路そのものは決めない)です。
- 追加(同粒度で補助になる用語)
- DRG(Dynamic Routing Gateway):VCNとオンプレミスや他ネットワーク(VPN/FastConnect等)を接続するためのゲートウェイ(仮想ルータ)です。
- Service Gateway:VCNからOracle Service Network(例:Object Storage等)へインターネットを経由せず接続するためのゲートウェイです。
- Oracle Service Network:OCIの各種サービスが提供されるOracle側ネットワーク領域です(Service Gatewayで到達先となる)。
さいごに
VCNはネットワーク全体の器、Subnetはその中の役割ごとの区画として捉えると整理しやすくなりました。Public / Privateの違いは、インターネットからの接続性・外向き通信の必要性・ルート表/Gateway構成で判断することが重要だと感じました。

もか
Oracle draw.io を導入して図を描いてみました!まだ慣れないので苦戦しましたが、アイコンを探しながら構成図を作ることで他のサービスの理解も深まり、実務にも活かせそうだと感じました。今後はもっとスピーディに描けるようになりたいです。
情報ソース
- Oracle Cloud Infrastructure Documentation:Overview of VCNs and Subnets(英語)
- Oracle Cloud Infrastructure Documentation:VCNとサブネットの概要(日本語)
- Oracle Cloud Infrastructure Documentation:Scenario C: Public and Private Subnets with a VPN(英語)
- Oracle Cloud Infrastructure Documentation:シナリオC: VPNを使用したパブリック・サブネットとプライベート・サブネット(日本語)
- Oracle Cloud Infrastructure Documentation:Creating a Subnet(英語)

コメント