本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 VPC 连接
本节将指导您使用配置 Amazon Stre GameLift ams 流组的 VPC 连接 AWS CLI。
步骤 1:使用 VPC 配置创建直播组
创建直播群组时,请在位置配置中加入VpcTransitConfiguration参数。指定您的 VPC ID 和您的流媒体应用程序需要访问的 CIDR 块。
aws gameliftstreams create-stream-group \ --description "Stream group with VPC connectivity" \ --stream-class gen5n_high \ --default-application-identifier arn:aws:gameliftstreams:us-west-2:123456789012:application/a-ABC123def \ --location-configurations '[{ "LocationName": "us-west-2", "AlwaysOnCapacity": 1, "VpcTransitConfiguration": { "VpcId": "vpc-0123456789abcdef0", "Ipv4CidrBlocks": ["10.0.0.0/16"] } }]'
等待直播群组变为活动状态:
aws gameliftstreams wait stream-group-active \ --identifier sg-1AB2C3De4
当直播组状态为时ACTIVE,获取直播组详细信息并记下响应中的以下值:
aws gameliftstreams get-stream-group \ --identifier sg-1AB2C3De4
-
TransitGatewayId— 由 Amazon GameLift Streams 创建的公交网关的 ID。 -
TransitGatewayResourceShareArn— RAM 资源共享的 ARN。 -
InternalVpcIpv4CidrBlock— 您需要添加到路由表中的服务 VPC 的 CIDR 块。
步骤 2:接受 RAM 资源共享
接受资源共享邀请以获得对公交网关的访问权限:
# Get the resource share invitation aws ram get-resource-share-invitations \ --resource-share-arns arn:aws:ram:us-west-2:123456789012:resource-share/abc12345-1234-1234-1234-abc123456789 # Accept the invitation aws ram accept-resource-share-invitation \ --resource-share-invitation-arn arn:aws:ram:us-west-2:123456789012:resource-share-invitation/abc12345-1234-1234-1234-abc123456789
步骤 3:创建 VPC 附件
将您的 VPC 连接到传输网关。您需要从您的 VPC 中指定至少一个子网:
# Get your subnet IDs aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=vpc-0123456789abcdef0" \ --query "Subnets[*].SubnetId" # Create the VPC attachment aws ec2 create-transit-gateway-vpc-attachment \ --transit-gateway-id tgw-0123456789abcdef0 \ --vpc-id vpc-0123456789abcdef0 \ --subnet-ids subnet-0123456789abcdef0 subnet-0123456789abcdef1
等待附件变为可用:
aws ec2 describe-transit-gateway-vpc-attachments \ --transit-gateway-attachment-ids tgw-attach-0123456789abcdef0 \ --query "TransitGatewayVpcAttachments[0].State"
第 4 步:配置路由
在您的 VPC 路由表中添加一条路由,以便通过中转网关引导发往服务 VPC 的流量。使用直播组响应中的InternalVpcIpv4CidrBlock值:
# Get your route table ID aws ec2 describe-route-tables \ --filters "Name=vpc-id,Values=vpc-0123456789abcdef0" \ --query "RouteTables[*].RouteTableId" # Add the route aws ec2 create-route \ --route-table-id rtb-0123456789abcdef0 \ --destination-cidr-block 10.1.0.0/16 \ --transit-gateway-id tgw-0123456789abcdef0
注意
10.1.0.0/16替换为直播组中的实际InternalVpcIpv4CidrBlock值。
(可选)步骤 5:更新安全组
连接到 VPC 中的 EC2 实例时,请更新 EC2 实例的安全组以允许来自服务 VPC CIDR 块的入站流量,这样您的应用程序就可以将流量发送到您的 EC2 实例:
aws ec2 authorize-security-group-ingress \ --group-id sg-0123456789abcdef0 \ --protocol tcp \ --port 443 \ --cidr 10.1.0.0/16
注意
将以下值替换为实际配置:
-
sg-0123456789abcdef0— 您的私有资源的安全组 ID。 -
tcp— 您的应用程序使用的协议(tcp 或 udp)。 -
443— 您的应用程序监听的端口号。 -
10.1.0.0/16— 来自您的直播群组的InternalVpcIpv4CidrBlock值。
(可选)步骤 6:更新 CIDR 块
您可以更新直播组位置的 VPC 连接配置的 CIDR 块,而无需重新创建直播组。当您需要扩展或修改您的流媒体应用程序可在您的 VPC 中访问的 IP 地址范围时,这非常有用。
要更新 CIDR 块,请使用 UpdateStreamGroup API:
aws gameliftstreams update-stream-group \ --identifier sg-1AB2C3De4 \ --location-configurations '[{ "LocationName": "us-west-2", "VpcTransitConfiguration": { "VpcId": "vpc-0123456789abcdef0", "Ipv4CidrBlocks": ["10.0.0.0/16", "10.2.0.0/16"] } }]'
更新 CIDR 块后,Amazon GameLift Streams 会自动更新服务托管 VPC 中的路由配置。
注意
更新 CIDR 块时,无法更改 VPC ID。要连接到其他 VPC,您必须删除并重新创建直播组位置(适用于主位置以外的直播位置)或创建新的直播组(用于主位置)。