Amazon GameLift Servers ホストされたゲームサーバーを他の AWS リソースに接続する - Amazon GameLift Servers

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon GameLift Servers ホストされたゲームサーバーを他の AWS リソースに接続する

Amazon GameLift Servers フリートにデプロイするゲームサーバービルドを作成する場合、ゲームビルド内のアプリケーションが、所有する他の AWS リソースと直接かつセキュアに通信できるようにしたい場合があります。Amazon GameLift Servers はゲームホスティングフリートを管理するため、Amazon GameLift Servers にこれらのリソースとサービスへの制限付きアクセスを許可する必要があります。

シナリオの例には次のようなものがあります。

  • Amazon CloudWatch エージェントを使用し、マネージド EC2 フリートおよび Anywhere フリートからメトリックス、ログ、トレースを収集します。

  • Amazon CloudWatch Logs にインスタンス ログデータを送信します。

  • データファイルを格納する Amazon Simple Storage Service (Amazon S3) バケットを取得します。

  • Amazon DynamoDB データベースや他のデータストレージサービスに保存されているゲームデータ (ゲームモードやインベントリなど) を動的に読み取りおよび書き込みします。

  • Amazon Simple Queue Service (Amazon SQS) を使用し、シグナルをインスタンスに直接送信します。

  • Amazon Elastic Compute Cloud (Amazon EC2) にデプロイされ、実行しているカスタムリソースにアクセスします。

Amazon GameLift Servers は、アクセスを確立するための方法として以下をサポートしています。

IAM ロールを使用して AWS リソースにアクセスする

IAM ロールを使用してリソースにアクセスできるユーザーを指定し、そのアクセスに制限を設定します。信頼できる関係者はロールを「引き受ける」ことで、リソースとのやりとりを認可する一時的なセキュリティ認証情報を取得できます。関係者がリソースに関連する API リクエストを行う場合は、認証情報を含める必要があります。

IAM ロールで制御されるアクセスを設定するには、以下のタスクを実行します。

IAM ロールを作成する

このステップでは、 AWS リソースへのアクセスを制御する一連のアクセス許可と、ロールのアクセス許可を使用するAmazon GameLift Servers権限を付与する信頼ポリシーを持つ IAM ロールを作成します。

IAM ロールのセットアップ方法については「Amazon GameLift Servers 用に IAM サービスロールをセットアップする」を参照してください。アクセス許可かポリシーを作成するときは、アプリケーションが連携する必要のある特定のサービス、リソース、アクションを選択します。ベストプラクティスとして、アクセス許可の範囲をできる限り制限してください。

ロールを作成した後、ロールの Amazon リソースネーム (ARN) をメモします。フリート作成時にはロール ARN が必要です。

認証情報を取得するようにアプリケーションを変更する

このステップでは、IAM ロールのセキュリティ認証情報を取得し、 AWS リソース を操作するときにそれらを使用するようにアプリケーションを設定します。以下の表を参照して、(1) アプリケーションのタイプ、(2) ゲームが Amazon GameLift Servers との通信に使用するサーバー SDK バージョンに基づいてアプリケーションを変更する方法を決定してください。

ゲームサーバーアプリケーション その他のアプリケーション

サーバー SDK バージョン 5.x の使用

ゲームサーバーコードからサーバー SDK メソッド GetFleetRoleCredentials() を呼び出します。

アプリケーションにフリートインスタンス上の共有ファイルから認証情報を取得するコードを追加します。

バージョン 4 以前のサーバー SDK の使用

ロール ARN AssumeRoleを使用して AWS Security Token Service (AWS STS) を呼び出します。

ロール ARN AssumeRoleを使用して AWS Security Token Service (AWS STS) を呼び出します。

サーバー SDK 5.x と統合されたゲームの場合、この図は、デプロイされたゲームビルドのアプリケーションが IAM ロールの認証情報を取得する方法を示しています。

ゲーム実行可能ファイルは GetFleetRoleCredentials() を呼び出します。他のファイルは、ローカルに保存された共有認証情報を使用します。

