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

Upload a Dedicated Server Build

Last updated on November 6, 2023
note

Armada はまだ AGS Starter ティアではご利用いただけません。まもなく公開します。

概要

Armada は、リージョンごとに専用サーバーを自動的に分配するように設定できます。これらの専用サーバーを実行してゲームセッションを提供します。まず、専用サーバービルドを Armada にアップロードして、Armada がこれらの専用サーバービルドをイメージにコンテナ化できるようにします。これは専用サーバーをホストするリージョナル仮想マシンに転送および複製するためです。

目標

このガイドを読むと、次のことを理解できます。

  • 専用サーバーアップローダーを使用するための正しいアクセス権限を設定する方法
  • 専用サーバーアップローダーをダウンロードする方法
  • アップロードコマンドを生成する方法
  • アップローダーのオプション (--artifact、--debug-enabled、--no_symbol など)
  • アップローダーの問題をトラブルシューティングする方法

前提条件

このガイドを読む前に、次のことを完了する必要があります。

  • 次のアクセス権限で、専用サーバー用の IAM クライアントを設定します。このガイドに従って、IAM クライアントを設定できます。

    権限の名前アクション
    NAMESPACE:{namespace}:DSM:CONFIG読み取り
    NAMESPACE:{namespace}:DSUS:IMAGE作成、読み取り
    NAMESPACE:{namespace}:DSM:SERVER作成、更新
    NAMESPACE:{namespace}:DSUS:CONFIG作成

    :::note Best practice 専用サーバーのアップロード専用の API クライアントを作成します。 :::

  • ゲームの管理者ポータルと名前空間へのアクセス権を用意します。

  • Linux 上に構築された専用のサーバー実行ファイルを用意します。

  • 専用サーバー実行ファイルを任意のサポートファイルと一緒にフォルダ内に配置します。

  • 専用サーバーを x84 または x64 のいずれかで構築します。ARM はサポートされていません。

アップロードプロセスとビルドプロセス

Armada は、アップロードとビルドのプロセスを容易にするために、多数の AWS サービスを使用します。

  1. 専用サーバーアップローダーは S3 sync コマンドを使用して、ローカルの専用サーバーアップローダーフォルダを、環境に割り当てられた S3 バケット内のディレクトリと同期します。同期を行ったときに S3 ディレクトリが既に存在する場合、sync コマンドはプロセスを高速化するために変更のみをアップロードします。
  2. 同期が完了すると、専用サーバーアップローダーサービスは専用サーバービルダープロセスを開始し、専用サーバーをコンテナ化されたイメージにビルドします。
  3. ビルドプロセスが完了すると、完成したイメージは一元化された弾性のあるコンテナレジストリに保存され、専用サーバーをスピンアップするために仮想マシンによってダウンロードが可能になります。

専用サーバーアップローダーの使用

最初のステップは、ユーティリティをダウンロードすることです。

専用サーバーアップローダーをダウンロードするには

専用サーバーアップローダーの最新バージョンは、次の手順で管理者ポータルから直接ダウンロードできます。

  1. サイドメニューバーの[Dedicated Server Management (専用サーバー管理)]にある[Configuration (設定)]ボタンをクリックします。

    Some Image

  2. コンテンツページを下にスクロールすると、画面の右側に[Upload Instruction (アップロード手順)]ボタンがあります。

    Some Image

  3. Upload Instruction (アップロード手順)]ボタンをクリックします。

  4. Windows または Linux プラットフォーム用の専用サーバーアップローダーをダウンロードする選択肢が提示されます。ダウンロードボタンの下にあるアップローダーのバージョン番号に注意してください。

    Some Image

注記

ASG 環境の更新ごとに最新の専用サーバーアップローダーをダウンロードします。

アップローダーの実行ファイルは、必ずアップロードする専用サーバーフォルダの横に配置します。

アップローダーをダウンロードしたら、[Next (次へ)]をクリックして、専用サーバーのアップロードに使用するコマンドを生成します。

アップロードコマンドの生成

こちらは[Generate Command (コマンドを生成)]フォームです。フィールドに適切な情報を入力します。

