メインコンテンツまでスキップ

Extend Key Value Store

Last updated on July 23, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要

Extend Key Value Store は、AWS ElastiCache Valkey Serverless を基盤とした Redis 互換のキーバリューデータベースに、Extend App がデータを保存できるようにします。フルマネージドでスケーラブル、かつ低レイテンシーなデータストアを提供することで、独自のキャッシュやキーバリューインフラストラクチャを構築・維持する複雑さを排除します。これにより、開発者はインフラの管理ではなく、ゲーム機能の構築に集中できます。

Extend Key Value Store はすべての種類の Extend App にアタッチでき、キャッシュ、セッション状態、カウンター、その他のキーベースのルックアップなど、小さなデータへの高速かつ低レイテンシーなアクセスを必要とするユースケースに適しています。

Extend Key Value Store はクラスターごとに単一の論理データベースを使用します。複数の Extend App が同じクラスターに統合されている場合、それらのアプリは同じキースペースを共有します。アプリケーションごとのデータベース名やコレクションレベルの分離はありません。

Extend Key Value Store クラスターのプロビジョニング

Extend Key Value Store クラスターは、Publisher または Studio ネームスペースレベルでプロビジョニングできます。

  1. Admin Portal の Extend Databases メニューに移動します。

  2. Extend Databases ページで Key Value Store カードを見つけ、Create Cluster ボタンをクリックします。

    Key Value Store card

  3. Create New Cluster ボタンをクリックします。

    Key Value Store list

  4. 必要に応じて Key Value Store データベースプロファイルを選択し、Create Cluster ボタンをクリックします。確認ダイアログで CREATE と入力し、Create ボタンをクリックします。

    Key Value Store create

    Key Value Store create modal confirmation

  5. クラスターがプロビジョニングされるまで5~10分ほど待ちます。

    Key Value Store provisioning

  6. クラスターのプロビジョニングが完了すると、ステータスが AVAILABLE に変わります。

    Key Value Store available

  7. Extend App を Extend Key Value Store と統合するには、Extend App 用に Extend Key Value Store を設定する セクションに進んでください。

Extend Key Value Store クラスターのデータベースプロファイルの更新

クラスターの容量やパフォーマンスを変更する必要がある場合は、データベースプロファイルを更新できます。この操作は Publisher または Studio ネームスペースレベルで実行できます。

  1. Extend Databases メニューで Key Value Store カードをクリックし、次に Manage Cluster ボタンをクリックします。

  2. 更新したいクラスターをクリックし、Edit ボタンをクリックします。

    Key Value Store update

  3. 必要に応じて新しい Key Value Store データベースプロファイルを選択し、Save ボタンをクリックします。

    Key Value Store update profile

  4. 確認ダイアログで UPDATE と入力してアクションを確認し、Update ボタンをクリックします。

    Key Value Store update confirmation

  5. クラスターが更新されるまで待ちます。

    Key Value Store updating

  6. クラスターの更新が完了すると、ステータスが再び AVAILABLE に変わります。

    Key Value Store updated

Extend Key Value Store クラスターの削除

不要になったクラスターは削除できます。クラスターは AVAILABLE ステータスまたは CREATE-FAILED ステータスのときのみ削除できます。この操作は Publisher または Studio ネームスペースレベルで実行できます。

  1. Extend Databases メニューで Key Value Store カードをクリックし、次に Manage Cluster ボタンをクリックします。

  2. 選択したクラスターの Delete ボタンをクリックします。

    Key Value Store delete

  3. 確認ダイアログで DELETE と入力してアクションを確認し、Delete Cluster ボタンをクリックします。

    Key Value Store delete confirmation

  4. 削除処理には約5~10分かかります。

important

クラスターの削除操作を行うと、統合されているすべての Extend App とともに、そのデータや認証情報も削除されます。

Extend App 用に Extend Key Value Store を設定する

