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

extend-sql-database

Last updated on July 23, 2026

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

Overview

Extend SQL Databaseを使用すると、Extend AppはAmazon Aurora PostgreSQLデータベースにデータを保存できます。独自のデータベースインフラストラクチャを構築・保守する複雑さを排除した、マネージド型でスケーラブルなデータベースソリューションです。これにより、開発者は革新的な機能の構築に集中できます。

Extend SQL Databaseは、すべての種類のExtend Appにアタッチできます。これにより、ACID準拠とリレーショナルデータモデリングを備えた永続的なデータストレージ機能を必要とする幅広いユースケースが実現します。

Extend SQLクラスターのプロビジョニング

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

  1. Extendメニューに移動し、Extend Databasesをクリックします。Extend SQL DatabaseカードのCreate Clusterをクリックします。

    SQL Cluster create options

  2. 必要に応じてデータベースプロファイルを選択し、Create SQL Databaseボタンをクリックします。

    SQL Cluster database profile selection

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

    SQL Cluster provisioning

  4. クラスターがプロビジョニングされると、ステータスがAVAILABLEに変わります。

    SQL Cluster provisioned

  5. Extend SQL DatabaseをExtend Appと統合するには、Extend AppでExtend SQL Databaseを設定するセクションに進みます。

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

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

  1. Extend → Extend Databasesメニューで、SQLカードのManage Clusterをクリックし、Editボタンを見つけてクリックします。

    SQL Cluster update

  2. 必要に応じてExtend SQL Databaseプロファイルを選択し、Updateボタンをクリックします。

    SQL Cluster update profile

  3. 確認ダイアログで、UPDATEと入力して更新操作を確認し、Updateボタンをクリックします。

    SQL Cluster update confirmation

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

    SQL Cluster updating

  5. クラスターが更新されると、ステータスが再びAVAILABLEに変わります。

    SQL Cluster updated

Extend SQLクラスターの削除

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

  1. Extend → Extend Databasesメニューで、SQLカードのManage Clusterをクリックし、Delete Clusterボタンを見つけてクリックします。

    SQL Cluster delete

  2. 確認ダイアログで、DELETEと入力して削除を確認し、Delete Instanceボタンをクリックします。

    SQL Cluster delete confirmation

  3. クラスターが削除されると、ページはExtend → Extend Databasesページに戻ります。

Extend AppでExtend SQL Databaseを設定する

この操作はGameネームスペースレベルで実行でき、SQLクラスターのステータスがAVAILABLEの場合のみデータベースを作成できます。

  1. Extend Appの詳細ページで、Databasesタブに切り替え、SQL DatabaseカードのSet Upボタンをクリックします。

    SQL Database tab

  2. データベース名、ユーザー名、パスワードを入力し、認証情報を安全に管理することを確認するチェックボックスをオンにして、Addボタンをクリックします。

    Add SQL database popup

  3. Database Summaryページの情報をメモしておきます。

    SQL database summary

    データベースのホスト、名前、ユーザー名、パスワードは、それぞれSQLDB_HOSTSQLDB_DATABASE_NAMESQLDB_USERNAMESQLDB_PASSWORDとしてExtend Appのシークレットと変数に自動的に追加されます。

Extend AppをExtend SQL Databaseに接続する

  1. Extend AppにPostgreSQLドライバーを追加します。

    次のgo getコマンドを実行して、pgx PostgreSQLドライバーと接続プールパッケージを取得します。

    go get github.com/jackc/pgx/v5

    その後、go mod tidyコマンドを実行することをお勧めします。

    go mod tidy
  2. PostgreSQLドライバーを設定して、SQL Databaseに接続します。SQLDB_HOSTSQLDB_USERNAMESQLDB_PASSWORDSQLDB_DATABASE_NAMESQLDB_CA_CERT_FILE_PATH環境変数を使用して接続文字列を構築します。

    import (
    ...
    "context"
    "net/url"
    "time"
    "github.com/jackc/pgx/v5/pgxpool"
    ...
    )

    ...

    ctx := context.Background()
    sqlDbHost := os.Getenv("SQLDB_HOST")
    sqlDbUsername := os.Getenv("SQLDB_USERNAME")
    sqlDbPassword := os.Getenv("SQLDB_PASSWORD")
    sqlDbDatabaseName := os.Getenv("SQLDB_DATABASE_NAME")
    sqlDbCaCertFilePath := os.Getenv("SQLDB_CA_CERT_FILE_PATH")

    connectionString := fmt.Sprintf(
    "postgresql://%s:%s@%s/%s?sslmode=verify-full&sslrootcert=%s",
    url.QueryEscape(sqlDbUsername),
    url.QueryEscape(sqlDbPassword),
    sqlDbHost,
    sqlDbDatabaseName,
    sqlDbCaCertFilePath,
    )

    poolConfig, err := pgxpool.ParseConfig(connectionString)
    if err != nil {
    // replace with proper error handling in production
    }

    // Configure connection pool
    poolConfig.MaxConns = 30
    poolConfig.MinConns = 5
    poolConfig.MaxConnLifetime = time.Hour

    db, err := pgxpool.NewWithConfig(ctx, poolConfig)
    if err != nil {
    // replace with proper error handling in production
    }
    defer db.Close()

    // Validate the connection
    if err := db.Ping(ctx); err != nil {
    // replace with proper error handling in production
    }

    ...
    important

    クラスターではTLSがデフォルトで有効になっています。sslmodeオプションは、allowpreferrequireverify-caverify-fullのいずれかに設定する必要があります。 TLS証明書は自動的に追加され、SQLDB_CA_CERT_FILE_PATH環境変数によって公開されます。この証明書はverify-caおよびverify-fullモードで必要です。

  3. データベース接続を使用してSQLクエリを実行します。

    ...

    ctx := context.Background()

    // Create a table
    _, err = db.Exec(ctx, `
    CREATE TABLE IF NOT EXISTS users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )
    `)
    if err != nil {
    // replace with proper error handling in production
    }

    // Insert data
    _, err = db.Exec(
    ctx,
    "INSERT INTO users (username, email) VALUES ($1, $2)",
    "player1",
    "player1@example.com",
    )
    if err != nil {
    // replace with proper error handling in production
    }

    // Query data
    var username string
    var email string
    err = db.QueryRow(ctx, "SELECT username, email FROM users WHERE id = $1", 1).Scan(&username, &email)
    if err != nil {
    // replace with proper error handling in production
    }

    ...
    ヒント

    GoでのPostgreSQLの操作について詳しくは、PostgreSQL公式ドキュメントpgxドキュメントを参照してください。

