OCIのService Gatewayとは?パブリックIPなしでOracleサービスへアクセスする仕組みと設定方法

Oracle

Oracle Cloud Infrastructure(OCI)では、VCN内のComputeインスタンスなどからObject Storageをはじめとする対応OCIサービスへアクセスする際、必ずしもパブリックIPアドレスやインターネット接続を用意する必要はありません。Service Gatewayを利用すると、プライベートIPしか持たないリソースから、Oracle Services Network上の対応サービスへOracleのネットワーク内でアクセスできます。

Oracle公式ドキュメントでも、Service GatewayはパブリックIPアドレスを持たないクラウドリソースからOracleサービスへプライベートアクセスするための仕組みとして説明されています。インターネット・ゲートウェイやNAT Gatewayを経由せずに利用できる点が大きな特徴です。[参照:Oracle「Oracleサービスへのアクセス: サービス・ゲートウェイ」]

Service Gatewayを使えばパブリックIPなしでOCIサービスへアクセスできる

Service Gatewayを構成すると、VCN内のリソースはプライベートサブネットに配置したまま、対応するOracleサービスへアクセスできます。Computeインスタンス側へパブリックIPを割り当てる必要はありません。

例えばプライベートサブネットにあるComputeインスタンスからObject Storageへバックアップファイルをアップロードする場合、Service Gatewayを経由させればインターネットへトラフィックを出さずに通信できます。Oracle公式でも、Service Gateway経由の通信はOracleネットワーク・ファブリック上を流れ、インターネットを通過しないと明記されています。[参照:Oracle Service Gateway]

つまり「パブリックIPがないからOCIのObject Storageへ接続できない」ということではなく、Service Gatewayとルート設定を正しく構成すればプライベートIPだけで利用できます。

Service Gatewayが接続するのはOracle Services Network

OCIには「Oracle Services Network(OSN)」と呼ばれる、Oracleサービス向けの論理的なネットワークがあります。Object StorageなどのOCIサービスは通常パブリックIPを持つエンドポイントとして提供されていますが、Service Gatewayを使うとインターネットを経由せずOSNへ到達できます。

ここで少し分かりにくいのは、アクセス先サービス自体のエンドポイントがパブリックIPアドレス体系を使用していても、送信元ComputeインスタンスにはパブリックIPが不要という点です。Service GatewayがOracleネットワーク内でOSNへの経路を提供します。

OracleのCLIドキュメントでも、Service Gatewayについて「VCN内のインスタンスはパブリックIPを持つ必要がなく、パブリックサブネットに存在する必要もない」と説明されています。[参照:OCI CLI Service Gateway]

Internet GatewayやNAT Gatewayとの違い

Service Gateway、Internet Gateway、NAT Gatewayは用途が異なります。特にプライベートサブネットを設計するときは、この違いを理解しておくことが重要です。

Gateway 主な用途 パブリックIP インターネット経由
Service Gateway 対応OCIサービスへのアクセス 送信元には不要 しない
NAT Gateway プライベートリソースからインターネットへのアウトバウンド通信 送信元には不要 する
Internet Gateway パブリックサブネットとインターネット間の通信 通常必要 する

例えばOSアップデートのために外部のLinuxリポジトリへ接続したい場合、その接続先がService Gateway対応のOracleサービスでなければ、NAT Gatewayなど別のインターネットアクセス手段が必要になります。

Oracle公式も、Service Gatewayは対応OCIサービスへのアクセス専用であり、一般のインターネットやService Gateway非対応サービスへ接続する必要があるワークロードではNAT Gatewayなどが必要になると説明しています。[参照:Oracle Service Gatewayの制限]

Service Gatewayで代表的に利用されるのはObject Storage

Service Gatewayの典型的な用途がObject Storageへのアクセスです。例えばデータベースサーバーをプライベートサブネットへ配置し、バックアップだけObject Storageへ保存する構成があります。

通常のインターネット経由でObject Storageへ接続するためにComputeへパブリックIPを付与したり、NAT Gatewayを用意したりする必要はありません。Service Gatewayへのルートを設定すれば、Oracleネットワーク上でObject Storageへ通信できます。

OracleのNetworking Overviewでも、プライベートサブネット内のDB SystemがパブリックIPやインターネットアクセスなしにObject Storageへバックアップできる例が紹介されています。[参照:Oracle OCI Networking Overview]

すべてのOCIサービスへ接続できるわけではない

Service Gatewayを作成すれば、OCI上のすべてのサービスへ自由にプライベートアクセスできるわけではありません。対象となるのはOracle Services Network上でService Gatewayをサポートしているサービスです。

