Amazon GameLift マネージドEC2フリートを作成する - Amazon GameLift

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

Amazon GameLift マネージドEC2フリートを作成する

このトピックでは、Amazon GameLift マネージドEC2フリートを作成する方法について説明します。マネージドフリートは、マルチプレイヤーゲームホスティング用に最適化された Amazon Elastic Compute Cloud (Amazon EC2) コンピューティングインスタンスを使用します。Amazon でサポートされている AWS リージョン およびローカルゾーンにコンピューティングをグローバルにデプロイするマネージドフリートを作成できます GameLift。

新しいマネージドEC2フリートを作成すると、フリート作成プロセスがすぐに開始されます。マネージドフリートは、Amazon がゲームサーバービルド GameLift を準備し、ビルドをインストールしてEC2インスタンスをデプロイし、各インスタンスでゲームサーバーを起動するにつれて、いくつかのフェーズを通過します。フリートのステータスは、コンソールまたは uring AWS Command Line Interface () を使用してモニタリングできますAWS CLI。ステータスが に達すると、フリートはゲームセッションをホストする準備が整いますACTIVE。マネージドフリートの作成の詳細については、次のトピックを参照してください。

マネージドEC2フリートを作成するには

Amazon GameLift コンソールまたは AWS Command Line Interface (AWS CLI) を使用して、マネージドEC2フリートを作成します。

Console

Amazon GameLift コンソール で、ナビゲーションペインを使用してフリートページを開きます。フリートの作成を選択して、フリート作成ワークフローを開始します。

ステップ 1 コンピューティングタイプを選択する

Managed EC2オプションを選択し、Next を選択します。

ステップ 2 フリートの詳細を定義する

このステップでは、フリート全体の設定をいくつか指定します。

最小限のフリート設定の場合:
  • フリート名を指定します。

  • バイナリタイプを選択し、アップロードされたビルドまたはスクリプトを指定します。

  • 追加の詳細とタグについては、セクションをスキップしてください。

  1. フリートの詳細セクションに入力します。

    1. フリート を入力します。フリートのリストを表示するときにフリートタイプを識別しやすいフリート命名パターンを使用することをお勧めします。

    2. フリートの簡単な説明を入力します。

    3. バイナリタイプ では、ビルド を選択してカスタムゲームサーバービルドをデプロイしていることを示します。リアルタイムサーバーをこのフリートにデプロイしている場合は、 または スクリプトを選択します。アップロードされたビルドまたはスクリプトをドロップダウンリストから選択します。

  2. (オプション) 必要に応じて追加の詳細を設定します。

    1. ゲームサーバーの実行可能ファイルがアカウントの他の AWS リソースにアクセスする必要がある場合は、必要なアクセス許可を持つIAMインスタンスロールを指定します。他のサーバー側のアプリケーション ( CloudWatch エージェントなど) を承認する方法などの詳細については、「」を参照してくださいフリートの他の AWS リソースと通信する。この設定は、フリートの作成後に変更することはできません。

      ロールを使用するフリートを作成する前に、ロールを作成する必要があります。さらに、インスタンスロールを使用してフリートを作成するには、 AWS ユーザーに IAM PassRole アクセス許可が必要です (「」を参照Amazon GameLift の IAM アクセス許可の例)。

    2. ゲームの認証と暗号化を設定するにはTLS、証明書の生成オプションをオンにします。ゲームクライアントは、この証明書を使用して、すべてのクライアント/サーバー通信を接続して暗号化するときにゲームサーバーを認証します。TLS対応フリート内のインスタンスごとに、Amazon は証明書を使用して新しいDNSエントリ GameLift も作成します。この設定は、フリートの作成後に変更することはできません。

    3. このフリートのメトリクスデータとその他のメトリクスデータを組み合わせる場合は、メトリクスグループ名を指定します。結合するすべてのフリートに同じメトリクスグループ名を使用します。メトリクスグループのメトリクスを表示して、集計データを表示します。

  3. (オプション) フリートリソースにタグを追加します。タグはそれぞれ、1 つのキーとオプションの 1 つの値で設定されており、どちらもお客様側が定義します。目的、所有者、環境など、便利な方法で分類する AWS リソースにタグを割り当てます。追加するタグごとに [タグを追加] を選択します。

  4. へ を選択してワークフローを続行します。

ステップ 3 インスタンスの詳細を定義する

