Memcached インスタンスへの接続

このページでは、Memorystore for Memcached インスタンスに接続する方法について説明します。Compute Engine VM インスタンス、Google Kubernetes Engine クラスタ、Cloud Functions、App Engine フレキシブル環境、App Engine スタンダード環境から Memcached インスタンスに接続できます。

Cloud Functions を使用して Memorystore にアクセスする場合は、その前に VPC ネットワークの内部リソースへの接続のセットアップ手順を実行する必要があります。

また、App Engine スタンダード環境で Memorystore にアクセスする前に、VPC ネットワークの内部リソースへの接続の設定手順にも従う必要があります。

Compute Engine VM から Memcached インスタンスに接続する

Memcached インスタンスに接続するには、Compute Engine VM インスタンスを同じプロジェクトとリージョン内に配置し、Memcached インスタンスと同じネットワークまたは VPC ネットワークに接続する必要があります。

  1. Linux VM に接続します。Linux VM に接続する手順については、Linux VM の使用に関するクイックスタートをご覧ください。クイックスタートの説明に従い、Debian ベースのイメージを使用して VM インスタンスを作成した場合は、apt-get を使用して telnet をインストールします。

    sudo apt-get install telnet
    
  2. ターミナルから、いずれかの Memcached ノードの IP アドレスに telnet 接続します。variables は、適切な値に置き換えてください。

    telnet node-ip-address 11211
    

    正しく動作すると、[bracketed-variables] をプロジェクトの変数に置き換えた、次の出力が表示されます。

    Trying [node-ip-address]
    Connected to [node-ip-address]
    
  3. telnet セッションで、いくつかの Memcached コマンドを入力します。

    次のように入力します:

    get greeting
    

    結果:

    END
    

    次のように入力します:

    set greeting 1 0 11
    hello world
    

    結果:

    STORED
    

    次のように入力します:

    get greeting
    

    結果:

    VALUE greeting 1 11
    hello world
    END
    

Memorystore for Memcached は、標準のオープンソース Memcached ライブラリをサポートしています。

Google Kubernetes Engine クラスタから Memcached インスタンスに接続する

Memcached インスタンスには、インスタンスと同じリージョンにあって、同じネットワークに接続されている GKE クラスタを使用して接続できます。

  1. GCP Console で Google Kubernetes Engine のページに移動します。
    Google Kubernetes Engine

  2. 接続元とする GKE クラスタをクリックします。クラスタをまだ作成していない場合は、Memcached インスタンスと同じゾーンおよびリージョンに IP エイリアスを有効にしてクラスタを作成します。IP エイリアスを有効にしてクラスタを作成する方法については、VPC ネイティブ クラスタの作成をご覧ください。

  3. クラスタ名の右側にある [接続] ボタンをクリックし、表示されるウィンドウで [Cloud Shell で実行] ボタンをクリックします。

  4. 次のコマンドを実行して、kubectl コマンドライン アクセスを構成します。

    gcloud beta container clusters get-credentials cluster-name --zone=cluster-zone --project=project-id
    
    • cluster-name はクラスタの名前です。

    • cluster-zone は、クラスタが配置されているゾーンです。これは、Memcached インスタンスが配置されているゾーンである必要もあります。

    • project-id は、クラスタと Memcached インスタンスが配置されているプロジェクトです。

    コマンドが成功すると、次のメッセージが表示されます。

    kubeconfig generated for cluster-name
    

    このメッセージが表示されない場合は、コマンドに正しいクラスタ情報が入力されていることを確認してください。

  5. クラスタのバージョンが 1.8 以上かつ IP エイリアスが有効になっている場合は、この手順をスキップします。クラスタのバージョンが 1.7 以下の場合、またはバージョン 1.8 以上で IP エイリアスが有効になっていない場合は、次の回避策の手順を行ってからインスタンスに接続してください。

    回避策

    次の 3 つのコマンドを実行します。reserved-ip-range の部分は、実際のインスタンスの予約済み IP 範囲に置き換えてください。

    git clone https://github.com/bowei/k8s-custom-iptables.git
    
    cd k8s-custom-iptables/
    
    TARGETS="reserved-ip-range" ./install.sh
    
    gcloud beta memcache instances describe instance-id --region=region
    

    この設定を有効にしてクラスタを作成する方法など、IP エイリアスの詳細については、VPC ネイティブ クラスタの作成をご覧ください。

  6. 次のコマンドを使用して、bash シェルに接続します。

    kubectl run -i --tty busybox --image=busybox -- sh
    
  7. ノードのいずれかの IP アドレスとインスタンスのポート番号を使用して、Memacached インスタンスに telnet で接続します。

    telnet node-ip-address 11211
    
  8. telnet セッションで、いくつかの Memcached コマンドを入力します。

    次のように入力します:

    get greeting
    

    結果:

    END
    

    次のように入力します:

    set greeting 1 0 11
    hello world
    

    結果:

    STORED
    

    次のように入力します:

    get greeting
    

    結果:

    VALUE greeting 1 11
    hello world
    END
    

Memorystore for Memcached は、標準のオープンソース Memcached ライブラリをサポートしています。

次のステップ