Amazon GameLift용 VPC 피어링 - Amazon GameLift

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

Amazon GameLift용 VPC 피어링

이 주제에서는 Amazon GameLift 호스팅 게임 서버와 다른 비 Amazon GameLift 리소스 사이의 VPC 피어링 연결을 설정하는 방법을 안내합니다. Amazon Virtual Private Cloud(VPC) 피어링 연결을 사용하여 게임 서버에서 웹 서비스, 리포지토리 등과 같은 다른 AWS 리소스와 직접 비공개로 통신할 수 있습니다. AWS에서 실행되고 액세스 권한이 있는 AWS 계정으로 관리되는 모든 리소스와의 VPC 피어링을 설정할 수 있습니다.

참고

VPC 피어링은 고급 기능입니다. 게임 서버에서 다른 AWS 리소스와 직접 비공개로 통신할 수 있도록 하는 기본 옵션에 대해 알아보려면 플릿의 다른 AWS 리소스와 통신 섹션을 참조하세요.

Amazon VPC 및 VPC 피어링에 대해 잘 알고 있는 경우 Amazon GameLift 게임 서버와의 피어링 설정은 약간 다릅니다. 게임 서버(Amazon GameLift 서비스로 제어됨)를 포함하는 VPC에 액세스할 권한이 없으므로 VPC 피어링을 직접 요청할 수 없습니다. 그 대신 비 Amazon GameLift 리소스를 포함하는 VPC를 사전 승인하여 Amazon GameLift 서비스의 피어링 요청을 수락합니다. 그런 다음 Amazon GameLift를 트리거하여 방금 승인한 VPC 피어링을 요청합니다. Amazon GameLift는 피어링 연결 생성, 라우팅 테이블 설정 및 연결 구성 작업을 처리합니다.

기존 플릿용 VPC 피어링을 설정하려면

  1. AWS 계정 ID 및 자격 증명을 가져옵니다.

    다음 AWS 계정에 대한 ID 및 로그인 자격 증명이 필요합니다. AWS Management Console에 로그인한 후 계정 설정을 확인하여 AWS 계정 ID를 찾을 수 있습니다. 자격 증명을 가져오려면 IAM 콘솔로 이동합니다.

    • Amazon GameLift 게임 서버를 관리하는 데 사용되는 AWS 계정입니다.

    • 비 Amazon GameLift 리소스를 관리하는 데 사용되는 AWS 계정입니다.

    Amazon GameLift 리소스와 비 Amazon GameLift 리소스에 대해 동일한 계정을 사용할 경우 한 계정에 대해서만 ID와 자격 증명이 필요합니다.

  2. 각 VPC에 대한 ID를 가져옵니다.

    피어링할 두 VPC에 대해 다음 정보를 가져옵니다.

    • Amazon GameLift 게임 서버용 VPC - Amazon GameLift 플릿 ID입니다. EC2 인스턴스 플릿의 Amazon GameLift에 게임 서버가 배포됩니다. 플릿은 해당 VPC에 자동으로 배치되며 Amazon GameLift 서비스에 의해 관리됩니다. VPC에 직접 액세스할 권한이 없어 플릿 ID로 확인됩니다.

    • 비 Amazon GameLift AWS 리소스용 VPC - AWS에서 실행되고 액세스 권한이 있는 AWS 계정에 의해 관리되는 모든 리소스와의 VPC 피어링을 설정할 수 있습니다. 이러한 리소스에 대한 VPC를 아직 생성하지 않은 경우에는 Amazon VPC 시작하기를 참조하세요. VPC를 생성한 경우 Amazon VPC용 AWS Management Console에 로그인한 후 VPC를 확인하여 VPC ID를 찾을 수 있습니다.

    참고

    피어링을 설정할 때는 두 VPC가 동일한 리전에 있어야 합니다. Amazon GameLift 플릿 게임 서버용 VPC는 플릿과 동일한 리전에 있습니다.

  3. VPC 피어링을 승인합니다.

    이 단계에서는 비 Amazon GameLift 리소스에 대해 VPC가 있는 게임 서버와 함께 VPC를 피어링하기 위해 Amazon GameLift에서 향후 요청을 사전 승인합니다. 이 작업은 VPC에 대한 보안 그룹을 업데이트합니다.

    VPC 피어링을 승인하려면 Amazon GameLift Service API CreateVpcPeeringAuthorization()을 호출하거나 AWS CLI 명령 create-vpc-peering-authorization을 사용합니다. 비 Amazon GameLift 리소스를 관리하는 계정을 사용하여 호출합니다. 다음 정보를 식별합니다.

    • 피어 VPC ID - 비 Amazon GameLift 리소스를 포함하는 VPC를 위한 것입니다.

    • Amazon GameLift AWS 계정 ID - Amazon GameLift 플릿을 관리하는 데 사용하는 계정입니다.

    VPC 피어링을 승인한 경우 별도로 취소하지 않는 한 승인은 24시간 동안 유효합니다. 다음 작업을 사용하여 VPC 피어링 승인을 관리할 수 있습니다.

  4. 피어링 연결을 요청합니다.

    유효한 승인을 통해 Amazon GameLift가 피어링 연결을 설정하도록 요청할 수 있습니다.

    VPC 피어링을 요청하려면 Amazon GameLift Service API CreateVpcPeeringConnection()을 호출하거나 AWS CLI 명령 create-vpc-peering-connection을 사용합니다. Amazon GameLift 게임 서버를 관리하는 계정을 사용하여 호출합니다. 다음 정보를 사용하여 피어링할 두 VPC를 식별합니다.

    • 피어 VPC ID 및 AWS 계정 ID - 이것은 비 Amazon GameLift 리소스용 VPC와 해당 VPC를 관리하는 데 사용하는 계정입니다. VPC ID는 유효한 피어링 승인의 ID와 일치해야 합니다.

    • 플릿 ID - 이것으로 Amazon GameLift 게임 서버용 VPC를 확인합니다.

  5. 피어링 연결 상태를 추적합니다.

    VPC 피어링 연결 요청은 비동기 작업입니다. 피어링 요청의 상태를 추적하여 성공 또는 실패 사례를 처리하려면 다음 옵션 중 하나를 사용합니다.

    • DescribeVpcPeeringConnections()을 사용하여 지속적으로 폴링합니다. 이 작업에서는 요청 상태를 포함하여 VPC 피어링 연결 기록을 검색합니다. 피어링 연결이 생성된 경우 VPC에 할당되는 프라이빗 IP 주소의 CIDR 블록이 연결 기록에 포함되어 있습니다.

    • DescribeFleetEvents()를 사용하여 성공 및 실패 이벤트를 비롯한 VPC 피어링 연결과 연관된 플릿 이벤트를 처리합니다.

