Amazon GameLift Servers に対する VPC ピアリングのセットアップ
このトピックでは、Amazon GameLift Servers ホストゲームサーバーと他の Amazon GameLift Servers 以外のリソースとの VPC ピアリング接続を設定する方法に関するガイダンスを提供します。Amazon 仮想プライベートクラウド (VPC)ピアリングを使用して、ゲームサーバーがウェブサービスやリポジトリなどの他の AWS リソースと直接かつプライベートに通信を有効にします。AWS で実行されてお客様がアクセス可能な AWS アカウントでマネージドされているすべてのリソースと、VPCピアリングを確立できます。
注記
VPC ピアリング接続は高度な機能です。ゲームサーバーが他の AWS リソースと直接かつプライベートに通信できるようにするための推奨オプションについては、「Amazon GameLift Servers ホストされたゲームサーバーを他の AWS リソースに接続する」を参照してください。
Amazon VPC と VPC ピアリングにすでに精通している場合は、Amazon GameLift Servers ゲームサーバーとのピア接続の設定は多少異なっているのがわかります。ゲームサーバーを含む VPC にアクセスすることはできません (これは Amazon GameLift Servers サービスによってコントロールされます)。そのため、VPC ピアリングを直接リクエストすることはできません。代わりに、最初に Amazon GameLift Servers サービスへのピア接続リクエストを受け入れるために、Amazon GameLift Servers 以外のリソースで VPC を事前承認します。次に、Amazon GameLift Servers をトリガーして、先ほど認可した VPC ピアリング接続をリクエストします。Amazon GameLift Servers はピア接続の作成、ルートテーブルの設定、接続の設定のタスクを処理します。
既存のフリート用に VPC ピアリング接続を設定するには
-
AWS アカウント ID と認証情報を取得します。
以下のAWS アカウントには、ID とサインインの認証情報が必要です。AWS マネジメントコンソール
にサインインしてアカウント設定を表示することで、AWS アカウント ID を確認できます。認証情報を取得するには、IAM コンソールに移動します。 -
Amazon GameLift Servers ゲームサーバーの管理に使用する AWS アカウント。
-
Amazon GameLift Servers 以外のリソースの管理に使用する AWS アカウント。
同じアカウントを Amazon GameLift Servers リソースと Amazon GameLift Servers 以外のリソースに使用している場合は、そのアカウントのみの ID と認証情報が必要です。
-
-
各 VPC の識別子を取得します。
ピア接続される 2 つの VPC について以下の情報を取得します。
-
Amazon GameLift Servers ゲームサーバー用の VPC - ユーザーの Amazon GameLift Servers フリート ID。ゲームサーバーは、EC2 インスタンスのフリート上の Amazon GameLift Servers にデプロイされます。フリートは、Amazon GameLift Servers サービスによって管理される専用の VPC に自動的に配置されます。VPC への直接アクセスは許可されないため、VPC はフリート ID によって識別されます。
-
Amazon GameLift Servers AWS 以外のリソース用の VPC - AWS 上で実行され、AWS アカウントによって管理され、あなたがアクセスできる任意のリソースと VPC ピアリングを確立できます。これらのリソース用の VPC をまだ作成していない場合は、「Amazon VPC の開始方法」を参照してください。VPC を作成したら、Amazon VPC の AWS マネジメントコンソール
にサインインして VPC を一覧表示することで VPC ID を確認できます。
注記
ピア接続を設定するときは、両方の VPC が同じリージョンに存在する必要があります。Amazon GameLift Servers フリートゲームサーバー用の VPC はフリートと同じリージョンにあります。
-
-
VPC ピアリング接続を認可します。
このステップでは、Amazon GameLift Servers への今後のリクエストを事前認可して、ゲームサーバーを含む VPC を、Amazon GameLift Servers 以外のリソース用の VPC にピア接続します。このアクションにより、VPC のセキュリティグループが更新されます。
VPC ピアリング接続を承認するには、サービス API CreateVpcPeeringAuthorization() を呼び出すか、AWS CLI コマンド
create-vpc-peering-authorizationを使用します。Amazon GameLift Servers 以外のリソースを管理するアカウントを使用してこの呼び出しを行います。以下の情報を識別します。-
ピア VPC ID - Amazon GameLift Servers 以外のリソース用の VPC の ID。
-
Amazon GameLift Servers AWS アカウント ID - Amazon GameLift Servers フリートの管理に使用するアカウント。
VPC ピアリング接続を承認した後は、取り消されない限り、24 時間有効です。以下の操作を使用して、VPC ピアリング接続承認を管理できます。
-
DescribeVpcPeeringAuthorizations() (AWS CLI
describe-vpc-peering-authorizations)。 -
DeleteVpcPeeringAuthorization() (AWS CLI
delete-vpc-peering-authorization)。
-
-
ピア接続をリクエストします。
有効な認可があれば、Amazon GameLift Servers にピア接続の確立をリクエストできます。
VPC ピアリング接続をリクエストするには、サービス API の CreateVpcPeeringConnection() を呼び出すか、AWS CLI コマンド
create-vpc-peering-connectionを使用します。Amazon GameLift Servers ゲームサーバーを管理するアカウントを使用してこの呼び出しを行います。以下の情報を使用して、ピア接続する 2 つの VPC を指定します。-
ピア VPC ID とAWS アカウント ID は、Amazon GameLift Servers 以外のリソース用の VPC と、それらのリソースを管理するために使用するアカウントです。VPC ID は有効なピア接続認可の ID と一致する必要があります。
-
フリート ID - Amazon GameLift Servers ゲームサーバー用の VPC を識別します。
-
-
ピア接続のステータスを追跡します。
VPC ピアリング接続のリクエストは、非同期操作です。ピア接続リクエストのステータスを追跡し、成功または失敗のケースを処理するには、次のいずれかのオプションを使用します。
-
DescribeVpcPeeringConnections()を使用して継続的にポーリングします。この操作では、リクエストのステータスを含む VPC ピアリング接続レコードが取得されます。ピア接続が正常に作成された場合、接続レコードには、VPC に割り当てられたプライベート IP アドレスの CIDR ブロックも含まれます。 -
成功イベントと失敗イベントを含む DescribeFleetEvents() の VPC ピアリング接続に関連付けられたフリートイベントを処理します。
-
ピア接続が確立されると、以下のオペレーションを使用してその接続を管理できます。
-
DescribeVpcPeeringConnections() (AWS CLI
describe-vpc-peering-connections)。 -
DeleteVpcPeeringConnection() (AWS CLI
delete-vpc-peering-connection)。
新しいフリートとの VPC ピアリング接続を設定するには
新しい Amazon GameLift Servers フリートを作成し、VPC ピアリング接続を同時にリクエストできます。
-
AWS アカウント ID と認証情報を取得します。
次の 2 つの AWS アカウントには、ID とサインインの認証情報が必要です。AWS マネジメントコンソール
にサインインしてアカウント設定を表示することで、AWS アカウント ID を確認できます。認証情報を取得するには、IAM コンソールに移動します。 -
Amazon GameLift Servers ゲームサーバーの管理に使用する AWS アカウント。
-
Amazon GameLift Servers 以外のリソースの管理に使用する AWS アカウント。
同じアカウントを Amazon GameLift Servers リソースと Amazon GameLift Servers 以外のリソースに使用している場合は、そのアカウントのみの ID と認証情報が必要です。
-
-
Amazon GameLift Servers 以外の AWS リソース用の VPC ID を取得します。
これらのリソースの VPC をまだ作成していない場合は、ここで作成してください (「Amazon VPC の開始方法」を参照)。新しいフリートを作成する予定の同じリージョンに新しい VPC を作成してください。Amazon GameLift Servers 以外のリソースが、Amazon GameLift Servers で使用するものとは異なる AWS アカウントまたはユーザー/ユーザーグループ下で管理されている場合、次のステップで認可をリクエストするときに、これらのアカウント認証情報を使用する必要があります。
VPC を作成したら、VPC を表示して Amazon VPC コンソールで VPC ID を見つけることができます。
-
Amazon GameLift Servers 以外のリソースとの VPC ピアリング接続を承認します。
Amazon GameLift Servers によって新しいフリートおよび対応する VPC が作成されるとき、Amazon GameLift Servers 以外のリソース用の VPC にピア接続するためのリクエストも送信されます。そのリクエストを事前承認する必要があります。このステップにより、VPC のセキュリティグループが更新されます。
Amazon GameLift Servers 以外のリソースを管理するアカウント認証情報を使用して、 サービス API CreateVpcPeeringAuthorization() を呼び出すか、AWS CLI コマンド
create-vpc-peering-authorizationを使用します。以下の情報を識別します。-
ピア VPC ID - Amazon GameLift Servers 以外のリソース用の VPC の ID。
-
Amazon GameLift Servers AWS アカウント ID - Amazon GameLift Servers フリートを管理するために使用するアカウントの ID です。
VPC ピアリング接続を承認した後は、取り消されない限り、24 時間有効です。以下の操作を使用して、VPC ピアリング接続承認を管理できます。
-
DescribeVpcPeeringAuthorizations() (AWS CLI
describe-vpc-peering-authorizations)。 -
DeleteVpcPeeringAuthorization() (AWS CLI
delete-vpc-peering-authorization)。
-
-
AWS CLI を使用して新しいフリートを作成する手順に従います。以下の追加のパラメータを含めます。
-
peer-vpc-aws-account-id - Amazon GameLift Servers 以外のリソース用の VPC を管理するために使用するアカウントの ID。
-
peer-vpc-id – Amazon GameLift Servers 以外のアカウント用の VPC のID。
-
VPC ピアリング接続パラメータを設定した create-fleet の呼び出しが成功すると、新しいフリートと新しい VPC ピアリング接続リクエストの両方が生成されます。フリートのステータスは New に設定され、フリートのアクティブ化プロセスが開始されます。ピア接続リクエストのステータスは initiating-request に設定されます。describe-vpc-peering-connections を呼び出して、ピアリングリクエストの成否を追跡できます。
新しいフリートと VPC ピアリング接続の両方をリクエストすると、両方のアクションが成功するか失敗します。フリートの作成プロセス中にエラーが発生すると、VPC ピアリング接続は確立されません。同様に、VPC ピアリング接続が何らかの理由で失敗した場合も、新しいフリートのステータスは [アクティブ化中] から [アクティブ] に移行しません。
注記
新しい VPC ピアリング接続は、フリートがアクティブになる準備が整うまで完了しません。これは、その接続が利用可能になっておらず、ゲームサーバービルドのインストールプロセス中に使用できないことを意味します。
以下の例では、新しいフリートと、事前に確立された VPC と新しいフリートの VPC 間のピア接続の両方を作成します。事前設定された VPC は、Amazon GameLift Servers 以外の AWS アカウント ID と VPC 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 Servers ゲームサーバーの VPC ピアリング接続の確立に問題がある場合は、以下の一般的な根本原因を検討してください。
-
リクエストされた接続の認可が見つからなかった。
-
Amazon GameLift Servers 以外の VPC の VPC 認可のステータスを確認します。存在しないか、有効期限が切れている可能性があります。
-
ピア接続しようとしている 2 つの VPC のリージョンを確認します。それらが同じリージョンにない場合は、ピア接続できません。
-
-
2 つの VPC の CIDR ブロック (「無効な VPC ピアリング接続設定」を参照) が重複している。ピア接続された VPC に割り当てられた IPv4 CIDR ブロックは、重複することはできません。Amazon GameLift Servers フリートの VPC の CIDR ブロックは自動的に割り当てられ、変更できません。そのため、Amazon GameLift Servers 以外のリソース用の VPC の CIDR ブロックを変更する必要があります。この問題を解決するには。
-
Amazon GameLift Servers を呼び出して、
DescribeVpcPeeringConnections()フリートのこの CIDR ブロックを検索します。 -
Amazon VPC コンソールに移動し、Amazon GameLift Servers 以外のリソース用の VPC を見つけて、それらが重複しないように CIDR ブロックを変更します。
-
-
新しいフリートがアクティブにならなかった (新しいフリートとの VPC ピアリング接続のリクエスト時)。新しいフリートが [アクティブ] ステータスに移行しなかった場合、ピア接続する VPC がないため、ピア接続は成功しません。