この操作は Game ネームスペースレベルで実行できます。Key Value Store の統合を作成できるのは、クラスターが AVAILABLE ステータスのときのみです。

  1. Extend App の詳細ページで Databases タブに切り替えます。

  2. Key Value Store カードで Set Up ボタンをクリックします。

    Key Value Store app tab

  3. クラスターを選択し、ユーザー名とパスワードを生成した後、安全な認証情報の取り扱いに関する確認事項を確認し、Set Up ボタンをクリックします。

    Key Value Store set up integration

  4. Database Summary ページに表示される接続情報を保存するには、Copy ボタンをクリックします。手順3で作成したユーザー名とパスワードを使用して、アプリや TCP Tunneling から接続できます。

    Key Value Store summary

    接続情報は、次のように Extend App のシークレットと変数に自動的に追加されます。

    • REDIS_HOST
    • REDIS_PORT
    • REDIS_USERNAME
    • REDIS_PASSWORD

    これらの変数は、Extend App が Key Value Store クラスターに安全に接続するために使用されます。

  5. Integration StatusConfiguring から Ready に変わるまで待ちます。準備ができたら、Key Value Store の使用を開始したり、Extend App の新しいデプロイメントを作成したりできます。

    Key Value Store integration status ready

注記

Key Value Store はキーバリューサービスであり、SQL や NoSQL のようなデータベース名という概念はありません。すべてのデータはクラスターごとに単一の論理データストアに保存されます。

important

Key Value Store クラスターは単一の共有キースペースを使用します。複数の Extend App が同じクラスターに統合されている場合、すべてのアプリが同じキースペースで読み書きを行います(アプリごとのデータベース分離はありません)。キーの命名規則、キーの衝突の防止、およびアプリケーションレベルでの論理的な分離の実装(例: アプリ、ネームスペース、機能ごとのキープレフィックス)は、お客様の責任となります。

認証情報のローテーション

以下の手順では、Extend App の Key Value Store 認証情報をローテーションする方法を示します。

  1. Extend App の詳細ページで Databases タブに切り替えます。

  2. Key Value Store の詳細ページで Rotate Credentials をクリックします。

    Key Value Store integration status ready

  3. Change Database Password モーダルで新しいユーザー名とパスワードを生成し、Copy ボタンをクリックして認証情報を保存します。

    Key Value Store integration status ready

  4. Integration Status は Modifying に変わり、その後 Ready に変わるまで約5~10分かかります。

    Key Value Store integration status modifying

important

Extend App が現在実行中の場合、認証情報のローテーションによって自動的に再起動し、更新された認証情報が適用されます。

Extend App を Extend Key Value Store に接続する

この例では、注入された環境変数を使用して、Go ベースの Extend Service Extension を Key Value Store に接続する方法を示します。

  1. Go 用の Redis クライアント(Valkey 互換)を Extend App に追加します。

    以下の go get コマンドを実行して、Redis Go ドライバーの最新バージョンをインストールします。

    go get github.com/redis/go-redis/v9

    その後、go mod tidy コマンドを実行します。

    go mod tidy
  2. Redis/Valkey クライアントを Key Value Store に接続するように設定します。REDIS_HOSTREDIS_PORTREDIS_USERNAMEREDIS_PASSWORD 環境変数を使用して、クライアント設定を構築します。

    import (
    ...
    "context"
    "crypto/tls"
    "fmt"
    "os"
    "time"

    "github.com/redis/go-redis/v9"
    ...
    )

    ...

    redisHost := os.Getenv("REDIS_HOST")
    redisPort := os.Getenv("REDIS_PORT")
    redisUsername := os.Getenv("REDIS_USERNAME")
    redisPassword := os.Getenv("REDIS_PASSWORD")

    addr := fmt.Sprintf("%s:%s", redisHost, redisPort)

    client := redis.NewClient(&redis.Options{
    Addr: addr,
    Username: redisUsername,
    Password: redisPassword,
    TLSConfig: &tls.Config{
    MinVersion: tls.VersionTLS12,
    },
    MinIdleConns: 5,
    PoolSize: 30,
    })

    ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
    defer cancel()

    if err := client.Ping(ctx).Err(); err != nil {
    // replace with proper error handling in production
    }

    ...
  3. ハンドラーやサービス内でクライアントを使用し、キーバリューデータを保存・取得します。

    ...
    ctx := context.Background()

    err := client.Set(ctx, "player:123:session", "active", 10*time.Minute).Err()
    if err != nil {
    // replace with proper error handling in production
    }

    value, err := client.Get(ctx, "player:123:session").Result()
    if err != nil {
    // replace with proper error handling in production
    }

    fmt.Println(value)
    ...
