本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 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 对等连接
-
获取Amazon账户 ID 和证书。
您需要以下Amazon账户的 ID 和登录凭证。您可以通过登录Amazon Web Services Management Console
并查看您的Amazon账户设置来查找账户 ID。要获取凭证,请转到 IAM 控制台。 -
Amazon您用来管理您的亚马逊GameLift游戏服务器的账户。
-
Amazon您用来管理非亚马逊GameLift资源的账户。
如果您为亚马逊GameLift和非亚马逊GameLift资源使用同一个账户,则只需要该账户的 ID 和证书。
-
-
为每个 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 与队列位于同一区域。
-
-
授权 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 对等连接授权:
-
DescribeVpcPeeringAuthorizations() (AmazonCLI
describe-vpc-peering-authorizations
)。 -
DeleteVpcPeeringAuthorization() (AmazonCLI
delete-vpc-peering-authorization
)。
-
-
请求对等连接。
获得有效授权后,您可以请求亚马逊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。
-
-
跟踪对等连接状态。
请求 VPC 对等连接是一个异步操作。要跟踪对等请求的状态并处理成功或失败的案例,请使用以下选项之一:
-
使用
DescribeVpcPeeringConnections()
持续轮询。此操作将检索 VPC 对等连接记录,包括请求的状态。如果已成功创建对等连接,则连接记录也包含分配给 VPC 的私有 IP 地址的 CIDR 块。 -
使用 DescribeFleetEvents() 处理与 VPC 对等连接相关的队列事件,包括成功和失败事件。
-
建立对等连接后,您可以立即使用以下操作对其进行管理:
-
DescribeVpcPeeringConnections() (AmazonCLI
describe-vpc-peering-connections
)。 -
DeleteVpcPeeringConnection() (AmazonCLI
delete-vpc-peering-connection
)。
使用新队组设置 VPC 对等连接
您可以创建新的 Amazon GameLift 队列并同时请求 VPC 对等连接。
-
获取Amazon账户 ID 和证书。
您需要以下两个Amazon账户的 ID 和登录凭证。您可以通过登录Amazon Web Services Management Console
并查看您的Amazon账户设置来查找账户 ID。要获取凭证,请转到 IAM 控制台。 -
Amazon您用来管理您的亚马逊GameLift游戏服务器的账户。
-
Amazon您用来管理非亚马逊GameLift资源的账户。
如果您为亚马逊GameLift和非亚马逊GameLift资源使用同一个账户,则只需要该账户的 ID 和证书。
-
-
获取您的非亚马逊GameLiftAmazon资源的 VPC ID。
如果您尚未为这些资源创建 VPC,请立即创建(请参阅 Amazon VPC 入门)。请确保您在计划创建新队组的同一区域中创建新的 VPC。如果您的非亚马逊GameLift资源在与您在亚马逊上使用的Amazon账户或用户/用户组不同的账户或用户/用户组下管理GameLift,则在下一步中请求授权时需要使用这些账户证书。
创建 VPC 后,您可以在 Amazon VPC 控制台中通过查看 VPC 来查找 VPC ID。
-
授权 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 对等连接授权:
-
DescribeVpcPeeringAuthorizations() (AmazonCLI
describe-vpc-peering-authorizations
)。 -
DeleteVpcPeeringAuthorization() (AmazonCLI
delete-vpc-peering-authorization
)。
-
-
按照使用 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,因此对等连接无法成功。