プライベート接続

概要

プライベート接続は、Virtual Private Cloud(VPC)ネットワークと Datastream のプライベート ネットワーク間の接続であり、データストリームは内部 IP アドレスを使用してリソースと通信できます。プライベート接続を使用すると、Datastream ネットワーク上に、他のお客様と共有しない専用接続が確立されます。

プライベート接続を使用して、Datastream を任意のソースに接続できます。ただし、互いに直接通信できるのは、直接ピアリングされた VPC ネットワークだけです。

推移的ピアリングはサポートされていません。Datastream がピアリングされているネットワークが、ソースがホストされているネットワークでない場合は、リバースプロキシが必要です。ソースが Cloud SQL の場合と、ソースが別の VPC または Google ネットワークの外部でホストされている場合の両方で、リバース プロキシが必要です。

このページでは、プロキシを使用して Datastream と Cloud SQL の間、または Datastream と別の VPC または Google ネットワークの外でホストされているソースとの間でプライベート接続を確立する方法について説明します。

Cloud SQL にリバース プロキシが必要な理由

プライベート IP アドレスを使用するように Cloud SQL for MySQL インスタンスまたは Cloud SQL for PostgreSQL インスタンスを構成する場合は、VPC ネットワークと、Cloud SQL インスタンスが存在する基盤となる Google サービスの VPC ネットワークの間に VPC ピアリング接続を使用します。

Datastream のネットワークを Cloud SQL のプライベート サービス ネットワークと直接ピアリングすることはできません。また、VPC ピアリングは推移的ではないため、Datastream から Cloud SQL インスタンスへの接続をブリッジするには、Cloud SQL のリバース プロキシが必要です。

次の図は、リバース プロキシを使用して Datastream と Cloud SQL の間にプライベート接続を確立する方法を示しています。

Datastream のユーザーフロー図

別の VPC でホストされているソースにリバース プロキシが必要な理由

Datastream の VPC ネットワークが VPC ネットワーク(「Network1」)とピアリングされ、ソースに別の VPC ネットワーク(「Network2」)からアクセスできる場合、Datastream は VPC ネットワーク ピアリングのみを使用してソースと通信することはできません。また、Datastream とソースの間の接続をブリッジするため、リバース プロキシも必要です。

次の図は、リバース プロキシを使用して、Datastream と Google ネットワークの外部でホストされているソースとの間でプライベート接続を確立する方法を示しています。

Datastream のユーザーフロー図

リバース プロキシを設定する

  1. Datastream がソースに接続する VPC ネットワークを特定します。
  2. この VPC ネットワークで、基本的な Debian または Ubuntu イメージを使用して新しい仮想マシン(VM)を作成します。この VM はリバース プロキシをホストします。
  3. サブネットが Datastream と同じリージョンにあり、リバース プロキシがトラフィックをソースに転送していることを確認します(ソースから転送しないでください)。
  4. SSH を使用して VM に接続します。SSH 接続の詳細については、SSH 接続についてをご覧ください。
  5. VM から送信元の内部 IP アドレスとポートに ping または telnet コマンドを実行して、プロキシ VM が送信元と通信できることを確認します。
  6. プロキシ VM で、次のコードを使用して起動スクリプトを作成します。起動スクリプトの詳細については、Linux VM での起動スクリプトの使用をご覧ください。

    #! /bin/bash
    
    export DB_ADDR=[IP]
    export DB_PORT=[PORT]
    
    export ETH_NAME=$(ip -o link show | awk -F': ' '{print $2}' | grep -v lo)
    
    export LOCAL_IP_ADDR=$(ip -4 addr show $ETH_NAME | grep -Po 'inet \K[\d.]+')
    
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp -m tcp --dport $DB_PORT -j DNAT \
    --to-destination $DB_ADDR:$DB_PORT
    iptables -t nat -A POSTROUTING -j SNAT --to-source $LOCAL_IP_ADDR

    このスクリプトは、VM が再起動するたびに実行されます。

  7. Datastream でプライベート接続構成を作成して、VPC とDatastream の VPC との間に VPC ピアリングを確立します。

  8. ファイアウォール ルールで、プライベート接続用に選択した IP アドレス範囲からのトラフィックが許可されていることを確認します。

  9. Datastream で接続プロファイルを作成します。

リバース プロキシの設定に関するベスト プラクティス

このセクションでは、ゲートウェイ VM とプロキシ VM を設定する際のベスト プラクティスについて説明します。

マシンタイプ

最適なマシンタイプを判断するには、まずシンプルな設定で負荷とスループットを測定します。使用量が少なく、スループットのピークが問題なく処理される場合は、CPU の数とメモリ量を減らすことを検討してください。たとえば、スループットが最大 2 GBps の場合は、n1-standard-1 マシンタイプを選択します。スループットが 2 Gbps を超える場合は、e2-standard-2 マシンタイプを選択します。e2-standard-2 タイプは、効率性を高めるための費用対効果の高い構成です。

アーキテクチャのタイプ

高可用性(HA)以外のインスタンス

任意のオペレーティング システムを使用して単一の VM をデプロイします。復元力を高めるために、単一の VM でマネージド インスタンス グループ(MIG)を使用できます。VM がクラッシュすると、MIG は障害が発生したインスタンスを再作成して自動的に修復します。詳細については、インスタンス グループをご覧ください。

高可用性(HA)インスタンス

2 つの VM を使用して MIG を設定します。各 VM は、異なるリージョン(該当する場合)または異なるゾーンに配置します。MIG を作成するには、グループで使用できるインスタンス テンプレートが必要です。MIG は、内部のネクストホップ IP アドレスを使用して、内部のレイヤ 4 ロードバランサの背後に作成されます。

次のステップ