プライベート接続

概要

プライベート接続は、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 がソースと通信できることを確認するには、VM からソースの内部 IP アドレスとポートに ping または telnet コマンドを実行します。
  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 を設定するときに使用するベスト プラクティスについて説明します。

マシンタイプ

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

アーキテクチャの種類

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

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

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

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

次のステップ