

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 빌드 설치 스크립트 추가
<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 플릿에 대한 설치 프로세스 중에 사용자로 실행을 통해 인스턴스 파일 구조에 대한 액세스를 제한했습니다. 이 사용자는 빌드 파일이 설치된 디렉터리에 대한 전체 권한을 가집니다. 설치 스크립트가 관리자 권한이 필요한 작업을 수행하는 경우 **sudo**를 사용하여 관리자 액세스를 지정합니다. Windows 플릿용 사용자로 실행을 통해 기본적으로 관리자 권한을 가집니다. 설치 스크립트와 관련해 권한 실패가 발생하면 스크립트에 문제가 있음을 나타내는 이벤트 메시지가 생성됩니다.
+ Linux에서 Amazon GameLift Servers는 bash 같은 공통 shell 인터프리터 언어를 지원합니다. 설치 스크립트 맨 위에 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
```