AMS CLIを使用して専用サーバービルドをアップロードする
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Multiplayer Servers (AMS) は、専用サーバービルドの管理とデプロイを支援し、世界中のプレイヤーにゲームセッションを提供できるようにします。サーバーのフリートを作成する前に、専用サーバービルドをAMSアカウントにアップロードする必要があります。
この記事では、次の内容を説明します。
- AMSコマンドラインインターフェース (CLI) を使用して専用サーバーイメージをアップロードする方法
- アップロードコマンドの作成方法
前提条件
このガイドを開始する前に、次の準備が必要です。
-
専用サーバーをAGS SDKと統合済みであること。
-
AMS CLIをダウンロード済みであること。
-
次の権限を持つ、専用サーバーをアップロードするためのIAMクライアントを作成済みであること。
権限名 アクション AMS:UPLOAD作成、更新 専用サーバーのアップロード専用にAPIクライアントを作成することを推奨します。このIAMクライアントは、アップロード実行者の身元を確認するために使用されます。IAMクライアントの作成方法については、IAMクライアントの作成を参照してください。
AccelByte Public Cloudのお客様の場合、IAM Clients ページの Create New ボタンの下にある Create DS Uploader IAM Client をクリックすることで、専用サーバーのアップロードに必要なすべての権限を持つIAMクライアントを作成できます。専用サーバーをアップロードできるクライアントには、DS Uploader タグが付きます。
- 専用サーバーの実行ファイルと、それをサポートするすべてのファイルを1つのフォルダー内に格納済みであること。
- 専用サーバーイメージは、x86またはx64向けにビルドされている必要があります。ARMは現在サポートされていません。
- 専用サーバーイメージは、Linux向けにビルドされている必要があります。
アップロード時にファイルの権限が正しく設定されていることを確認してください。Linux用のAMS CLIは、イメージのアップロード時にファイル権限と read-、write-、execute- フラグを保持します。
Windows用のAMS CLIはこれらのUNIX権限を保持せず、コマンドラインで指定した executable のみに実行フラグが設定されます。そのため、CLIのWindows版を使用し、特定の権限が必要な追加ファイルがある場合、DSの実行時に permission denied エラーが発生することがあります。これを避けるには、DSを実行する前に権限を設定する起動スクリプトを作成し、それを executable フラグで指定してください。例:
#!/bin/sh
chmod +x ./bytewars # DSを実行可能にする
chmod +x ./bin/node # 依存関係を実行可能にする
./bytewars # DSを実行する
起動スクリプトが UTF-8 でエンコードされていることを確認してください。正しくエンコードされていない場合、スクリプトの実行が失敗し、DSが起動しない可能性があります。
テキストエディタでは通常、ファイルを保存する際にエンコーディングを指定できます。詳細については、Visual Studioのファイルエンコーディングの手順を参照してください。
ファイルのエンコーディングは file コマンドで確認できます。以下は、UTF-8で正しくエンコードされたファイルの例です。
file startup.sh
startup.sh: POSIX shell script, ASCII text executable
BOM付きUTF-8で誤ってエンコードされたファイルの例:
file startup.sh
test.sh: POSIX shell script, Unicode text, UTF-8 (with BOM) text executable
起動スクリプトに関するもう一つの注意点は、行末のシーケンスです。エンコーディングと同様に、多くのテキストエディタではファイルの行末シーケンスを指定できます。Windowsシステムで保存されたファイルは、Windows形式の行末(CRLF)がデフォルトになることがよくあります。ファイルはUnixがサポートする LF の行末シーケンスで保存されていることを確認することが重要です。
file コマンドを使用して、適切な形式かどうかを確認できます。無効な場合、次のような出力が表示されます。
file startup.sh
startup.sh: POSIX shell script, ASCII text executable, with CRLF line terminators
エンコーディングと行末の互換性の両方を扱うのに便利なツールが dos2unix です。Debianベースのディストリビューションを使用している場合、次の手順で dos2unix をインストールできます。
sudo apt-get update
sudo apt-get install dos2unix.
インストールが完了したら、起動スクリプトに対して次のコマンドを実行します。
dos2unix startup.sh
dos2unix: converting file startup.sh to Unix format...
アップロードプロセス
AMS CLIは専用サーバーファイルをパッケージ化し、そのパッケージをクラウドストレージにアップロードします。アップロードが正常に完了すると、このイメージを使用してAMSフリートで専用サーバーをデプロイできるようになります。
すべての専用サーバーイメージはアカウントレベルで保存されます。つまり、同じAMSアカウントにリンクされているすべてのネームスペースは、そのアカウントにアップロードされたすべての専用サーバーイメージにアクセスできます。
実行時に追加のaptパッケージをインストールする
専用サーバービルドが、AMS Watchdogのベースコンテナに含まれていない共有ライブラリ(グラフィックスライブラリやオーディオライブラリなど)に依存している場合があります。これらのライブラリを起動時にコンテナイメージへ追加したい場合は、DSの起動前にWatchdogが自動的にインストールする追加のDebian/Ubuntu (apt) パッケージを指定できます。
そのためには、アップロードするフォルダーのルートに apt-packages.txt という名前のファイルを追加し、1行につき1つのパッケージ名を記載します。空行および # で始まる行は無視されます。
# Graphics libraries needed by our DS
libgl1-mesa-glx
libvulkan1
# Audio support
libopenal1
各パッケージ名は、Debianのパッケージ命名規則 (^[a-z0-9][a-z0-9.+\-]*(:[a-z0-9]+)?$) に一致している必要があります。この規則では、libexample:amd64 のようなアーキテクチャ修飾子を任意で付加することもできます。パッケージ名がこのパターンに一致しない場合、またはパッケージのインストールに失敗した場合、DSは起動しません。
Watchdogは、イメージをダウンロードして展開する際に apt-packages.txt の有無を確認します。ファイルが存在する場合は、そのイメージからDSプロセスを起動する前に apt-get update を実行し、続いて記載されたパッケージを apt-get install でインストールします。パッケージは、AMS Watchdogのベースイメージに設定されているデフォルトのDebian/Ubuntuリポジトリからインストールされます。このインストールは、イメージのダウンロード1回につき1度だけ実行されます。たとえばオンデマンドモードのように、キャッシュされた同じイメージから複数のDSプロセスが起動される場合でも、パッケージがインストールされるのは最初の1回のみです。
専用サーバーアップローダーの使用
基本コマンドの一般的な形式は次のとおりです。
> ams upload -H <host> -c <iam_client_id> -s <iam_client_secret> -n <image_name> -p <path_to_server_folder> -e <exec_command>
ams upload -help を実行すると、upload AMS CLIコマンドの詳細なヘルプを表示できます。
upload コマンドフラグ
-
-c,--clientIdアップローダーが認証に使用するIAMクライアントID。
-
-e,--executable専用サーバーを起動する実行ファイルへの相対パス。指定するパスは、
--path引数で指定したディレクトリからの相対パスである必要があります。 -
-H,--hostURLアップロード先の環境のホスト名を指定します。ホスト名は、環境のベースURLから
https://を除いたものです。 -
-n,--imageNameビルドするイメージの名前。
-
-p,--pathアップロードする専用サーバーファイルが格納されているディレクトリへのローカルパス。絶対パスまたは相対パスのいずれでも構いませんが、専用サーバーを実行するために必要なすべてのファイルを含むディレクトリである必要があります。
-
-s,--secret使用しているIAMクライアントが機密クライアントの場合、認証のためにアップローダーが使用するIAMクライアントシークレットを指定します。それ以外の場合は、このオプションは省略できます。
-
-f,--symbolFiles(オプション)デバッグシンボルをサーバーファイルと一緒にアップロードする場合は、このオプションを使用します。デフォルトはfalseです。
サーバーイメージの管理
サーバーイメージは、Server Images ページで管理できます。サイドバーで、Multiplayer > Multiplayer Server > Server Images に移動すると、AMSアカウント内のサーバーイメージのリストが表示されます。

