

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

# ビルドインストールスクリプトを追加する
<a name="gamelift-build-cli-uploading-install"></a>

ゲームビルドのオペレーティングシステム (OS) 用のインストールスクリプトを作成します。
+ Windows:「`install.bat`」という名前のバッチファイルを作成します。
+ Linux:「`install.sh`」という名前のシェルスクリプトファイルを作成します。

インストールスクリプトを作成するときは、次の点に留意してください。
+ このスクリプトはユーザー入力を一切受け付けません。
+ Amazon GameLift Servers はビルドをインストールし、以下のロケーションのホスティングサーバー上のビルドパッケージにファイルディレクトリを再作成します。
  + Windows フリート: `C:\game`
  + Linux フリート: `/local/game`
+ Linux フリートのインストールプロセスで、run-as ユーザーは、インスタンスのファイル構造へのアクセスが制限されます。このユーザーは、ビルドファイルがインストールされているディレクトリに対しては完全な権限があります。インストールスクリプトが管理者アクセス許可を必要とするアクションを実行する場合は、**sudo** を使用して管理者アクセスを指定します。Windows フリートの run-as ユーザーには、デフォルトで管理者アクセス許可があります。インストールスクリプトに関連するアクセス許可の失敗により、スクリプトに問題があることを示すイベントメッセージが生成されます。
+ Linux では、Amazon GameLift Servers は bash などの一般的なシェルインタープリタ言語をサポートします。shebang (`#!/bin/bash` など) を、インストールスクリプトの先頭に追加します。目的のシェルコマンドのサポートについて確認するには、アクティブな Linux インスタンスにリモートにアクセスし、シェルコマンドを開きます。詳細については、「[フリートインスタンスに接続する](fleets-remote-access.md)」を参照してください。
+ インストールスクリプトは VPC ピアリング接続に依存できません。VPC ピアリング接続は、Amazon GameLift Servers がフリートインスタンスにビルドをインストールするまで使用できません。

**Example Windows インストール bash ファイル**  
この `install.bat` ファイルの例では、ゲームサーバーに必要な Visual C\$1\$1 ランタイムコンポーネントをインストールし、結果をログファイルに書き込みます。スクリプトはルートのビルドパッケージにコンポーネントファイルを含めます。  

```
vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
```

**Example Linux インストールシェルスクリプト**  
この `install.sh` ファイルの例では、インストールスクリプトで bash を使用し、結果をログファイルに書き込みます。  

```
#!/bin/bash
echo 'Hello World' > install.log
```
この `install.sh` ファイルの例では、Amazon CloudWatch エージェントを使用してシステムレベルおよびカスタムのメトリクスを収集し、ログローテーションを処理する方法を示します。Amazon GameLift Servers はサービス VPC で実行されているため、ユーザーに代わって AWS Identity and Access Management (IAM) ロールを引き受けられるように、Amazon GameLift Servers にアクセス許可を付与する必要があります。Amazon GameLift Servers がロールを引き受けることを許可するには、 AWS 管理ポリシー を含むロールを作成し`CloudWatchAgentAdminPolicy`、フリートの作成時にそのロールを使用します。  

```
sudo yum install -y amazon-cloudwatch-agent
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y collectd
cat <<'EOF' > /tmp/config.json
{
    "agent": {
        "metrics_collection_interval": 60,
        "run_as_user": "root",
        "credentials": {
            "role_arn": "arn:aws:iam::account#:role/rolename"
        }
    },
    "logs": {
        "logs_collected": {
            "files": {
                "collect_list": [
                    {
                        "file_path": "/tmp/log",
                        "log_group_name": "gllog",
                        "log_stream_name": "{instance_id}"
                    }
                ]
            }
        }
    },
    "metrics": {
       "namespace": "GL_Metric",
        "append_dimensions": {
            "ImageId": "${aws:ImageId}",
            "InstanceId": "${aws:InstanceId}",
            "InstanceType": "${aws:InstanceType}"
        },
        "metrics_collected": {
            // Configure metrics you want to collect.
            // For more information, see [Manually create or edit the CloudWatch agent configuration file](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html).
        }
    }
}
EOF
sudo mv /tmp/config.json /opt/aws/amazon-cloudwatch-agent/bin/config.json
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
sudo systemctl enable amazon-cloudwatch-agent.service
```