Cloud Service
OCI Service Gateway
VCN から Object Storage など OCI のサービスへ、インターネットを経由せず閉域で到達するゲートウェイ。AWS のゲートウェイ型 VPC エンドポイントに相当。
- 1.VCN から OCI サービスへインターネットを通さず閉域接続するゲートウェイ。
- 2.サービス CIDR ラベルとルートで経路化し、NAT の往復を回避できる。
- 3.ゲートウェイ自体も内部転送も無料。AWS のゲートウェイ型エンドポイント相当。
解決する課題
- Object Storage や Autonomous Database など OCI サービスへの通信をインターネットに出さず閉域化したい
- プライベートサブネットのインスタンスから OCI サービスへ到達したいが、そのために NAT ゲートウェイのデータ処理課金や往復遅延を払いたくない
- パブリック IP を持たないリソースから、安全に バックアップ・パッチ・ログ転送 などのサービス通信を行いたい
- 規制要件などで トラフィックを Oracle のネットワーク内に閉じ込めたい
主要概念と用語
- Service Gateway (SGW): VCN に1つ作るゲートウェイ。VCN 内から Oracle Services Network 上の対象サービスへインターネットを経由せず到達させる
- Oracle Services Network: Object Storage や Autonomous Database などのパブリック OCI サービスが乗っている Oracle 内部のネットワーク
- サービス CIDR ラベル: 個々の IP ではなく、対象サービス群をまとめて表す論理ラベル。代表的に2種類ある
- OCI 「リージョン名」 Object Storage: そのリージョンの Object Storage のみを対象にする狭いラベル
- All 「リージョン名」 Services In Oracle Services Network: そのリージョンで SGW 経由が可能な OCI サービス全体を対象にする広いラベル
- ルートルール: サブネットのルートテーブルに、宛先をサービス CIDR ラベル、ターゲットを SGW とするルールを書く
- トランスポート(NAT との違い): SGW は 送信元 IP を変換しない。プライベート IP のまま OCI サービス側に到達する
仕様・制限・クォータ
- SGW は VCN ごとに1つ作成し、複数サブネットのルートテーブルから共有して参照する
- 通すのは 対応する OCI サービス向けの通信のみ。一般的なインターネット宛先や任意の外部 API には使えない(それは IGW / NAT の役割)
- 経路はリージョン内のサービスに閉じる。別リージョンのサービスや、SGW 非対応のサービスへはこの経路では到達しない
- SGW 経由でも IAM の認可は別途必要。経路が通ることとアクセス権があることは独立
- VCN・サブネット数などと同様、テナンシ/リージョンごとのサービス制限の枠内で利用する
内部の仕組み
SGW は「サービス向けの特別な出口」です。サブネットのルートテーブルに、宛先=サービス CIDR ラベル、ターゲット=SGW というルールを置くと、対象サービス宛のトラフィックだけが SGW を通り、Oracle Services Network へ閉域で流れます。
- 対象サービス宛: サービス CIDR ラベル → Service Gateway(インターネットを経由しない)
- それ以外の外向き: 通常どおり
0.0.0.0/0 → NAT Gateway(外向き専用)または0.0.0.0/0 → Internet Gateway - 送信元はプライベート IP のまま到達するため、NAT による IP 変換やインターネット往復が発生しない
特定のサービスだけ閉域化したいなら Object Storage 専用ラベルを、複数の OCI サービスへ広く閉域接続したいなら All Services ラベルを選びます。広いラベルは便利な一方で許可範囲も広がるため、必要なサービスが限られるなら狭いラベルから始めるのが安全です。
なお、SGW を作っただけでは通信は始まりません。対象サブネットのルートテーブルにルールを追加し、セキュリティリストまたは NSG で対象ポートを許可して初めて到達します。
設計パターン / ベストプラクティス
- プライベートサブネット+SGW: パブリック IP を持たない App/DB 層から Object Storage や Autonomous Database へは SGW で到達させ、NAT を介さない
- NAT との役割分担: 一般的なインターネット宛は NAT、OCI サービス宛は SGW、と経路を明確に分ける
- 最小ラベル原則: まず狭いラベル(Object Storage 専用)で要件を満たせるか検討し、足りない場合のみ All Services ラベルに広げる
- バックアップ/ログ経路の閉域化: DB バックアップやログのエクスポート先が Object Storage の場合、SGW を通すことで通信を Oracle 内部に閉じる
運用・監視
- 到達性の切り分け順: ルートテーブルに SGW ルールがあるか → ラベルが対象サービスを含むか → セキュリティリスト/NSG で許可されているか → IAM 認可があるか
- VCN Flow Logs(OCI Logging)でサブネットの通信の許可/拒否を確認し、SGW 経由のトラフィックを観測
- Network Path Analyzer で送信元から対象サービスまでの経路と遮断ポイントを静的に解析
- ルートテーブルは複数サブネットで共有しがちなので、ラベルの広狭がどのサブネットに効くかを運用台帳で管理
コスト
| 要素 | 課金 | ポイント |
|---|---|---|
| Service Gateway 本体 | 無料 | ゲートウェイの作成・保持に課金なし |
| SGW 経由の内部転送 | 無料 | Oracle Services Network への閉域転送は課金対象外 |
| NAT 経由にした場合 | 時間課金 + 処理データ量 | OCI サービス宛を NAT に通すと余分なコストが発生 |
Object Storage や Autonomous Database への通信を NAT ゲートウェイから SGW に切り替えるだけで、NAT の処理データ料金とインターネット往復を回避できます。SGW 自体は無料です。
セキュリティ
- トラフィックを Oracle 内部に閉じることで、インターネット経由の暴露面を減らせる
- SGW は経路を提供するだけで、実際のアクセス制御は IAM ポリシー・セキュリティリスト/NSG で行う。経路の閉域化と認可は別レイヤとして両方設計する
- ラベルは必要最小限にし、All Services ラベルを安易に選ばない
- パブリック IP を持たせず、OCI サービス通信は SGW、その他外向きが必要なら NAT、という最小公開を徹底
SGW で経路を閉域化しても、バケットやリソースのアクセス権限が緩ければ意味が薄れます。SGW(ネットワーク経路)と IAM(認可)は独立しているため、両方を最小権限で設計してください。
Well-Architected の観点
- セキュリティ: OCI サービス通信をインターネットから切り離し、攻撃面を縮小。プライベートサブネットのまま必要なサービスへ到達でき、最小公開を保てる
- 経路の閉域化と IAM 認可を多層防御として組み合わせることで、設定ミス時の影響を限定できる
試験で問われるポイント
- SGW はインターネットを経由せず OCI サービス(Object Storage 等)へ到達するためのゲートウェイ。任意のインターネット宛には使えない
- 任意の外部宛の外向きは NAT ゲートウェイ、双方向のパブリック疎通は Internet Gateway、OCI サービス宛は Service Gateway、と役割を区別する
- ルートテーブルの宛先には個別 IP ではなくサービス CIDR ラベルを指定する
- ラベルには Object Storage 専用と **All Services(Oracle Services Network 全体)**の2系統がある
- SGW は 送信元 IP を変換しない(NAT と異なる)。プライベート IP のまま到達する
- SGW 経由でも IAM の認可は別に必要。経路が通ること = アクセス可能、ではない
- AWS ではゲートウェイ型 VPC エンドポイント(S3 など向け)に近い
関連サービス・比較
| 観点 | OCI Service Gateway | AWS ゲートウェイ型エンドポイント |
|---|---|---|
| 主目的 | VCN から OCI サービスへ閉域接続 | VPC から S3/DynamoDB へ閉域接続 |
| 経路の指定 | ルートテーブル + サービス CIDR ラベル | ルートテーブル + プレフィックスリスト |
| 対象 | Object Storage や Oracle Services Network のサービス | S3 と DynamoDB |
| 送信元 IP | 変換しない(プライベートのまま) | 変換しない(プライベートのまま) |
| 料金 | ゲートウェイも転送も無料 | ゲートウェイ自体は無料 |
| 任意の外部宛 | 不可(NAT/IGW の役割) | 不可(NAT/IGW の役割) |
AWS には別途「インターフェース型エンドポイント(AWS PrivateLink)」もあります。これは ENI と DNS でサービスを VPC 内に見せる方式で、OCI でいえば Private Endpoint 系の機能が近い考え方です。SGW は経路ベースのゲートウェイ型で、AWS のゲートウェイ型エンドポイントに対応すると捉えると整理しやすいです。
ハンズオン / CLI例
# 対象リージョンで利用できるサービス(CIDR ラベル)を確認
oci network service list
# Service Gateway を作成(All Services ラベルを使う例)
# serviceId には上記 list で得たラベルの OCID を指定する
oci network service-gateway create \
--compartment-id ocid1.compartment.oc1..xxxx \
--vcn-id ocid1.vcn.oc1..xxxx \
--services '[{"serviceId":"ocid1.service.oc1.iad.xxxx"}]' \
--display-name demo-sgw
# サブネットのルートテーブルに「サービス宛 → SGW」のルールを追加
# destination にはサービス CIDR ラベルの OCID を指定する
oci network route-table update \
--rt-id ocid1.routetable.oc1..xxxx \
--route-rules '[{
"destinationType":"SERVICE_CIDR_BLOCK",
"destination":"ocid1.service.oc1.iad.xxxx",
"networkEntityId":"ocid1.servicegateway.oc1..xxxx"
}]'
OCI Service
OCI Service Gatewayを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ネットワーキング
比較で見る軸
クラウド: OCI / カテゴリ: ネットワーキング / 難易度: intermediate
導入後に効く点
サービス CIDR ラベルとルートで経路化し、NAT の往復を回避できる。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- OCI
- カテゴリ
- ネットワーキング
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- security
判断チェックリスト
- 自社の用途が「ネットワーキング / security」に近いか確認する。
- 強みである「VCN から OCI サービスへインターネットを通さず閉域接続するゲートウェイ。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。