Service Gatewayでは「Service CIDR Label」という仕組みを使用します。これは対象サービスまたはサービス群のリージョン内IPアドレス範囲を表すラベルで、ルート表の宛先として利用できます。

Oracle公式では、利用可能なサービスCIDRラベルをService APIやOCI CLIのnetwork service listなどで確認できるとしています。対象サービスは変更・追加される可能性があるため、構築時には利用リージョンの最新一覧を確認するのが確実です。[参照:OCI CLI Service]

Service Gatewayはリージョン単位のリソース

Service Gatewayはリージョナルなリソースであり、基本的にはVCNと同じリージョンにある対応Oracleサービスへアクセスするために利用します。

例えば東京リージョンのVCNに作成したService Gatewayを使って、東京リージョンで提供される対応OCIサービスへアクセスするという構成です。

別リージョンのサービス利用を前提とする場合は、その通信経路がService Gatewayのサポート範囲に入るかを別途確認する必要があります。Oracle公式もService Gatewayについて、同じリージョン内の対応Oracleサービスへのアクセスを提供するものと説明しています。

設定にはService Gatewayを作るだけでは足りない

Service GatewayリソースをVCNへ作成しただけでは、Computeから自動的に通信できるとは限りません。サブネットに関連付けられているルート表へ、Oracleサービス向け通信をService Gatewayへ送るルートルールを設定する必要があります。

一般的にはルート表の宛先タイプとしてServiceを指定し、「All <region> Services in Oracle Services Network」またはObject Storage向けのService CIDR Labelを選択し、ターゲットを作成したService Gatewayに設定します。

例えばプライベートサブネットからObject Storageだけへ接続させるのであれば、Object Storage用のService CIDR Labelを利用することで通信対象を絞れます。

セキュリティリストやNSGのEgressルールも確認する

ルート表が正しくても、Security ListやNetwork Security Group(NSG)のEgressルールで通信が許可されていなければ接続できません。

HTTPSでOCIサービスへ接続する場合には、一般的にTCP 443のアウトバウンド通信が必要です。セキュリティを厳格に管理している環境では、Service CIDR Labelを利用して送信先をOracleサービスへ限定する方法も検討できます。

つまり接続できない場合には、Service Gatewayだけでなく「ルート表」「Security List/NSG」「IAMポリシー」の3点を確認すると切り分けしやすくなります。

ネットワーク経路とIAM権限は別物

Service GatewayによってObject Storageまでネットワーク的に到達できても、それだけでBucket内のオブジェクトを自由に取得できるわけではありません。OCIではネットワークアクセスとIAMによる認可は別々に管理されます。

例えばComputeインスタンスからOCI CLIを使ってObject Storageを操作する場合、Instance Principalやユーザー認証などを利用し、その主体に必要なIAM Policyを付与する必要があります。

Service Gatewayは「通信できる経路」を提供する仕組みであり、「サービスを利用する権限」を付与する仕組みではないと理解すると分かりやすいでしょう。

Network Sourceを使ってアクセス元を制限できる

Object Storageなどでは、Service Gateway経由のアクセスに限定するようなセキュリティ設計も可能です。OCIのIAMではNetwork Sourceなどを利用し、特定VCNなどからのアクセスを条件としてポリシーへ組み込めます。

これによって「IAM権限を持っているだけではアクセスできず、指定VCNからService Gateway経由でアクセスした場合だけ許可する」といった制御が可能になります。

インターネットから到達できる経路を不要にしながら、Oracleサービスへの通信だけを許可できるため、機密性の高いシステムのネットワーク設計にも利用されています。

プライベートサブネット構成との相性が良い

Service Gatewayは、アプリケーションサーバーやデータベースなどをプライベートサブネットへ隔離する構成と非常に相性が良い仕組みです。

例えばWebサーバーだけをLoad Balancer経由で公開し、バックエンドのComputeはプライベートIPのみとします。そのComputeがObject Storageへログやバックアップを送信するときだけService Gatewayを利用する構成にできます。

これならバックエンドComputeへパブリックIPを割り当てる必要がなく、外部インターネットへの公開面を減らせます。

オンプレミスからもService Gatewayを経由できる場合がある

Service GatewayはVCN内のComputeだけでなく、適切なネットワーク構成を行えばオンプレミス環境からOracleサービスへプライベートアクセスする経路にも利用できます。

