extend-nosql-database
注釈:本資料はAI技術を用いて翻訳されています。
概要
Extend NoSQL Databaseを使用すると、Extend AppはデータをAmazon DocumentDB(MongoDB互換)データベースに保存できます。これは、独自のデータベースインフラストラクチャの構築・維持にともなう複雑さを解消する、マネージド型でスケーラブルなデータベースソリューションです。これにより、開発者は革新的な機能の構築に集中できます。
Extend NoSQL Databaseは、あらゆる種類のExtend Appにアタッチできます。これにより、永続的なデータストレージ機能を必要とする幅広いユースケースに対応できます。
Extend NoSQLクラスターのプロビジョニング
Extend NoSQLクラスターは、PublisherまたはStudioネームスペースレベルでプロビジョニングできます。
-
Development Utilitiesメニューに移動し、Extend Database Integrationをクリックします。ニーズに応じてExtend NoSQL Databaseプロファイルを選択し、Create NoSQL Databaseボタンをクリックします。

-
クラスターがプロビジョニングされるまで数分待ちます。

-
クラスターがプロビジョニングされると、ステータスが
AVAILABLEに変わります。
-
Extend AppをExtend NoSQL Databaseと統合するには、Setting up Extend NoSQL Database for your Extend Appセクションに進みます。
Extend NoSQLクラスターのデータベースプロファイルの更新
クラスターサイズを変更する必要がある場合は、データベースプロファイルを更新できます。この操作は、PublisherまたはStudioネームスペースレベルで実行できます。
-
Extend Database Integrationメニューで、Editボタンをクリックします。

-
ニーズに応じてExtend NoSQL Databaseプロファイルを選択し、Updateボタンをクリックします。

-
確認ダイアログで
UPDATEと入力して更新操作を確認し、Updateボタンをクリックします。
-
クラスターが更新されるまで待ちます。

-
クラスターが更新されると、ステータスは再び
AVAILABLEに戻ります。
Extend NoSQLクラスターの削除
不要になったクラスターは削除できます。削除は、ステータスがAVAILABLEの場合にのみ実行できます。この操作は、PublisherまたはStudioネームスペースレベルで実行できます。
-
Extend Database Integrationメニューで、Delete Clusterボタンをクリックします。

-
確認ダイアログで
DELETEと入力して削除を確認し、Delete Instanceボタンをクリックします。
-
クラスターが削除されると、ページはExtend Database Integrationページに戻ります。
Extend AppでのExtend NoSQL Databaseの設定
この操作はGameネームスペースレベルで実行でき、NoSQLクラスターのステータスがAVAILABLEの場合にのみデータベースを作成できます。
-
Extend Appの詳細画面で、NoSQL Databaseタブに切り替え、Add NoSQL Databaseボタンをクリックします。

-
データベース名とパスワードを入力し、Addボタンをクリックします。

-
Database Summaryページの情報を確認します。

