亚马逊 VPC 对等连接 GameLift - 亚马逊 GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 VPC 对等连接 GameLift

本主题提供有关如何在亚马逊GameLift托管的游戏服务器和其他非GameLift亚马逊资源之间设置 VPC 对等连接的指导。使用 Amazon Virtual Private Cloud (VPC) 对等连接,使您的游戏服务器能够与您的其他Amazon资源(例如 Web 服务或存储库)进行直接和私密通信。您可以与在您有权访问的Amazon账户上运行和管理的任何资源建立 VPC 对Amazon等关系。

注意

VPC 对等连接是一项高级功能。要了解使您的游戏服务器能够直接和私密地与其他Amazon资源通信的首选选项,请参阅与您的车队中的其他Amazon资源进行通信

如果你已经熟悉亚马逊 VPC 和 VPC 对等互连,请明白,设置与亚马逊GameLift游戏服务器的对等互连略有不同。您无权访问包含您的游戏服务器的 VPC(它由 Amazon GameLift 服务控制),因此您无法直接为其请求 VPC 对等。相反,您首先使用您的非亚马逊GameLift资源对 VPC 进行预授权,以接受来自亚马逊服务的对等请求。GameLift然后,触GameLift发亚马逊请求您刚刚授权的 VPC 对等连接。Amazon GameLift 负责创建对等连接、设置路由表和配置连接等任务。

为现有队组设置 VPC 对等连接

  1. 获取Amazon账户 ID 和证书。

    您需要以下Amazon账户的 ID 和登录凭证。您可以通过登录Amazon Web Services Management Console并查看您的Amazon账户设置来查找账户 ID。要获取凭证,请转到 IAM 控制台。

    • Amazon您用来管理您的亚马逊GameLift游戏服务器的账户。

    • Amazon您用来管理非亚马逊GameLift资源的账户。

    如果您为亚马逊GameLift和非亚马逊GameLift资源使用同一个账户,则只需要该账户的 ID 和证书。

  2. 为每个 VPC 获取标识符。

    为要对等的两个 VPC 获取以下信息:

    • 您的亚马逊GameLift游戏服务器的 VPC-这是您的亚马逊GameLift舰队 ID。您的游戏服务器部署在 Amaz GameLift on 的 EC2 实例队列上。队列会自动放置在自己的 VPC 中,该虚拟私有网络由亚马逊GameLift服务管理。您无法直接访问 VPC,因此它由队列 ID 识别。

    • 您的非亚马逊GameLiftAmazon资源的 VPC — 您可以与在您有权访问的Amazon账户上运行和管理的任何资源建立 VPC 对Amazon等关系。如果您尚未为这些资源创建 VPC,请参阅 Amazon VPC 入门。创建 VPC 后,您可以通过登录 Amazon VPC 的 Amazon Web Services Management Console并查看您的 VPC 来找到 VPC ID。

    注意

    在设置对等连接时,两个 VPC 必须位于相同区域中。您的亚马逊GameLift队列游戏服务器的 VPC 与队列位于同一区域。

  3. 授权 VPC 对等连接。

    在此步骤中,您将预先授权亚马逊未来提出的请求,该请求将 VPC 与您的游戏服务器与您的 VPC 对等GameLift以获取非 GameLift Amazon 资源。此操作将更新您的 VPC 的安全组。

    要授权 VPC 对等关系,请调用亚马逊GameLift服务 API CreateVpcPeeringAuthorization() 或使用 Amazon CLI 命令create-vpc-peering-authorization。使用管理您的非亚马逊GameLift资源的账户拨打此电话。确定以下信息:

    • 对等 VPC ID — 这适用于拥有您的非亚马逊GameLift资源的 VPC。

    • 亚马逊GameLiftAmazon账户 ID — 这是您用来管理亚马逊GameLift舰队的账户。

    授权 VPC 对等连接后,除非被撤销,否则该授权将在 24 小时内有效。您可以使用以下操作管理您的 VPC 对等连接授权:

  4. 请求对等连接。

    获得有效授权后,您可以请求亚马逊GameLift建立对等连接。

    要请求 VPC 对等关系,请调用亚马逊GameLift服务 API CreateVpcPeeringConnection() 或使用 Amazon CLI 命令create-vpc-peering-connection。使用管理您的亚马逊GameLift游戏服务器的账户拨打此电话。使用以下信息标识要建立对等连接的两个 VPC:

    • 对等 VPC ID 和Amazon账户 ID — 这是您的非亚马逊GameLift资源的 VPC,也是您用来管理这些资源的账户。VPC ID 必须与有效对等授权上的 ID 匹配。

    • 队列 ID — 用于识别您的亚马逊GameLift游戏服务器的 VPC。

  5. 跟踪对等连接状态。

    请求 VPC 对等连接是一个异步操作。要跟踪对等请求的状态并处理成功或失败的案例,请使用以下选项之一:

    • 使用 DescribeVpcPeeringConnections() 持续轮询。此操作将检索 VPC 对等连接记录,包括请求的状态。如果已成功创建对等连接,则连接记录也包含分配给 VPC 的私有 IP 地址的 CIDR 块。

    • 使用 DescribeFleetEvents() 处理与 VPC 对等连接相关的队列事件,包括成功和失败事件。