このステップでは、使用するホスティングリソースのタイプと、それらをデプロイする場所を指定します。複数の場所を選択すると、ゲームサーバーをより広い地理的場所にデプロイできるため、プレイヤーに近づき、レイテンシーを最小限に抑えることができます。すべてのEC2インスタンスタイプがすべての場所で利用できるわけではありません。

最小限のフリート設定の場合:
  • リモートロケーションを追加しないでください。

  • フリートタイプを「オンデマンド」に設定します。スポットフリートには追加のセットアップ作業が必要です。

  • インスタンスタイプを「c5.large」に設定します。この一般的に使用されるインスタンスタイプは、すべての で使用できます AWS リージョン。

  1. インスタンスデプロイ で、フリートの場所とタイプを指定します。

    1. フリートインスタンスをデプロイする追加のロケーションを 1 つ以上選択します。これらのリモートロケーションは、このフリート AWS リージョン を作成するフリートのホームロケーション (事前選択済み) に追加されます。Amazon が GameLift サポートするすべての AWS リージョン およびローカルゾーンからリモートロケーションを選択できます。

      デフォルトで有効になっていない の使用方法など、サポートされているロケーションの詳細については、 マネージドホスティングAmazon GameLift のサービスロケーションの AWS リージョン 「」を参照してください。また、フリートごとのロケーションの Amazon GameLift クォータも確認します。

    2. このフリートにオンデマンドインスタンスまたはスポットインスタンスのいずれかを使用するように選択します。フリートタイプの詳細については、「オンデマンドインスタンスとスポットインスタンスの比較」を参照してください。

  2. ニーズを満たし、選択したすべてのロケーションで使用できる Amazon EC2 インスタンス設定を選択します。このリストは、現在のロケーションとフリートタイプの選択に基づいてフィルタリングされます。インスタンスタイプファミリーやアーキテクチャなどの他の要因によってさらにフィルタリングできます。フリートを作成した後に、そのインスタンスタイプを変更することはできません。

    一部のロケーションでは、インスタンスタイプのオプションが制限されています。希望するインスタンスタイプがすべてのロケーションで利用できない場合は、ロケーションの可用性値を選択して詳細を表示します。すべてのロケーションに対応するために、異なるインスタンスタイプで個別のフリートを作成する必要がある場合があります。

    インスタンスタイプの選択の詳細については、「インスタンスのタイプ」を参照してください。Amazon EC2 Arm アーキテクチャの詳細については、AWS 「Graviton Processor」と「Amazon EC2インスタンスタイプ」を参照してください。Amazon でサポートされているインスタンスタイプの完全なリストについては GameLift、 EC2InstanceType () のAPIリファレンスを参照してくださいCreateFleet()

    注記

    Graviton Arm インスタンスには、Linux OS 上の Amazon GameLift サーバービルドが必要です。C++ SDK および C# にはサーバー 5.1.1 以降が必要です。Go には Server SDK 5.0 以降が必要です。これらのインスタンスは、Amazon Linux 2023 (AL2023) または Amazon Linux 2 () でのモノラルインストール out-of-the-box をサポートしていませんAL2。

  3. へ を選択してワークフローを続行します。

ステップ 4 ランタイムを設定する

このステップでは、フリート内の各インスタンスでゲームサーバーソフトウェアを実行する方法について説明します。インスタンスで実行する実行可能ファイルごとに個別のサーバープロセス行項目を定義し、同時に実行する各サーバープロセスの数を決定します。各インスタンスでポートを開き、プレイヤーがゲームサーバーに直接接続できるようにします。これらのフリート設定はいつでも更新できます。