データベースのホスト、名前、ユーザー名、パスワードは、それぞれ
DOCDB_HOST、DOCDB_DATABASE_NAME、DOCDB_USERNAME、DOCDB_PASSWORDとして、Extend Appのシークレットと変数に自動的に追加されます。
Extend AppとExtend NoSQL Databaseの接続
-
MongoDB v2ドライバーをExtend Appに追加します。
- Go
次の
go getコマンドを実行して、MongoDBドライバーの最新バージョンを取得します。go get go.mongodb.org/mongo-driver/v2/mongoその後、
go mod tidyコマンドを実行することを推奨します。go mod tidy -
MongoDB v2ドライバーを設定して、NoSQL Databaseに接続します。
DOCDB_HOST、DOCDB_USERNAME、DOCDB_PASSWORD、DOCDB_CA_CERT_FILE_PATH環境変数を使用して接続文字列を構築します。- Go
import (
...
"go.mongodb.org/mongo-driver/v2/mongo"
"go.mongodb.org/mongo-driver/v2/mongo/options"
...
)
...
docdbHost := os.Getenv("DOCDB_HOST")
docdbUsername := os.Getenv("DOCDB_USERNAME")
docdbPassword := os.Getenv("DOCDB_PASSWORD")
docdbCaCertFilePath := os.Getenv("DOCDB_CA_CERT_FILE_PATH")
connectionString := fmt.Sprintf("mongodb://%s:%s@%s/?tls=true&tlsCAFile=%s", docdbUsername, docdbPassword, docdbHost, docdbCaCertFilePath)
client, err := mongo.Connect(options.Client().
ApplyURI(connectionString).
SetRetryWrites(false).
SetMinPoolSize(5).
SetMaxPoolSize(30))
...importantAmazon DocumentDBとの互換性のため、
SetRetryWritesはfalseに設定する必要があります。importantクラスターではデフォルトでTLSが有効になっています。オプション
tlsはtrueに設定する必要があります。 TLS証明書は自動的に追加され、DOCDB_CA_CERT_FILE_PATH環境変数で公開されます。 -
MongoDBデータベースに接続し、それを使用してドキュメントの挿入、更新、検索、削除を行います。データベース名には
DOCDB_DATABASE_NAME環境変数を使用します。- Go
...
docdbDatabaseName := os.Getenv("DOCDB_DATABASE_NAME")
database := client.Database(docdbDatabaseName)
...ヒントドキュメントの挿入、更新、検索、削除の方法については、MongoDB Go Driverチュートリアルを参照してください。
Extend TCP TunnelingによるExtend NoSQL Databaseへのアクセス
Extend Helper CLIを介したExtend TCP Tunnelingを使用して、ローカル開発環境からExtend NoSQL Databaseに接続できます。この操作は、NoSQLクラスターのステータスがAVAILABLEの場合にのみ実行できます。
-
Extend Helper CLIが設定されていることを確認します。次に、それと共に使用するIAMクライアントに次の権限を追加します。
- AGS Private Cloudをご利用の場合:
ADMIN:NAMESPACE:{namespace}:EXTEND:TUNNEL [READ]
- AGS Public Cloudをご利用の場合:
- Extend > TCP Tunneling (Read)
- AGS Private Cloudをご利用の場合:
-
NoSQL DatabaseタブからResource Name情報をコピーします。

-
Extend Helper CLIを使用して、Extend NoSQL DatabaseへのExtend TCP Tunnelingを開始します。ステップ2の
Resource Name情報を--resource-nameオプションパラメータとして渡します。extend-helper-cli tunnel --resource-name <Resource Name> --namespace <namespace> --local-port <port>importantシステムクロックが同期していない場合、認証が失敗する可能性があります。コマンドを実行する前に、ローカル時刻が正確であることを確認してください。
ヒントNoSQL DatabaseタブのTunnel Command情報から完全なコマンドをコピーすることもできます。
-
https://truststore.pki.rds.amazonaws.com/global/global-bundle.pemからAWS DocumentDB TLS証明書をダウンロードしていることを確認してください(TLSが有効になっており、接続には証明書が必要です)。 -
MongoDBクライアント(MongoDB Compass、Studio 3T、mongoshなど)を使用して、ステップ3で指定したローカルポートを介してExtend NoSQL Databaseに接続します。データベースの設定時に記録したデータベース名、ユーザー名、パスワードを使用します。接続文字列は次のようになります。
mongodb://<username>:<password>@localhost:<port>/<database-name>?serverSelectionTimeoutMS=10000&tls=true&tlsCAFile=<path-to-certs-file>&tlsAllowInvalidHostnames=trueimportant接続文字列に
serverSelectionTimeoutMS=10000オプションを必ず含めてください。含めない場合、接続に問題が発生する可能性があります。それでも接続に問題がある場合は、10000より大きい値を試してください。オプション
tlsAllowInvalidHostnames=trueは、localhost経由で接続されたTLSを許可するために使用されます。
サンプル
以下のサンプルExtend Appは、Extend NoSQL Databaseにデータを保存するExtend Service Extensionのギルドサービスです。
- Go
git clone https://github.com/AccelByte/extend-service-extension-with-mongodb-go.git
オブザーバビリティ
Grafana の可観測性ダッシュボードを通じて、NoSQLクラスターのパフォーマンスを監視できます。このダッシュボードは、CPU使用率、レイテンシ、IOPS、データベース接続数などの主要なパフォーマンス指標を表示するパネルを提供し、ボトルネックの特定とアプリケーションのデータベース使用状況の最適化を可能にします。
-
NoSQL Databaseタブで、Database Dashboardボタンをクリックします。

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

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