Server Images ページには、各サーバーイメージについて次の情報が表示されます。
- Image Name: CLIからビルドされたイメージの名前。
- Image ID: イメージの一意のID。
- Size (MiB): メビバイト (MiB) で計算されたストレージイメージのサイズ。
- Uploaded At: イメージのアップロード日時。
- Tags: イメージに追加されたカスタムタグ。
- Fleets: そのイメージを参照しているフリートの数。
- Status: イメージのステータス。Uploading、Complete、または Scheduled for deletion のいずれかになります。
同じ情報は、サーバーの詳細ページにも、そのイメージを参照しているフリートの一覧とともに表示されます。リストから、サーバーイメージの名前をクリックすると、その詳細ページを表示できます。
リスト内のサーバーイメージを簡単に検索・並べ替えるには:
- 検索バーで名前またはIDを使用して特定のイメージを検索します。
- Image Name、Size、Uploaded At、Fleets、またはテーブルヘッダーで利用可能な他の条件に基づいて、リストを昇順または降順に並べ替えます。
- テーブルリストから特定のタグとステータスで並べ替えます。
- Tags および Status でリストをフィルタリングします。Tags または Status の横にあるフィルターアイコンをクリックし、使用したい条件を選択します。その後、OK をクリックしてフィルターを適用します。
サーバーイメージの名前とタグの編集
サーバーイメージが作成された後、編集できるのは名前とタグのみです。手順は次のとおりです。
- サーバーイメージのリストから、編集したいサーバーイメージの名前をクリックします。
- サーバーイメージの詳細ページで、次の操作を行います。
- Image Name で、鉛筆(編集)アイコンをクリックして名前を編集します。
- Tags で、Add more をクリックし、追加したいタグを入力します。複数のタグを追加する場合は、各タグをカンマで区切ります。タグを削除するには、そのタグの X(削除)ボタンをクリックします。
サーバーイメージの保護
サーバーイメージを保護すると、そのイメージを参照するフリートがない場合でも、30日後にAMSによって自動的に削除されなくなります。サーバーイメージのリストでは、保護されているイメージの名前の横に鍵アイコンが表示されます。
サーバーイメージは、次の2つの方法で保護できます。
- Server Imagesページのリストから: イメージを1つずつ、またはまとめて保護できます。
- 1つずつ: 保護したいイメージを見つけて、その Action メニューをクリックします。Protect Image を選択し、確認メッセージで Protect をクリックします。
- まとめて: 保護したいイメージのチェックボックスをオンにします。リストの右上にある Protect Image をクリックし、確認メッセージで Protect をクリックします。
- サーバーイメージの詳細ページから: ページの右上にある Protect Image をクリックします。その後、確認メッセージで Protect をクリックします。
サーバーイメージの削除をスケジュールする
AMSでは、フリートから参照されていない、保護されていないサーバーイメージのみを削除するようにスケジュールできます。イメージがスケジュールされると、1〜2時間後に削除されます。この期間中は削除をキャンセルして、イメージをAMSアカウントに保持することができます。詳細はサーバーイメージの削除のキャンセルを参照してください。
サーバーイメージの削除は、次の2つの方法でスケジュールできます。
- Server Imagesページから: イメージを1つずつ、またはまとめて削除するようスケジュールできます。
- 1つずつ: リストから、削除をスケジュールしたいイメージを見つけます。Delete を選択し、確認メッセージで Schedule Deletion をクリックします。
- まとめて: リストから、削除をスケジュールしたいイメージのチェックボックスをオンにします。リストの右上にある Delete Image をクリックし、確認メッセージで Schedule Deletion をクリックします。
- サーバーイメージの詳細ページから: ページの右上にある Delete Image をクリックし、確認メッセージで Schedule Deletion をクリックします。
30日以上経過し、いずれのフリートにも関連付けられていないサーバーイメージは、自動的に期限切れとなり、完全に削除されます。削除されないようにしたい、参照されていないサーバーイメージは、必ず保護してください。
サーバーイメージの削除のキャンセル
削除がスケジュールされたイメージは、削除リクエストが行われてから1時間以内であればキャンセルできます。
サーバーイメージの削除は、次の2つの方法でキャンセルできます。
- Server Imagesページから: イメージを見つけて、その Action メニューをクリックします。次に、Cancel Deletion をクリックし、確認メッセージで Yes, cancel deletion をクリックします。
- サーバーイメージの詳細ページから: ページの右上にある Cancel Deletion をクリックし、確認メッセージで Yes, cancel deletion をクリックします。
次のステップ
専用サーバービルドをAMSにアップロードしたので、アップロードしたイメージを使用してフリートを作成して専用サーバーをデプロイする準備が整いました。