Terraform を使用して Memorystore for Redis クラスタ インスタンスを作成する

このクイックスタートでは、Terraform を使用して新しい Memorystore for Redis Cluster インスタンスを作成する方法について説明します。また、telnet を使用してインスタンスに接続する方法についても説明します。

このクイックスタートでは、新しい Terraform ファイルを開始することを前提としており、 Google Cloud プロバイダを設定するための Terraform リソースが含まれています。ただし、 Google Cloud プロバイダで Terraform ファイルを認証する手順は省略されています。

Google Cloud プロバイダで Terraform を認証する手順については、 Google Cloud プロバイダ スタートガイドをご覧ください。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. まだインストールしていない場合は、Google Cloud SDK をインストールします。

    プロンプトが表示されたら、上記で作成または選択したプロジェクトを選択します。

  7. Google Cloud SDK をインストール済みの場合は更新します。

    gcloud components update
  8. Memorystore for Redis Cluster API を有効にする。
    Memorystore for Redis Cluster
  9. Memorystore 用に Terraform を構成する

    このセクションでは、Memorystore for Redis Cluster インスタンスの作成に必要な 5 つの Terraform リソースの例を示します。

    • Google Cloud プロバイダの構成。

    • Memorystore インスタンスの構成。このガイドでは、us-central1 リージョンに 3 つの redis-highmem-medium ノードがある 39 GB のクラスタです。

    • Private Service Connect のサービス接続ポリシー

    • インスタンスのサブネット。

    • インスタンスのネットワーク。

    これらの Terraform リソースを追加する手順は次のとおりです。

    1. Terraform 構成ファイルに次のリソースを追加します。

      
      provider "google" {
        project = "PROJECT_ID"
      }
      
      resource "google_redis_cluster" "cluster-ha" {
        name           = "CLUSTER_ID"
        shard_count    = 3
        psc_configs {
          network = google_compute_network.producer_net.id
        }
        region = "us-central1"
        replica_count = 1
        depends_on = [
          google_network_connectivity_service_connection_policy.default
        ]
      
      }
      
      resource "google_network_connectivity_service_connection_policy" "default" {
        name = "POLICY_NAME"
        location = "us-central1"
        service_class = "gcp-memorystore-redis"
        description   = "my basic service connection policy"
        network = google_compute_network.producer_net.id
        psc_config {
          subnetworks = [google_compute_subnetwork.producer_subnet.id]
        }
      }
      
      resource "google_compute_subnetwork" "producer_subnet" {
        name          = "SUBNET_ID"
        ip_cidr_range = "10.0.0.248/29"
        region        = "us-central1"
        network       = google_compute_network.producer_net.id
      }
      
      resource "google_compute_network" "producer_net" {
        name                    = "NETWORK_ID"
        auto_create_subnetworks = false
      }
      
      

      次のように置き換えます。

      • PROJECT_ID は、インスタンスのプロジェクト ID です。
      • CLUSTER_ID は、作成する Memorystore for Redis Cluster インスタンスの ID です。ID は 1 ~ 63 文字にする必要があり、小文字、数字、ハイフンのみ使用できます。先頭は英小文字に、末尾は英小文字または数字にする必要があります。
      • POLICY_NAME は、プロジェクトの Private Service Connect サービス接続ポリシーに選択した名前です。サービス接続ポリシーの詳細については、ネットワーキングをご覧ください。
      • SUBNET_ID は、この例で作成されたサブネットの選択した ID であり、Memorystore クラスタで使用されます。
      • NETWORK_ID は、この例で作成されたネットワークの選択した ID であり、Memorystore クラスタで使用されます。

    Terraform 構成ファイルをデプロイする

    1. terraform init を実行します。

    2. terraform plan を実行します。

    3. terraform apply を実行します。

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

    次に、新しく作成した Memorystore for Redis Cluster インスタンスに接続します。

    インスタンスの承認済みネットワークを使用する任意の Compute Engine VM からインスタンスに接続できます。

    1. インスタンスと同じ承認済みネットワークを使用する Compute Engine VM がまだない場合は、作成してから Linux VM を使用したクイックスタートに沿って接続します。

    2. apt-get を使用して telnet をインストールします。

      sudo apt-get install telnet
      
    3. ターミナルで次のように入力して、インスタンスの IP アドレスに telnet で接続します。VARIABLES は、適切な値に置き換えてください。

      telnet CLUSTER_DISCOVERY_ENDPOINT_IP_ADDRESS CLUSTER_DISCOVERY_ENDPOINT_PORT_NUMBER
      
    4. telnet セッションで、次のようにいくつかの Redis コマンドを入力します。

      次のように入力します。

      PING
      

      結果:

      PONG
      

    クリーンアップ

    このクイックスタートで使用したリソースに対して Google Cloud アカウントに課金されないようにするには、次の手順で Redis インスタンスを削除します。

    1. Terraform 構成ファイルから google_redis_instance リソースを削除します。
    2. Terraform initplanapply を実行して Redis リソースを破棄します。
    3. このクイックスタート用に作成した Compute Engine VM を削除します。

    複数の VPC ネットワークを設定するように Terraform を構成する

    このページの各セクションでは、Memorystore for Redis Cluster インスタンスを作成し、Virtual Private Cloud(VPC)ネットワークで接続を設定する例を示します。Terraform を使用して複数の VPC ネットワークで接続を設定する手順と例については、google_redis_cluster_user_created_connections ページをご覧ください。

次のステップ