オンプレミスネットワークとVCNをFastConnectのPrivate PeeringまたはSite-to-Site VPNで接続し、DRGやルートを適切に設定すると、オンプレミス側のホストからVCNのService Gateway経由でOracle Services Networkへ到達できます。

Oracle公式も、オンプレミスホストがプライベートIPのままVCNとService Gatewayを経由してOracleサービスへ接続する構成を案内しています。[参照:Oracle「Private Access to Oracle Services」]

Service GatewayとPrivate Service Accessの違いも知っておく

OCIでは2026年現在、「Private Service Access(PSA)」という仕組みも提供されています。PSAでは対象OCIサービス用のPrivate Service Access EndpointをVCN内へ作成し、専用のプライベートIPとFQDNを利用して接続できます。

Service GatewayはOracle Services NetworkにあるサービスのリージョナルなパブリックIP範囲へOracleネットワーク内部から到達する仕組みなのに対し、PSA EndpointはVCN内に専用のプライベートIPを持つエンドポイントを作る点が異なります。[参照:Oracle「Private Service Access Endpoints」]

Oracle公式のPSA解説でも、Service GatewayはOracle Services Networkへのプライベート経路を提供する一方、PSAは個別のOCIサービスに対してプライベートIP接続を提供する新しい選択肢として説明されています。システム要件に応じて使い分ける必要があります。

Service Gatewayを使う典型的な構成例

例えばVCN内に「10.0.1.0/24」のプライベートサブネットがあり、その中にWebアプリケーション用Computeを配置するとします。Computeには10.0.1.10というプライベートIPだけを設定し、パブリックIPは付与しません。

VCNにService Gatewayを作成し、サブネットのルート表へObject Storage向けService CIDR Labelを宛先とするルールを追加します。ターゲットにはService Gatewayを指定します。

その状態でSecurity ListまたはNSGのHTTPSアウトバウンド通信を許可し、IAM権限も設定すれば、ComputeからObject Storage APIへアクセスできます。通信経路は「Compute → Service Gateway → Oracle Services Network → Object Storage」となり、Internet GatewayやNAT Gatewayはこの通信には必要ありません。

Service Gatewayがあっても一般Webサイトには接続できない

Service Gatewayについてよくある誤解が、「これを付ければプライベートサブネットからインターネットも利用できる」というものです。Service Gatewayは一般のインターネットアクセスを提供するGatewayではありません。

例えばComputeからGitHub、Google、外部APIなどへ接続したい場合、通常はNAT Gatewayなどを用意する必要があります。

そのため実際の構成では、Oracleサービス向け通信はService Gateway、一般インターネット向け通信はNAT Gatewayというように、同じプライベートサブネットから用途に応じて複数の経路を設定することがあります。

Service Gateway利用時の確認ポイント

設計・トラブルシューティングでは次のように整理すると分かりやすくなります。

確認項目 ポイント
パブリックIP Compute側には不要
サブネット プライベートサブネットでも利用可能
Internet Gateway 対応OCIサービスへの通信には不要
NAT Gateway 対応OCIサービスだけなら不要
Service Gateway VCNへ作成する
ルート表 Service CIDR Label → Service Gatewayを設定
Security List/NSG 必要なEgress通信を許可
IAM Policy 対象OCIサービスを操作する権限が別途必要
リージョン 基本的に同一リージョンの対応サービスを対象

特に「Service Gatewayは作ったのにObject Storageへ接続できない」という場合、ルート表の追加を忘れているケースや、NSG・IAM Policyで遮断されているケースを確認するとよいでしょう。

まとめ|Service GatewayならパブリックIPなしで対応OCIサービスへ接続できる

OCIのService Gatewayを利用すると、パブリックIPアドレスを持たないVCN内リソースから、Object StorageなどOracle Services Network上の対応OCIサービスへプライベートにアクセスできます。この通信はOracleのネットワーク・ファブリックを通り、一般のインターネットを経由しません。

そのため、Service Gateway対象サービスだけへ接続する目的であれば、ComputeへのパブリックIP、Internet Gateway、NAT Gatewayはいずれも必須ではありません。ただしService Gatewayの作成に加えて、ルート表、Security List/NSG、IAM Policyを適切に設定する必要があります。

また、Service Gatewayは一般インターネットへの接続手段ではなく、利用できるOCIサービスにも範囲があります。現在のOCIにはPrivate Service Access Endpointという別のプライベート接続方式もあるため、アクセス対象、求める分離レベル、ネットワーク設計に応じてService GatewayとPSAを使い分けることが重要です。

コメント

タイトルとURLをコピーしました