Some Image

  • Version (バージョン)]:バージョンは、名前空間にアップロードされた他の専用サーバーすべての中で一意である必要があります。
  • Command (コマンド)]:専用サーバーを実行する実行可能コマンドを指定します。
  • Local Path (ローカルパス)]:アップロードするフォルダを指定します。アップローダー実行ファイルを保存する場所の相対パス、またはフォルダへの絶対パスのいずれかを使用します。
  • Artifact Directory (アーティファクトディレクトリ)]:アーティファクトファイルを保存する場所を指定する任意のパラメータです。これは、専用サーバーフォルダのルートフォルダから始まるパスです。
    • アーティファクトディレクトリに保存されているファイルは、専用サーバーのライフサイクルが終了した後、管理者ポータルから取得できます。
  • S3 Directory (S3 ディレクトリ)]:専用の S3 バケット内に専用サーバーファイルを保存するために使用されるフォルダです。
  • Deployment (デプロイメント)]:この新しくアップロードされた専用サーバーのバージョンでデプロイメントを直接更新できるようにする任意のパラメータです。
  • Add persistent flag (永続フラグを追加)]:サーバーの自動クリーンアッププロセスで専用サーバーを維持する場合は、このオプションをオンにします。
    • デプロイメントで使用されている、または永続的としてマークされているサーバーは削除されません。
  • Enable Debugging (デバッグを有効化)]:専用サーバーイメージを実行するコンテナ内にデバッグ用のサポートライブラリをインストールする場合は、このオプションをオンにします。これらのライブラリには、以下のものが含まれています。
      - libc-dev
    - libc++-dev
    - libc++abi-dev
    - uuid-dev
    - gdb
Best practice

開発ビルドでのみデバッグを有効にします。追加のライブラリは専用サーバーのサイズを拡大するため、読み込みに時間がかかります。

  • Upload debug symbol (デバッグシンボルをアップロード)]:コンパイラによって生成されたデバッグシンボルをアップロードする場合は、このオプションをオンにして、Armada がホストする専用サーバーのスタックトレースを読み取れるようにします。
Best practice

開発ビルドでのみデバッグシンボルのアップロードを有効にします。シンボルはサイズが非常に大きく、専用サーバーのパフォーマンスに影響を与えます。

  • Show upload progress (アップロードの進行状況を表示)]:アップロードの進行状況を確認するには、このオプションをオンにします。

パラメータの入力が完了したら、[Next (次へ)]ボタンをクリックしてコマンドを取得します。次のページで、コマンドの横にある[Copy (コピー)]ボタンをクリックして、コマンドをクリップボードにコピーできます。

Some Image

専用サーバーアップローダーを直接使用する

AccelByte 管理者ポータルから専用サーバーアップローダーを既にダウンロードしている場合は、管理者ポータルのコマンド生成機能を使用せずに独自のアップロードコマンドを構築できます。一般的なベアボーンコマンドは次のようになります。

```cs
> darwin-amd64 syncfolder -n <namespace> -H <base_url> -c <command> -p <upuload_folder_path> -v <version_string>, -d <s3_bucket_directory>, -i <client_id> -s <client_secret_if_confidential> -b <s3_bucket_name>
```

コマンドを構築するための詳しいヘルプは、専用サーバーアップローダーで直接利用できます。ヘルプメニューにアクセスするには、help コマンドを使用します。次のオプションが表示されます。

Some Image

コマンドフラグ

-b, --bucket

専用サーバーがアップロードされる S3 バケット名です。S3 バケット名が何であるかについては、DPM にご相談ください。または、管理者ポータルのアップロードコマンドジェネレーターを使用して値を事前入力します。

-c, --command

専用サーバーを実行するための実行可能コマンドを指定します。

-H, --hostname

アップロード先の環境のホスト名を指定します。ホスト名は環境のベース URL です。

-i, --id

アップローダーの認証に使用する IAM クライアント ID を指定します。

-n, --namespace

専用サーバーがアップロードされる名前空間を指定します。

-p, --path

専用サーバーがアップロードされる場所のローカルパスです。

-d, --s3dirname

S3 バケット内に専用サーバーファイルを保存するフォルダを指定します。

-s, --secret

使用中の IAM クライアントが機密クライアントである場合に認証するため、アップローダーに使用する IAM クライアントの秘密を指定します。それ以外の場合は、このオプションはスキップできます。

-v, --version

バージョンを指定します。バージョンは、名前空間にアップロードされた他の専用サーバーすべての中で一意である必要があります。

-a, --artifact (任意)

専用サーバーで使用されるアーティファクトパスです。アーティファクトパスにはプレフィックス /usr/src/ds-server/ が付きます。

--chunk-size (任意)

