フリートの他の AWS リソースと通信する - Amazon GameLift

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

フリートの他の AWS リソースと通信する

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

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

  • 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 は、アクセスを確立するための方法として以下をサポートしています。

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

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

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

IAM ロールを作成する

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

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

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

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

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

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

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

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

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

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

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

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

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


                    Amazon GameLift インスタンスでは、ゲームサーバーアプリケーションが GetFleetRoleCredentials() を呼び出します。他のアプリケーションは、インスタンスに保存できる共有の認証情報ファイルを使用します。

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

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

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

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

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 フリートインスタンスのメトリクスを収集するように CloudWatch エージェントをセットアップする

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

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

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

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

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

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

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

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

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

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

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

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

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

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