本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於亞馬遜的 VPC 對等互連 GameLift
本主題提供有關如何在 Amazon GameLift 託管的遊戲伺服器與其他非 Amazon 資源之間設定 VPC 對等連接的指引。GameLift使用 Amazon 虛擬私有雲 (VPC) 對等連線,讓遊戲伺服器能夠直接和私密地與其他AWS資源 (例如 Web 服務或存放庫) 進行通訊。您可以使用任何在上執行的資源建立 VPC 對等互連,AWS並由您有權存取的AWS帳戶管理。
注意
VPC 對等互連是進階功能。若要瞭解啟用遊戲伺服器與其他AWS資源直接和私密通訊的偏好選項,請參閱與機群中的其他 AWS 資源通訊。
如果您已經熟悉 Amazon VPC 和 VPC 對等互連,請瞭解設定與 Amazon GameLift 遊戲伺服器的對等互連會有所不同。您無法存取包含遊戲伺服器的 VPC (由 Amazon GameLift 服務控制),因此您無法直接請求 VPC 對等互連。相反地,您必須先使用非 Amazon GameLift 資源預先授權 VPC,以接受來自 Amazon 服務的對等請求。GameLift然後,您會觸發 Amazon GameLift 要求您剛才授權的 VPC 對等互連。Amazon 會GameLift處理建立對等連線、設定路由表和設定連線的任務。
為現有機群設定 VPC 對等互連
-
獲取AWS帳戶 ID 和憑據。
您需要下列AWS帳戶的 ID 和登入認證。您可以登入AWS Management Console
並檢視您的AWS帳戶設定,以尋找帳戶 ID。若要取得登入資料,請前往 IAM 主控台。 -
AWS您用來管理 Amazon GameLift 遊戲伺服器的帳戶。
-
AWS您用來管理非 Amazon GameLift 資源的帳戶。
如果您對 Amazon GameLift 和非 Amazon GameLift 資源使用相同的帳戶,則只需要該帳戶的 ID 和登入資料。
-
-
取得每個 VPC 的識別符。
取得要進行對等互連兩個 VPC 的以下資訊:
-
適用於您的亞馬遜GameLift遊戲伺服器的 VPC — 這是您的亞馬遜GameLift車隊 ID。您的遊戲伺服器是在 EC2 執行個體叢集GameLift上部署在 Amazon 中。叢集會自動放置在自己的 VPC 中,該 VPC 由 Amazon GameLift 服務管理。您無法直接存取 VPC,因此可由叢集 ID 識別。
-
適用於非 Amazon GameLift AWS 資源的 VPC — 您可以使用任何在其上執行AWS並由您可存取的AWS帳戶管理的資源建立 VPC 對等互連。如果您尚未為這些資源建立 VPC,請參閱開始使用 Amazon V PC。建立 VPC 後,您可以透過登入 Amazon VPC 的 AWS Management Console
並檢視您的 VPC,來找到 VPC ID。
注意
設定對等互連時,兩個 VPC 都必須存在相同區域。Amazon GameLift 叢集遊戲伺服器的虛擬私人雲端與叢集位於同一個區域。
-
-
授權 VPC 對等。
在此步驟中,您將預先授權來自 Amazon 的未來請求,GameLift以將 VPC 與您的遊戲伺服器與非 Amazon 資源的 VPC 對等。GameLift此動作會更新 VPC 的安全群組。
若要授權 VPC 對等互連,請呼叫亞馬遜GameLift服務 API CreateVpcPeeringAuthorization() 或使用 AWS CLI 命令。
create-vpc-peering-authorization
使用管理非 Amazon GameLift 資源的帳戶進行此呼叫。請識別以下資訊:-
對等虛擬私人雲端 ID — 這適用於包含您非 GameLift Amazon 資源的虛擬私人雲端。
-
亞馬遜GameLiftAWS帳戶 ID — 這是您用來管理亞馬遜GameLift車隊的帳戶。
授權 VPC 對等互連後,除非已撤銷,否則授權在 24 小時內有效。您可以使用以下操作來管理 VPC 對等授權:
-
DescribeVpcPeeringAuthorizations() (AWSCLI
describe-vpc-peering-authorizations
)。 -
DeleteVpcPeeringAuthorization() (AWSCLI
delete-vpc-peering-authorization
)。
-
-
要求對等連線。
透過有效的授權,您可以要求 Amazon GameLift 建立對等連線。
若要請求 VPC 對等互連,請呼叫亞馬遜GameLift服務 API CreateVpcPeeringConnection() 或使用 AWS CLI 命令。
create-vpc-peering-connection
使用管理 Amazon GameLift 遊戲伺服器的帳戶撥打此電話。使用下列資訊來識別您要建立對等互連的兩個 VPC:-
對等虛擬私人雲端 ID 和AWS帳戶 ID — 這是您非 Amazon GameLift 資源的虛擬私人雲端,以及您用來管理這些資源的帳戶。VPC ID 必須與有效對等授權上的 ID 相符。
-
叢集 ID — 這可識別您 Amazon GameLift 遊戲伺服器的虛擬私人雲端。
-
-
追蹤對等連線狀態。
要求 VPC 對等連線是一種非同步操作。若要追蹤對等請求的狀態並處理成功或失敗情況,請使用以下其中一個選項:
-
使用
DescribeVpcPeeringConnections()
持續輪詢。這個操作會擷取 VPC 對等連線記錄 (包括請求的狀態)。如果成功建立對等連線,連線記錄還包含指派給 VPC 之私有 IP 地址的 CIDR 區塊。 -
使用 DescribeFleetEvents() 處理與 VPC 對等連線相關聯的叢集事件,包括成功和失敗事件。
-
建立對等連線之後,您可以使用下列操作來進行管理:
-
DescribeVpcPeeringConnections() (AWSCLI
describe-vpc-peering-connections
)。 -
DeleteVpcPeeringConnection() (AWSCLI
delete-vpc-peering-connection
)。
使用新機群設定 VPC 對等
您可以建立新的 Amazon GameLift 叢集,並同時要求 VPC 對等連線。
-
獲取AWS帳戶 ID 和憑據。
您需要下列兩個AWS帳戶的 ID 和登入認證。您可以登入AWS Management Console
並檢視您的AWS帳戶設定,以尋找帳戶 ID。若要取得登入資料,請前往 IAM 主控台。 -
AWS您用來管理 Amazon GameLift 遊戲伺服器的帳戶。
-
AWS您用來管理非 Amazon GameLift 資源的帳戶。
如果您對 Amazon GameLift 和非 Amazon GameLift 資源使用相同的帳戶,則只需要該帳戶的 ID 和登入資料。
-
-
取得您非亞馬遜GameLiftAWS資源的虛擬私人雲端識別碼。
如果您尚未為這些資源建立 VPC,請立即執行 (請參閱開始使用 Amazon VPC)。請確定您已在計劃建立新機群的相同區域中建立新 VPC。如果您的非 Amazon GameLift 資源在與 Amazon 使用的AWS帳戶或使用者/使用者群組不同的帳戶或使用者/使用者群組下進行管理GameLift,則在下一步要求授權時,您將需要使用這些帳戶登入資料。
一旦建立了 VPC,您可以透過檢視 VPC,在 Amazon VPC 主控台中尋找 VPC ID。
-
使用非 GameLift Amazon 資源授權 VPC 對等互連。
當 Amazon GameLift 建立新叢集和對應的 VPC 時,它也會針對您的非 GameLift Amazon 資源向虛擬私人雲端傳送請求給對等。您需要預先授權該請求。此步驟會更新您 VPC 的安全群組。
使用管理非亞馬遜GameLift資源的帳戶登入資料,呼叫亞馬遜GameLift服務 API CreateVpcPeeringAuthorization() 或使用 AWS CLI 命令
create-vpc-peering-authorization
。請識別以下資訊:-
對等虛擬私人雲端 ID — 虛擬私人雲端的識別碼與您的非 GameLift Amazon 資源一起使用。
-
亞馬遜GameLiftAWS帳戶 ID — 您用來管理 Amazon GameLift 叢集的帳戶識別碼。
授權 VPC 對等互連後,除非已撤銷,否則授權在 24 小時內有效。您可以使用以下操作來管理 VPC 對等授權:
-
DescribeVpcPeeringAuthorizations() (AWSCLI
describe-vpc-peering-authorizations
)。 -
DeleteVpcPeeringAuthorization() (AWSCLI
delete-vpc-peering-authorization
)。
-
-
遵循使用 AWSCLI 建立新叢集的指示。包含下列其他參數:
-
peer-vpc-aws-account-id — 您用來管理虛擬私人雲端 (包含非 GameLift Amazon 資源) 的帳戶識別碼。
-
peer-vpc-id— VPC 的 ID 與您的非GameLift帳戶.
-
使用 VPC 對等互連參數成功呼叫 create-fleet 會產生新的叢集及新的 VPC 對等互連請求。會將機群狀態設為新建且會起始化機群啟動程序。對等連線請求的狀態是設定為 initiating-request。您可以透過呼describe-vpc-peering-connections叫來追蹤對等連線要求的成功或失敗。
同時請求新機群和 VPC 對等連線時,兩個動作會一起成功或失敗。若叢集在建立程序期間失敗,便不會建立 VPC 對等互連。同樣地,若 VPC 對等互連因任何原因失敗,新叢集也將無法從正在啟用狀態移動到作用中狀態。
注意
在機群準備好成為作用中前,新 VPC 對等連線都未完成。這表示連線無法使用,且無法在遊戲伺服器建置安裝程序中使用。
下列範例會在預先建立的 VPC 和新機群的 VPC 之間建立新機群和對等連線。預先建立的 VPC 會透過您的非 Amazon GameLift AWS 帳戶 ID 和虛擬私人雲端 ID 的組合進行唯一識別。
$ 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 的 CIDR 區塊 (請參閱無效的 VPC 對等連線組態) 會重疊。指派給對等 VPC 的 IPv4 CIDR 區塊不能重疊。您 Amazon GameLift 叢集的 VPC CIDR 區塊會自動指派且無法變更,因此您必須針對非 Amazon 資源變更 VPC 的 CIDR 區塊。GameLift若要解決此問題:
-
通過電話
DescribeVpcPeeringConnections()
查找您的亞馬遜GameLift車隊的這個 CIDR 塊。 -
前往 Amazon VPC 主控台,尋找非 Amazon GameLift 資源適用的 VPC,然後變更 CIDR 區塊,使其不會重疊。
-
-
新的機群未啟用 (在與新機群請求 VPC 對等時)。如果新機群無法進入作用中狀態,表示沒有可以建立對等互連的 VPC,因此對等連線無法成功。