チャンクサイズを定義します (単位:MB)。アップロード中のエラーを減らすために、遅いネットワークでは小さなチャンクサイズを使用することを勧めします。

--debug-enabled (任意)

専用サーバーイメージを実行するコンテナ内にデバッグ用のサポートライブラリをインストールする場合は、このオプションを使用します。これらのライブラリには、以下が含まれています。

  • libc-dev
  • libc++-dev
  • libc++abi-dev
  • uuid-dev
  • gdb

デフォルト値は false です。--debug-enabled を使用して、デバッグライブラリを含めます。

--default-image (任意)

これにより、アップロードされたサーバーがデフォルトイメージとして指定され、Armada のデプロイメントで専用サーバーをスピンアップするために使用されます。

--no-symbol (任意)

専用サーバーと一緒にデバッグシンボルをアップロードする場合に、指定します。デフォルト値は true です (したがって、シンボルはアップロードされません)。シンボルをアップロードする場合は、--no-symbol=false を使用します。

--patch (任意)

パッチオプションを使用すると、既存のイメージバージョンを使用して専用サーバーイメージをアップロードできます。これにより、デプロイメントまたはマッチメイキングルールセットを変更する必要がなくなります。ゼロダウンタイムイメージアップグレードを使用する場合は、このオプションを使用します。

注記

新しいバージョンのサーバーは、新しく作成された専用サーバーでのみ使用できます。既存の専用サーバーはアップグレードされません。

--persistent (任意)

専用サーバーを永続的なものとして扱います。永続サーバーは、自動サーバークリーンアップデーモンによって削除されません。

--show-progress (任意)

アップロード中にアップローダーが進捗状況のログを発行する場合に指定します。デフォルト値は false です。進捗状況のログを表示するには、--show-progress を使用します。

専用サーバーのアップロード

最後に、ローカルコンピュータで新しいターミナルを開き、専用サーバーアップローダーを保存する場所に移動します。

Some Image

次に、コマンドをターミナルに貼り付けます。サーバーのアップロード用に作成した IAM クライアントからの情報を {your_client_id}{your_client_secret} に置き換え、Enter キーを押します。アップロードはすぐに開始されます。

注記

公開 IAM クライアントを使用している場合は、コマンドから -s {your_client_secret} を削除できます。

トラブルシューティング

このセクションには、サービス使用時に発生しうる一般的なエラーや問題、およびそれらを解決する方法についての推奨事項を記載しています。

Error: “errorCode”: 401, “errorMessage”:{ “error”: “invalid_client”, “error_description”: “unable to generate token: unable to handle request”}

これは、専用サーバーアップローダーが JWT トークンを受信するために ASG IAM サービスによって認証を取得できないためです。アップロードコマンドの client_secretclient_id が正しいか確認します。

Error: “errorCode”: 2013, “errorMessage”: “access forbidden:Insufficient permissions”

これは、IAM クライアントに十分なアクセス権限がないことが原因です。次のことを確認してください。

  • 正しい IAM クライアント認証情報を使用している。
  • アップロードに使用する IAM クライアントの名前空間が、アップロードコマンドの -n または --namespace パラメータで指定した名前空間である。
  • 使用中の IAM クライアントに、次の権限がある。
権限の名前アクション
NAMESPACE:{namespace}:DSM:CONFIG読み取り
NAMESPACE:{namespace}:DSUS:IMAGE作成、読み取り
NAMESPACE:{namespace}:DSM:SERVER作成、更新
NAMESPACE:{namespace}:DSUS:CONFIG作成

Error: “docker file pushed to registry but unable to update DSM config.Please contact the Administrator”

これは、古い専用サーバーアップローダーを使用していることが原因です。管理者ポータルから専用サーバーアップローダーの最新バージョンをダウンロードしてください。

Error: “unable to create image patch, invalid request: patch version is empty”

これは、古い専用サーバーアップローダーを使用していることが原因です。管理者ポータルから専用サーバーアップローダーの最新バージョンをダウンロードしてください。

Error: “conflict image version”

これは、アップロードされた別のサーバーイメージが既に使用しているイメージバージョンを使用していることが原因です。同じバージョンを使用し続ける場合は、コマンドに --patch フラグを追加します。それ以外の場合は、一意のイメージバージョンを使用して新しいイメージエントリーを作成します。

サーバーが動作するために、インストールする必要のある依存ライブラリがいくつかある場合

デベロッパーパートナーマネージャーにリクエストを送信してください。