最小限のフリート設定の場合:
  • ゲームサーバー実行可能ファイルの単一のサーバープロセス行項目を定義します。ゲームサーバーで他のプロセスを実行する必要がある場合は、これらの各プロセスの定義も作成します。

  • 各明細項目には、デフォルトの同時処理数 (1) を使用します。

  • ゲームセッションのアクティベーション設定をスキップします。

  • 1 つのポート番号を指定します。

  • ゲームセッションのリソース設定をスキップします。

  1. フリート内の各インスタンスでサーバープロセスを実行する GameLift 方法を Amazon に指示するランタイム設定を作成します。フリートのランタイム設定は、デプロイ後いつでも変更できます。

    1. ビルドで実行可能ファイルへの起動パスを入力します。Windows インスタンスでは、ゲームサーバーの実行可能ファイルがパス に構築されますC:\game。Linux インスタンスでは、ゲームサーバーは /local/game に構築されます。例: C:\game\MyGame\server.exe/local/game/MyGame/server.exe、または MyRealtimeLaunchScript.js

    2. オプションの起動パラメータを入力して、ゲーム実行可能ファイルに渡します。例えば、+sv_port 33435 +start_lobby などです。

    3. 各インスタンスで実行する同時プロセスの数を指定します。ゲームサーバー実行可能ファイルの場合、各プロセスは 1 つのゲームセッションをホストできるため、同時プロセスによってインスタンスが同時にホストできるゲームセッションの数が決まります。

      インスタンスごとのサーバープロセスの Amazon GameLift クォータを確認します。これらのクォータは、すべての設定の同時プロセスの合計に適用されます。フリートを超過するように設定した場合、フリートはアクティブ化できません。

  2. ゲームセッションのアクティベーションのデフォルトを使用するか、ゲームに合わせてカスタマイズします。ランタイム設定で、インスタンスごとに複数のゲームサーバープロセスを同時に実行する必要がある場合、これらの設定により、新しいゲームセッションが起動する速度が決まります。

    1. 最大同時ゲームセッションアクティベーションを設定して、新しいゲームセッションを準備しているインスタンスのゲームサーバーの数を制限します。この設定は、複数の新しいゲームセッションを起動する際にリソースが大量に消費され、実行中の他のゲームセッションのパフォーマンスに影響を与える可能性がある場合に便利です。

    2. 新しいゲームセッションがアクティベーションを完了し、プレイヤーをホストする準備が整うまでにかかる最大時間を反映するように、新しいアクティベーションタイムアウトを設定します。この値を超えると、Amazon GameLift はゲームセッションのアクティベーションを終了します。

  3. EC2 ポート設定を開き、インバウンドトラフィックがフリート上のサーバープロセスにアクセスできるようにします。これらの設定はフリートの作成には必要ありませんが、プレイヤーがフリートのゲームセッションに接続する前に設定する必要があります。

    ポート設定ごとに、ゲームクライアントとゲームサーバー間の通信に使用するデータ転送プロトコルのタイプを選択します。ポート範囲 (形式 nnnnn[-nnnnn]) と IP アドレス範囲をCIDR表記 (誰にでもアクセス0.0.0.0/0を許可するなど) で指定します。

    連続しない範囲を複数設定する必要がある場合は、複数のポート設定を作成します。

  4. オプションのゲームセッションリソース設定 を指定します。これらの設定は、デプロイ後にいつでも更新できます。

    1. フリート内のすべてのインスタンスでゲームスケーリング保護ポリシーをオンまたはオフにします。スケールダウンイベント中、アクティブなゲームセッションをホストしている場合、Amazon は保護されたフリートインスタンスを終了 GameLift しません。

    2. 1 人のプレイヤーが指定した時間内に作成できるゲームセッションの数を制限する場合は、リソース作成の上限を設定します。

  5. へ を選択してワークフローを続行します。

ステップ 5 確認して作成する

フリートを作成する前に、設定を確認してください。一部の設定は後で更新できますが (「」を参照Amazon GameLift フリート設定を更新する)、フリートの作成後に次の設定を変更することはできません。

  • コンピューティングタイプ: マネージドEC2フリートを Anywhere フリートに変換することはできません。

  • ビルドまたはスクリプト: ゲームサーバーのビルドまたはスクリプトに更新をデプロイするには、新しいフリートを作成する必要があります。

  • インスタンスロールやTLS証明書の生成などの追加オプション。

  • フリートタイプ (スポットまたはオンデマンド) やインスタンスタイプなど、EC2インスタンスの詳細。

新しいフリートをデプロイする準備ができたら、「 の作成」を選択します。Amazon は GameLift 直ちにフリートアクティベーションプロセスを開始し、一意の ID を割り当ててフリートをNEWステータスにします。フリートページからフリートの進行状況を追跡します。フリートの詳細ページを表示し、イベントタブに移動します。

フリートACTIVEのステータスに達したら、フリートのホスティング容量を調整できます。Amazon は、 GameLift 最初に各フリートロケーションに 1 つのインスタンスを持つフリートをデプロイします。また、各ロケーションにインスタンスを追加して容量を調整します。詳細については、「Amazon によるゲームホスティング容量のスケーリング GameLift」を参照してください。

AWS CLI

create-fleet コマンドを使用して、コンピューティングタイプのフリートを作成しますEC2。Amazon は、現在のデフォルトにフリートリソース GameLift を作成します AWS リージョン (または、--region タグを追加して別の を指定することもできます AWS リージョン)。