建立对等连接后,您可以立即使用以下操作对其进行管理:

使用新队组设置 VPC 对等连接

您可以创建新的 Amazon GameLift 队列并同时请求 VPC 对等连接。

  1. 获取Amazon账户 ID 和证书。

    您需要以下两个Amazon账户的 ID 和登录凭证。您可以通过登录Amazon Web Services Management Console并查看您的Amazon账户设置来查找账户 ID。要获取凭证,请转到 IAM 控制台。

    • Amazon您用来管理您的亚马逊GameLift游戏服务器的账户。

    • Amazon您用来管理非亚马逊GameLift资源的账户。

    如果您为亚马逊GameLift和非亚马逊GameLift资源使用同一个账户,则只需要该账户的 ID 和证书。

  2. 获取您的非亚马逊GameLiftAmazon资源的 VPC ID。

    如果您尚未为这些资源创建 VPC,请立即创建(请参阅 Amazon VPC 入门)。请确保您在计划创建新队组的同一区域中创建新的 VPC。如果您的非亚马逊GameLift资源在与您在亚马逊上使用的Amazon账户或用户/用户组不同的账户或用户/用户组下管理GameLift,则在下一步中请求授权时需要使用这些账户证书。

    创建 VPC 后,您可以在 Amazon VPC 控制台中通过查看 VPC 来查找 VPC ID。

  3. 授权 VPC 与非亚马逊GameLift资源建立对等关系。

    当亚马逊GameLift创建新队列和相应的 VPC 时,它还会向您的非亚马逊GameLift资源发送与 VPC 对等的请求。您需要预先对该请求进行授权。此步骤将更新您的 VPC 的安全组。

    使用管理您的非亚马逊GameLift资源的账户证书,调用亚马逊GameLift服务 API CreateVpcPeeringAuthorization() 或使用 Amazon CLI 命令create-vpc-peering-authorization。确定以下信息:

    • 对等 VPC ID — 包含您的非亚马逊GameLift资源的 VPC 的 ID。

    • 亚马逊GameLiftAmazon账户 ID — 您用来管理亚马逊GameLift舰队的账户的 ID。

    授权 VPC 对等连接后,除非被撤销,否则该授权将在 24 小时内有效。您可以使用以下操作管理您的 VPC 对等连接授权:

  4. 按照使用 Amazon CLI 创建新队列的说明进行操作。包括以下其他参数:

    • peer-vpc-aws-account-id — 您用于使用非亚马逊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 之间创建对等连接。预先建立的 VPC 由您的非亚马逊GameLiftAmazon账户 ID 和 VPC ID 的组合进行唯一标识。

$ Amazon 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"

可复制版本:

Amazon 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 对等连接问题疑难解答

如果您在为亚马逊GameLift游戏服务器建立 VPC 对等连接时遇到问题,请考虑以下常见的根本原因:

  • 未找到对所请求连接的授权:

    • 检查非亚马逊 VPC 的 VP GameLift C 授权状态。它可能不存在或可能已过期。

    • 检查您尝试建立对等连接的两个 VPC 的区域。如果它们不在同一个区域中,则无法建立对等连接。

  • 您的两个 VPC 的 CIDR 区块(请参阅无效的 VPC 对等连接配置)重叠。分配给对等的 VPC 的 IPv4 CIDR 块无法重叠。您的亚马逊GameLift队列的 VPC 的 CIDR 区块是自动分配的,无法更改,因此您需要更改非GameLift亚马逊资源的 VPC 的 CIDR 区块。要解决此问题,请执行以下操作:

    • 致电DescribeVpcPeeringConnections()查看您的亚马逊GameLift机队的这个 CIDR 区块。

    • 前往 Amazon VPC 控制台,找到您的非亚马逊GameLift资源的 VPC,然后更改 CIDR 区块,使它们不会重叠。

  • 新队组未激活(当请求与新队组建立 VPC 对等连接时)。如果新队组未能进入活动 状态,则没有要与之建立对等连接的 VPC,因此对等连接无法成功。