빌드 설치 스크립트 추가 - Amazon GameLift

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

빌드 설치 스크립트 추가

게임 빌드의 운영 체제(OS)에 맞게 다음과 같이 설치 스크립트를 생성합니다.

  • Windows: install.bat이라는 배치 파일을 생성합니다.

  • Linux의: install.sh라는 쉘 스크립트 파일을 생성합니다.

설치 스크립트를 생성할 때는 다음 사항을 염두합니다.

  • 스크립트는 어떤 사용자 입력도 가져올 수 없습니다.

  • Amazon은 빌드를 GameLift 설치하고 다음 위치에 있는 호스팅 서버의 빌드 패키지에 파일 디렉터리를 다시 생성합니다.

    • Windows 플릿: C:\game

    • Linux 플릿: /local/game

  • Linux 플릿에 대한 설치 프로세스 중에 사용자로 실행을 통해 인스턴스 파일 구조에 대한 액세스를 제한했습니다. 이 사용자는 빌드 파일이 설치된 디렉터리에 대한 전체 권한을 가집니다. 설치 스크립트가 관리자 권한이 필요한 작업을 수행하는 경우 sudo를 사용하여 관리자 액세스를 지정합니다. Windows 플릿용 사용자로 실행을 통해 기본적으로 관리자 권한을 가집니다. 설치 스크립트와 관련해 권한 실패가 발생하면 스크립트에 문제가 있음을 나타내는 이벤트 메시지가 생성됩니다.

  • Linux에서 Amazon은 bash와 같은 일반적인 쉘 해석기 언어를 GameLift 지원합니다. 설치 스크립트 맨 위에 shebang(예: #!/bin/bash)을 추가합니다. 선호하는 쉘 명령이 지원되는지 확인하려면 활성 Linux 인스턴스에 원격으로 액세스하여 쉘 프롬프트를 엽니다. 자세한 내용은 Amazon GameLift 플릿 인스턴스에 원격으로 연결 단원을 참조하십시오.

  • 설치 스크립트는 VPC 피어링 연결에 의존할 수 없습니다. Amazon이 플릿 인스턴스에 빌드를 GameLift 설치하기 전까지는 VPC 피어링 연결을 사용할 수 없습니다.

예 Windows 설치 bash 파일

여기 나온 install.bat 파일은 게임 서버에 필요한 Visual C++ 런타임 구성 요소를 설치하고 로그 파일에 결과를 기록하는 방법을 보여줍니다. 스크립트는 루트의 빌드 패키지에 구성 요소 파일을 포함합니다.

vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
예 Linux 설치 쉘 스크립트

이 예제 install.sh 파일은 설치 스크립트에서 bash를 사용하고 결과를 로그 파일에 기록합니다.

#!/bin/bash echo 'Hello World' > install.log

이 예제 install.sh 파일은 Amazon CloudWatch 에이전트를 사용하여 시스템 수준 및 사용자 지정 지표를 수집하고 로그 교체를 처리하는 방법을 보여줍니다. Amazon은 서비스 에서 GameLift 실행되므로 사용자를 대신하여 AWS Identity and Access Management (IAM) 역할을 수임할 수 있는 GameLift 권한을 Amazon에 부여VPC해야 합니다. Amazon이 역할을 수임 GameLift 하도록 허용하려면 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. } } } 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