Amazon GameLift Servers サーバー SDK 5.x とすでに統合されているゲームサーバーコードで、GetFleetRoleCredentials (C++) (C#) (Unreal) (Go) を呼び出し、一時的な認証情報のセットを取得します。認証情報の有効期限が切れたら、GetFleetRoleCredentials をもう一度呼び出して認証情報を更新できます。

サーバー SDK 5.x を使用するゲームサーバービルドでデプロイされる非サーバーアプリケーションの場合は、共有ファイルに保存されている認証情報を取得して使用するコードを追加します。Amazon GameLift Servers は各フリートインスタンスごとに認証情報プロファイルを生成します。認証情報は、インスタンス上のすべてのアプリケーションで使用できます。Amazon GameLift Servers は、一時的な認証情報を継続的に更新します。

フリート作成時に共有の認証情報ファイルを生成するようにフリートを設定する必要があります。

共有の認証情報ファイルを使用する必要がある各アプリケーションで、次のようにファイルの場所とプロファイル名を指定します。

Windows:

[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "C:\\Credentials\\credentials"

Linux:

[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "/local/credentials/credentials"

例: Amazon GameLift Servers フリートインスタンスのメトリクスを収集するように CloudWatch エージェントをセットアップする

Amazon CloudWatch エージェントを使用して Amazon GameLift Servers フリートからメトリクス、ログ、トレースを収集する場合は、このメソッドを使用して、エージェントがアカウントにデータを送信することを許可します。このシナリオでは、以下のステップを行います。

  1. CloudWatch エージェント config.json ファイルを取得または書き込みます。

  2. 前述のように、エージェント用の common-config.toml ファイルを更新して、認証情報ファイル名とプロファイル名を特定します。

  3. ゲームサーバーのビルドインストールスクリプトを設定して、CloudWatch エージェントをインストールして開始します。

アプリケーションにコードを追加して IAM ロールを引き受け、 AWS リソースとやり取りするための認証情報を取得します。サーバー SDK 4 以前の Amazon GameLift Servers フリートインスタンスで実行されるすべてのアプリケーションで IAM ロールを引き受けることができます。

アプリケーションコードでは、 AWS リソースにアクセスする前に、アプリケーションは AWS Security Token Service (AWS STS) AssumeRole API オペレーションを呼び出し、ロール ARN を指定する必要があります。このオペレーションは、アプリケーションが AWS リソースにアクセスすることを許可する一時的な認証情報のセットを返します。詳細については、IAM ユーザーガイドの「 AWS リソースでの一時的な認証情報の使用」を参照してください。

IAM ロールをフリートに関連付ける。

IAM ロールを作成し、ゲームサーバービルドのアプリケーションを更新してアクセス認証情報を取得して使用したら、フリートをデプロイできます。新しいフリートを設定する場合は、以下のパラメータを設定します。

  • InstanceRoleArn – このパラメータを IAM ロールの ARN に設定します。

  • InstanceRoleCredentialsProvider – Amazon GameLift Servers に各フリートインスタンスの共有の認証情報ファイルを生成するように求めるには、このパラメータを SHARED_CREDENTIAL_FILE に設定します。

これらの値は、フリートを作成するときに設定する必要があります。これらは後で更新できません。

VPC ピアリングを使用して AWS リソースにアクセスする

Amazon Virtual Private Cloud (Amazon VPC) ピアリングを使用して、Amazon GameLift Serversインスタンスで実行されているアプリケーションと別の AWS リソースの間で通信できます。VPC は、 を通じて管理される一連のリソースを含む、ユーザーが定義する仮想プライベートネットワークです AWS アカウント。Amazon GameLift Servers フリートごとに専用の VPC があります。VPC ピアリングを使用すると、フリートと他の AWS リソースの VPC 間の直接ネットワーク接続を確立できます。

Amazon GameLift Servers は、ゲームサーバー用の VPC ピアリング接続を設定するプロセスを合理化します。ピアリングリクエストを処理し、ルートテーブルを更新し、必要に応じて接続を設定します。ゲームサーバーの VPC ピア接続を設定する方法の手順については、「Amazon GameLift Servers に対する VPC ピアリングのセットアップ」を参照してください。