피어링 연결이 설정되면 다음 작업을 사용하여 관리할 수 있습니다.

새 플릿으로 VPC 피어링을 설정하려면

새 Amazon GameLift 플릿을 생성하는 동시에 VPC 피어링 연결을 요청할 수 있습니다.

  1. AWS 계정 ID 및 자격 증명을 가져옵니다.

    다음 두 개의 AWS 계정에 대한 ID 및 로그인 자격 증명이 필요합니다. AWS Management Console에 로그인한 후 계정 설정을 확인하여 AWS 계정 ID를 찾을 수 있습니다. 자격 증명을 가져오려면 IAM 콘솔로 이동합니다.

    • Amazon GameLift 게임 서버를 관리하는 데 사용되는 AWS 계정입니다.

    • 비 Amazon GameLift 리소스를 관리하는 데 사용되는 AWS 계정입니다.

    Amazon GameLift 리소스와 비 Amazon GameLift 리소스에 대해 동일한 계정을 사용할 경우 한 계정에 대해서만 ID와 자격 증명이 필요합니다.

  2. 비 Amazon GameLift AWS 리소스용 VPC ID를 받습니다.

    이러한 리소스에 대한 VPC를 아직 생성하지 않았다면 지금 생성합니다(Amazon VPC 시작하기 참조). 새 플릿을 생성할 위치와 동일한 리전에 새 VPC를 생성해야 합니다. 비 Amazon GameLift 리소스가 Amazon GameLift에서 사용하는 계정과 다른 AWS 계정 또는 사용자/사용자 그룹에서 관리되는 경우, 다음 단계에서 승인을 요청할 때 이러한 계정 자격 증명을 사용해야 합니다.

    VPC를 생성한 후에는 VPC를 확인하여 Amazon VPC 콘솔에서 VPC ID를 찾을 수 있습니다.

  3. 비 Amazon GameLift 리소스와의 VPC 피어링을 승인합니다.

    Amazon GameLift가 새 플릿과 해당 VPC를 생성할 때 비 Amazon GameLift 리소스용 VPC와 피어링하기 위한 요청도 전송합니다. 이 요청을 사전에 승인해야 합니다. 이 단계에서는 VPC에 대한 보안 그룹을 업데이트합니다.

    비 Amazon GameLift 리소스를 관리하는 계정 자격 증명을 사용하여 Amazon GameLift Service API CreateVpcPeeringAuthorization()을 호출하거나 AWS CLI 명령 create-vpc-peering-authorization을 사용합니다. 다음 정보를 식별합니다.

    • 피어 VPC ID - 비 Amazon GameLift 리소스를 포함하는 VPC의 ID입니다.

    • Amazon GameLift AWS 계정 ID - Amazon GameLift 플릿을 관리하는 데 사용하는 계정 ID입니다.

    VPC 피어링을 승인한 경우 별도로 취소하지 않는 한 승인은 24시간 동안 유효합니다. 다음 작업을 사용하여 VPC 피어링 승인을 관리할 수 있습니다.

  4. AWS CLI를 사용하는 새로운 플릿을 생성하기에 나와 있는 지침을 따릅니다. 다음 추가 파라미터를 포함합니다.

    • peer-vpc-aws-account-id - 비 Amazon GameLift 리소스와 함께 VPC를 관리할 때 사용하는 계정용 ID입니다.

    • peer-vpc-id - 비 GameLift 계정이 있는 VPC ID입니다.