最小マネージドフリートを作成する

次のリクエスト例では、ゲームクライアントが接続できる実行中のゲームサーバーでフリートをデプロイするために必要な最小限の設定で新しいフリートを作成します。新しいフリートには次の特徴があります。

  • ゲームサーバービルドを指定します。これは Amazon GameLift にアップロードされ、 READYステータスです。

  • は、選択したゲームビルドに一致するオペレーティングシステムで c5.large オンデマンドインスタンスを使用します。

  • フリートのホームを に設定 AWS リージョン us-west-2し、インスタンスをそのリージョンにのみデプロイします。

  • ランタイム設定に基づいて、フリート内の各コンピューティングは 1 つのゲームサーバープロセスを実行します。つまり、各コンピューティングは一度に 1 つのゲームセッションのみをホストできます。ゲームセッションのアクティベーションタイムアウトはデフォルト値の 300 秒に設定され、同時アクティベーションの数に制限はありません。

  • プレイヤーは、 の単一のポート設定を使用してゲームサーバーに接続できます33435

  • その他の機能はすべてオフにするか、デフォルト設定を使用します。

aws gamelift create-fleet \ --name MinimalFleet123 \ --description "A basic test fleet" \ --region us-west-2 \ --ec2-instance-type c5.large \ --fleet-type ON_DEMAND \ --build-id build-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ --runtime-configuration "ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe, ConcurrentExecutions=10}]" \ --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP"

完全に設定されたマネージドフリートを作成する

次のリクエスト例では、すべてのオプション機能の設定を使用して本番稼働用フリートを作成します。新しいフリートには次の特徴があります。

  • ゲームサーバービルドを指定します。これは Amazon GameLift にアップロードされ、 READYステータスです。

  • 選択したゲームビルドに一致するオペレーティングシステムで c5.large オンデマンドインスタンスを使用します。

  • フリートのホームを に設定 AWS リージョン us-west-2し、インスタンスをホームリージョンと 1 つのリモートロケーション にデプロイしますsa-east-1

  • ランタイム設定に基づきます。

    • フリート内の各コンピューティングは、同じ起動パラメータで 10 のゲームサーバープロセスを実行します。つまり、各コンピューティングは最大 10 のゲームセッションを同時にホストできます。

    • 各コンピューティングでは、同時にアクティブ化できるゲームセッションは 2 つだけです。ゲームセッションのアクティブ化は、300 秒 (5 分) 以内にプレイヤーをホストする準備ができているか、終了する必要があります。

  • プレイヤーは、次の範囲のポートを使用してゲームサーバーに接続できます33435 to 33535

  • ゲームクライアントとサーバー間の暗号化された通信用のTLS証明書を生成します。

  • フリート内のすべてのゲームセッションでは、ゲームセッション保護が有効になっています。

  • 個々のプレイヤーは、15 分以内に 3 つの新しいゲームセッションを作成することに限定されます。

  • このフリートのメトリクスは、メトリクスグループ に含まれます。メトリクスグループ はAMERfleets、北米、中米、南米のフリートグループのメトリクスを (この例の場合) 集計します。

aws gamelift create-fleet \ --name ProdFleet123 \ --description "A fully configured prod fleet" \ --ec2-instance-type c5.large \ --region us-west-2 \ --locations "Location=sa-east-1" \ --fleet-type ON_DEMAND \ --build-id build-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ --certificate-configuration "CertificateType=GENERATED" \ --runtime-configuration "GameSessionActivationTimeoutSeconds=300, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe, Parameters=+sv_port 33435 +start_lobby, ConcurrentExecutions=10}]" \ --new-game-session-protection-policy "FullProtection" \ --resource-creation-limit-policy "NewGameSessionsPerCreator=3, PolicyPeriodInMinutes=15" \ --ec2-inbound-permissions "FromPort=33435,ToPort=33535,IpRange=0.0.0.0/0,Protocol=UDP" \ --metric-groups "AMERfleets"

create-fleet リクエストが成功すると、Amazon はリクエストした設定と新しいフリート ID を含む一連のフリート属性 GameLift を返します。 GameLift 次に、Amazon はフリートアクティベーションプロセスを開始し、フリートステータスとロケーションステータスを新しい に設定します。フリートのステータスを追跡し、次のCLIコマンドを使用して他のフリート情報を表示できます。

以下のコマンドを使用して、必要に応じてフリートの容量と他の設定を変更できます。