「サービス提供側VPCから他のネットワークに繋ぎたい!」を解決するPSCインターフェース入門


PSCシリーズ最終回は、最も高度な接続形態である「PSCインターフェース」を解説します。サービス提供側のVPCから、利用者側のVPCやオンプレミス環境へ接続するという、逆方向の通信を実現する仕組みと設定手順を詳しく見ていきましょう。

はじめに

これまでのPSCシリーズでは、利用者側(コンシューマー)からサービス側(プロデューサー)へ接続する内向きの通信パターンを解説しました。しかし、実際のシステムでは、ライセンス認証や中央データベースへのアクセスなど、サービス側から利用者側のネットワークへ外向きに通信したいケースも存在します。

VPCピアリングなどが構成されていない独立したVPCから、このような外向きの通信を実現するのが Private Service Connect (PSC) インターフェースです。この記事では、PSCインターフェースの仕組みと、それを利用して منعزلされたプロジェクトのVMからオンプレミス環境へプライベートに接続する手順を解説します。

PSCインターフェースの概要

2.1 PSCインターフェースとは?

PSCインターフェースは、プロデューサーVPCに属するVMインスタンスに、**2つ目のネットワークインターフェース(NIC)**を追加する機能です。この2つ目のNICには、コンシューマーVPCのサブネットからIPアドレスが割り当てられます。

これにより、VMインスタンスはあたかも2つのVPCに同時に所属しているような状態(マルチホーム)になり、PSCインターフェースを通じてコンシューマー側のネットワーク(およびその先に接続されたオンプレミス環境など)へ通信を開始できます。

2.2 設計・運用上の注意点

PSCインターフェースは強力な機能ですが、マルチNIC構成特有の注意点があります。

2.2.1 デフォルトルートとOS内ルーティング

VMインスタンスのデフォルトルート(0.0.0.0/0)は、1つ目のNIC(プライマリNIC)に向けられたままです。そのため、PSCインターフェース経由でコンシューマー側のネットワークへ通信するには、VMのOS内部で静的ルート(スタティックルート)を追加し、宛先ネットワークへのネクストホップをPSCインターフェース側のゲートウェイに向ける必要があります。

2.2.2 VMへのアクセス経路

この構成は、あくまでプロデューサーVMからの外向き通信を実現するものです。コンシューマー側からこのVMへ直接SSHやRDPで接続することはできません。VMへの管理アクセスが必要な場合は、別途PSCエンドポイントを組み合わせるなどの設計が必要になります。

実践!PSCインターフェースの設定手順

3.1 今回の構成ゴール

ネットワーク的に منعزلされたSpokeBプロジェクト(プロデューサー)に作成したVMから、PSCインターフェースを経由して、JITHUBプロジェクト(コンシューマー)に接続されたオンプレミス環境のサーバーへアクセスする構成を構築します。

3.2 接続受け入れ側(コンシューマー)の設定

まず、接続の受け皿となるJITHUBプロジェクトで設定を行います。

3.2.1 ネットワークアタッチメントの作成

JITHUBプロジェクトの[Private Service Connect] - [ネットワークアタッチメント]画面で、[+ネットワークアタッチメントを作成]を選択します。

名前を付け、プロデューサーからの接続を受け入れるサブネット(今回はsubnet-psc)を指定します。これがPSCインターフェースの接続先(ソケットのようなもの)になります。

作成後、**ネットワークアタッチメントの接続情報(URI)**をコピーしておきます。

3.3 接続元(プロデューサー)の設定

次に、通信を開始するVMを作成するSpokeBプロジェクトで設定を行います。

3.3.1 PSCインターフェースを持つVMの作成

SpokeBプロジェクトで、通常通りVMインスタンスの作成を開始します。

ネットワーキング設定で、まず1つ目のプライマリNIC(vpc-bのsubnet-b01)を設定します。

[ネットワークインターフェースを追加]をクリックし、2つ目のNICを追加します。インターフェースタイプで「Private Service Connect」を選択し、「ネットワークアタッチメントのURL」に先ほどコピーしたURIを貼り付けます。

インスタンスを作成し、2つのNICがアタッチされていることを確認します。

3.4 VM内部のネットワーク設定

VMにRDPで接続し、OS内部のルーティングを設定します。

3.4.1 ネットワーク情報の確認

ipconfigとroute printコマンドで、2つのNICにIPアドレスが割り当てられていること、そしてデフォルトルートがプライマリNIC(10.168.10.1)に向いていることを確認します。

  1. C:>ipconfig
  2. Ethernet adapter Ethernet:
  3. IPv4 Address. . . . . . . . . . . : 10.168.10.13 (プライマリNIC)
  4. Default Gateway . . . . . . . . . : 10.168.10.1
  5. Ethernet adapter Ethernet 2:
  6. IPv4 Address. . . . . . . . . . . : 10.24.6.6 (PSCインターフェース)
  7. Default Gateway . . . . . . . . . :
  8. C:>route print
  9. Active Routes:
  10. Network Destination Netmask Gateway Interface
  11. 0.0.0.0 0.0.0.0 10.168.10.1 10.168.10.13

3.4.2 静的ルートの追加

このままではオンプレミス環境(192.168.0.0/16)への通信がプライマリNICのデフォルトゲートウェイに向かってしまい、到達できません。route addコマンドで、オンプレミス宛の通信がPSCインターフェースのゲートウェイ(10.24.6.1)へ向かうように静的ルートを追加します。

  1. C:>route add 192.168.0.0 mask 255.255.0.0 10.24.6.1 -p
  2. OK!

動作確認

4.1 プロデューサーVMからオンプレミスへの接続確認

静的ルート設定後、SpokeBプロジェクトのVMからオンプレミス環境のサーバー(192.168.10.91)へpingおよびHTTPアクセスを試みます。正常に通信できることが確認できます。

  1. C:>ping 192.168.10.91
  2. Pinging 192.168.10.91 with 32 bytes of data:
  3. Reply from 192.168.10.91: bytes=32 time=53ms TTL=61
  4. Reply from 192.168.10.91: bytes=32 time=51ms TTL=61
  5. Ping statistics for 192.168.10.91:
  6. Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),

まとめ

本記事では、PSCシリーズの最終回として、PSCインターフェースを利用して منعزلされたVPCからオンプレミス環境へ接続する方法を解説しました。この機能は、VMに2つ目のNICを追加し、OS内部で静的ルートを設定することで、サービス提供側からの外向きという特殊な要件のプライベート接続を実現します。

この機能を活用することで、プロジェクト開発者にネットワークの自由度を与えつつ、必要な場合にのみ中央のネットワークへの接続を許可するといった、柔軟でセキュアなアーキテクチャが可能になります。

富士ソフトでは、マルチプロジェクト環境や複雑なハイブリッドクラウド接続など、お客様の高度な要件に応えるGoogle Cloudネットワークアーキテクチャの設計・構築をご支援しています。PSCの各機能を組み合わせた最適なソリューションの提案も可能ですので、ぜひお気軽にご相談ください。