VPC 피어링 파라미터로 create-fleet을 성공적으로 호출하여 새로운 플릿 및 VPC 피어링 요청을 생성합니다. 플릿의 상태가 New로 설정되고 플릿 활성화 프로세스가 시작됩니다. 피어링 연결 요청의 상태가 initiating-request로 설정됩니다. describe-vpc-peering-connections를 호출하여 피어링 요청이 성공했는지 여부를 추적할 수 있습니다.

새 플릿 및 VPC 피어링 연결을 요청할 경우 두 작업 모두 성공하거나 실패합니다. 생성 프로세스 중에 플릿이 실패할 경우 VPC 피어링이 연결되지 않습니다. 마찬가지로 어떠한 이유로 VPC 피어링 연결이 실패할 경우 새 플릿의 상태가 Activating에서 Active로 전환되지 않습니다.

참고

새로운 VPC 피어링 연결은 플릿이 활성화될 준비가 될 때까지 완료되지 않습니다. 즉, 해당 연결을 사용할 수 없으며 게임 서버 빌드 설치 프로세스 중에도 사용할 수 없습니다.

다음 예제에서는 새 플릿을 생성하고 미리 설정된 VPC와 새 플릿의 VPC 간에 피어링 연결을 생성합니다. 비 Amazon GameLift AWS 계정 ID와 VPC ID를 조합하여 미리 구출된 VPC를 고유하게 식별합니다.

$ AWS gamelift create-fleet --name "My_Fleet_1" --description "The sample test fleet" --ec2-instance-type "c5.large" --fleet-type "ON_DEMAND" --build-id "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff" --runtime-configuration "GameSessionActivationTimeoutSeconds=300, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe, Parameters=+sv_port 33435 +start_lobby, ConcurrentExecutions=10}]" --new-game-session-protection-policy "FullProtection" --resource-creation-limit-policy "NewGameSessionsPerCreator=3, PolicyPeriodInMinutes=15" --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP" "FromPort=33235,ToPort=33235,IpRange=0.0.0.0/0,Protocol=UDP" --metric-groups "EMEAfleets" --peer-vpc-aws-account-id "111122223333" --peer-vpc-id "vpc-a11a11a"

복사 가능 버전:

AWS gamelift create-fleet --name "My_Fleet_1" --description "The sample test fleet" --fleet-type "ON_DEMAND" --metric-groups "EMEAfleets" --build-id "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff" --ec2-instance-type "c5.large" --runtime-configuration "GameSessionActivationTimeoutSeconds=300,MaxConcurrentGameSessionActivations=2,ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe,Parameters=+sv_port 33435 +start_lobby,ConcurrentExecutions=10}]" --new-game-session-protection-policy "FullProtection" --resource-creation-limit-policy "NewGameSessionsPerCreator=3,PolicyPeriodInMinutes=15" --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP" "FromPort=33235,ToPort=33235,IpRange=0.0.0.0/0,Protocol=UDP" --peer-vpc-aws-account-id "111122223333" --peer-vpc-id "vpc-a11a11a"

VPC 피어링 문제 해결

Amazon GameLift 게임 서버에 대한 VPC 피어링 연결을 설정하는 데 문제가 있는 경우, 다음과 같은 일반적인 근본 원인을 확인합니다.

  • 요청된 연결에 대한 승인을 찾을 수 없습니다.

    • 비 Amazon GameLift VPC에 대한 VPC 승인 상태를 확인합니다. 존재하지 않거나 만료되었을 수 있습니다.

    • 피어링하려는 두 VPC의 리전을 확인합니다. 동일한 리전에 있지 않으면 피어링할 수 없습니다.

  • 두 VPC의 CIDR 블록(잘못된 VPC 피어링 연결 구성 참조)이 중첩되어 있습니다. 피어링된 VPC에 할당되는 IPv4 CIDR 블록은 중첩될 수 없습니다. Amazon GameLift 플릿에 대한 VPC의 CIDR 블록은 자동으로 할당되며 변경할 수 없으므로 비 Amazon GameLift 리소스에 대해 VPC의 CIDR 블록을 변경해야 합니다. 이 문제를 해결하려면:

    • DescribeVpcPeeringConnections()을 호출하여 해당 Amazon GameLift 플릿에 대한 이 CIDR 블록을 조회합니다.

    • Amazon VPC 콘솔로 이동하여 비 Amazon GameLift 리소스에 대한 VPC를 찾은 다음 중첩되지 않도록 CIDR 블록을 변경합니다.

  • 새 플릿이 활성화되지 않았습니다(새 플릿으로 VPC 피어링 요청 시). 새 플릿이 활성 상태로 진행되지 않으면 피어링할 VPC가 없으므로 피어링 연결이 실패합니다.