Extend TCP TunnelingによるExtend SQL Databaseへのアクセス

Extend Helper CLIを使用したExtend TCP Tunneling経由で、ローカル開発環境からExtend SQL Databaseに接続できます。この操作は、SQLクラスターのステータスがAVAILABLEの場合のみ実行できます。

  1. Extend Helper CLIがセットアップされていることを確認します。次に、使用するIAMクライアントに以下の権限を追加します。

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

    SQL Database tab selection

    SQL Database Tunnel

  3. Extend Helper CLIを使用して、Extend SQL DatabaseへのExtend TCP Tunnelingを開始します。ステップ2のResource Name情報を--resource-nameオプションのパラメーターとして渡します。

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

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

    ヒント

    SQL DatabaseタブのTunnel Command情報から完全なコマンドをコピーすることもできます。

  4. https://truststore.pki.rds.amazonaws.com/global/global-bundle.pemからAWS RDS TLS証明書をダウンロードしていることを確認します(TLSは有効になっており、verify-caおよびverify-fullモードでは証明書が必要です。それ以外の場合はオプションです)。

  5. PostgreSQLクライアント(pgAdmin、DBeaver、psqlなど)を使用して、ステップ3で指定したローカルポートを介してExtend SQL Databaseに接続します。データベースをセットアップしたときにメモしたデータベース名、ユーザー名、パスワードを使用します。接続文字列は次のようになります。

    postgresql://<username>:<password>@localhost:<port>/<database-name>?sslmode=verify-full&sslrootcert=<path-to-certs-file>

    psqlコマンドラインを使用する場合:

    psql "postgresql://<username>:<password>@localhost:<port>/<database-name>?sslmode=verify-full&sslrootcert=<path-to-certs-file>"

PostgreSQL拡張機能のインストール

トンネル接続を介して、Extend SQL DatabaseにPostgreSQL拡張機能をインストールできます。

データベースでCREATE EXTENSIONを実行して自分でインストールできるのは、信頼済み拡張機能のみです。自分でインストールできる拡張機能の一覧については、Amazon RDSドキュメントのPostgreSQL信頼済み拡張機能を参照してください。

Extend SQL DatabaseはAurora PostgreSQL 17で実行されます。このバージョンでサポートされているすべての拡張機能の名前とバージョンについては、Amazon RDSでサポートされているPostgreSQL拡張機能を参照してください。

前提条件

  • Extend SQLクラスターのステータスがAVAILABLEであること。
  • Extend AppにExtend SQL Databaseがセットアップされていること。
  • データベースユーザーが対象データベースで拡張機能を作成する権限を持っていること。新しいデータベースには、この権限が自動的に付与されます。CREATE EXTENSIONの実行時にMust have CREATE privilege on current databaseと表示される場合は、AccelByte開発者サポートにお問い合わせください。

拡張機能のインストール

  1. Extend TCP TunnelingによるExtend SQL Databaseへのアクセスの手順に従って、Extend TCP Tunnelingを開始します。--namespaceパラメーターにはGameネームスペースを使用します。

  2. psqlまたは他のPostgreSQLクライアントでデータベースに接続します。

  3. 拡張機能をインストールします。

    CREATE EXTENSION IF NOT EXISTS pgcrypto;
  4. 拡張機能がインストールされていることを確認します。

    SELECT extname, extversion FROM pg_extension WHERE extname = 'pgcrypto';

ハイフンを含む拡張機能名

PostgreSQLでは、ハイフンを含む拡張機能名を二重引用符で囲む必要があります。

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

AccelByteサポートが必要な拡張機能

以下は自己インストールできません。

  • 信頼済み拡張機能ではない拡張機能、またはインストールにスーパーユーザー権限が必要な拡張機能(例: pg_stat_statements)
  • Trusted Language Extensions (TLE) — 現在、セルフサービスでのインストールはサポートされていません。詳細については、Amazon AuroraドキュメントのPostgreSQL用Trusted Language Extensionsの操作を参照してください。

信頼されていない拡張機能やTLEが必要な場合は、AccelByte開発者サポートにお問い合わせください。

サンプル

以下のサンプルExtend Appは、Extend SQL Databaseにデータを保存するExtend Service Extensionのギルドサービスです。

git clone https://github.com/AccelByte/extend-service-extension-with-sql-go.git

可観測性

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

  1. Databasesタブで、追加の**...**メニューボタンをクリックし、Database Dashboardを選択します。

    SQL Database Observability

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

    SQL Database Observability login

  3. ログインすると、ダッシュボードが表示されます。

    SQL Database Observability dashboard