important

クラスターではデフォルトで TLS が有効になっています。Redis クライアントが TLS を使用するように設定されていることを確認してください。

ヒント

その他のコマンドやパターンについて詳しく知るには、go-redis のドキュメントを参照してください。

Extend TCP Tunneling を通じて Extend Key Value Store にアクセスする

Extend Helper CLI を使用した Extend TCP Tunneling によって、ローカル開発環境から Extend Key Value Store に接続できます。この操作を実行できるのは、クラスターが AVAILABLE ステータスのときのみです。

  1. Extend Helper CLI が設定済みであることを確認します。その後、使用する IAM クライアントに以下の権限を追加します。

    • AGS Private Cloud のお客様の場合:
      • ADMIN:NAMESPACE:{namespace}:EXTEND:TUNNEL [READ]
    • AGS Public Cloud のお客様の場合:
      • Extend > TCP Tunneling (Read)
  2. Extend App の Key Value Store タブから Resource Name 情報をコピーします。

    Key Value Store tunnel resource

  3. Extend Helper CLI を使用して、Key Value Store への Extend TCP Tunneling を開始します。手順2、または KVS Database の詳細ページから取得した Resource Name 情報を --resource-name オプションのパラメーターとして渡します。

    extend-helper-cli tunnel --resource-name <Resource Name> --namespace <namespace> --local-port <port>
    important

    システムクロックが同期されていない場合、認証が失敗することがあります。コマンドを実行する前に、ローカル時刻が正確であることを確認してください。

    ヒント

    Databases タブの KVS Database セクションにある Tunnel Command 情報から、完全なコマンドをコピーすることもできます。

  4. Redis 互換のクライアント(redis-cli、Valkey CLI、または TLS をサポートする GUI クライアントなど)を使用して、手順3で指定したローカルポートを通じて Key Value Store に接続します。KVS Database の詳細ページから Connection String をコピーするか、以下のような形式を使用してください。

    redis-cli -u "rediss://<username>:<password>@localhost:<port>"

    または、TLS を有効にした状態で localhost:<port> に接続するようにクライアントを設定します。

サンプル

以下のサンプル Extend App は、Extend Key Value Store をキャッシュとキーバリュー操作に使用する Extend Service Extension です。

git clone https://github.com/AccelByte/extend-event-handler-with-kvs-go.git

オブザーバビリティ

Grafana の可観測性ダッシュボードを通じて、Key Value Store クラスターのパフォーマンスを監視できます。このダッシュボードには、CPU 使用率、レイテンシー、秒間コマンド数、キャッシュヒット率、接続統計など、主要なパフォーマンスメトリクスを表示するパネルが用意されており、ボトルネックを特定してアプリケーションの使用状況を最適化できます。

  1. Extend App の Databases タブで、Key Value Store カードの追加の ... メニューボタンをクリックし、Database Dashboard を選択します。

    Key Value Store observability

  2. Grafana のサインインページが新しいタブで開きます。Sign in with Admin Portal ボタンをクリックし、AccelByte の認証情報でログインします。

    Key Value Store observability login

  3. ログインが完了すると、Key Value Store のダッシュボードを表示できます。

    Key Value Store observability dashboard