Redis インスタンスには、その Redis インスタンスと同じ承認済みネットワークを使用する Compute Engine VM インスタンスから接続できます。
設定
Google Cloud CLI をインストール済みで、Redis インスタンスおよび Cloud Storage バケットを作成済みの場合は、次の手順をスキップできます。
gcloud CLI をインストールして初期化します。
gcloud init
クイックスタート ガイドの手順に沿って Redis インスタンスを作成します。Redis インスタンスのゾーン、IP アドレス、ポート番号をメモしておきます。
このサンプル アプリケーションのアプリケーション アーティファクトがアップロードされる Cloud Storage バケットを作成します。詳細については、バケットを作成するをご覧ください。
サンプル アプリケーションの gcloud 設定を構成する
gcloud
のデフォルト プロジェクトをサンプルアプリのプロジェクトに設定します。gcloud config set project [PROJECT_ID]
サンプル アプリケーション
このサンプル HTTP サーバー アプリケーションは、Compute Engine VM インスタンスから Redis インスタンスへの接続を確立します。
使用するプログラミング言語のリポジトリのクローンを作成し、サンプルコードを含むフォルダに移動します。
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/memorystore/redis
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/memorystore/redis
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/memorystore/redis
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/memorystore/redis
このサンプル アプリケーションは、/
エンドポイントがアクセスされるたびに Redis カウンタをインクリメントします。
Go
このアプリケーションは、github.com/gomodule/redigo/redis
クライアントを使用します。次のコマンドを実行してインストールします。
go get github.com/gomodule/redigo/redis
Java
このアプリケーションは、Jetty 3.1 サーブレット ベースです。
Jedis ライブラリを使用します。
AppServletContextListener
クラスは、長期間有効な Redis 接続プールを作成するために使用されます。
VisitCounterServlet
クラスは、Redis カウンタをインクリメントするウェブ サーブレットです。
Node.js
このアプリケーションでは、redis
モジュールを使用します。
Python
このアプリケーションでは、ウェブサービスに Flask を使用し、redis-py
パッケージを使用して Redis インスタンスと通信します。
Compute Engine VM にアプリケーションをデプロイする
gce_deployment
ディレクトリに移動します。
cd gce_deployment
デプロイ スクリプトは、Cloud Storage のパスにアーティファクトをアップロードします。その後、Compute Engine インスタンスを起動し、ポート 8080 を公開するファイアウォールを作成します。次に、起動スクリプトがインスタンスを準備します。
REDISHOST
と REDISPORT
環境変数を設定します。
export REDISHOST=[REDISHOST] export REDISPORT=[REDISPORT]
ここで
REDISHOST
は、マネージド Redis インスタンスの IP です。REDISPORT
は、デフォルトで 6379 の管理対象 Redis インスタンス ポートです。
GCS_BUCKET_NAME
環境変数を設定します。
export GCS_BUCKET_NAME=[BUCKET_NAME]/[PATH]
ここで
BUCKET_NAME
は、Cloud Storage バケットの名前です。PATH
は、アプリケーション アーティファクトを格納するディレクトリのパス(オプション)です。
ここに示すのは、このアプリケーションを新しい Compute Engine VM インスタンスにデプロイするサンプルのデプロイ スクリプトです。
Go
Java
Node.js
Python
次のようにデプロイ スクリプトを実行します。
chmod +x deploy.sh
./deploy.sh
アプリケーション起動スクリプト
この起動スクリプトは、インスタンスを準備する目的でサンプルのデプロイ スクリプトで使用されています。起動スクリプトと起動スクリプト実行ログの表示に関する詳細については、起動スクリプトの実行をご覧ください。
Go
Java
Node.js
Python
新しく作成した Compute Engine インスタンスにサンプル アプリケーションをデプロイするには、数分かかることがあります。
インスタンスの準備が完了し、起動スクリプトの実行が完了したら、Compute Engine インスタンス ページに移動して外部 IP アドレスをコピーします。
デプロイしたサンプルアプリを表示するには、http://[EXTERNAL-IP]:8080 にアクセスします。
teardown.sh
スクリプトを使用して、デプロイ スクリプトによって作成されたインスタンスとファイアウォールを削除できます。