Connect to Windows Server 2016 GameLift Instance with SDK version 5

0

Is it possible to make an RDP connection to a Windows Server 2016 GameLift instance which runs a game server built with SDK version 5 and above?

Here are the steps I follow from the documentation here: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-remote-access.html.

  1. I try to get the instance access details by calling the get-instance-access API. This throws an error and suggests me to use the get-compute-access API instead.
C:\Users\Merih>aws gamelift get-instance-access --fleet-id fleet-7aeb08ab-b5ac-47a2-a77e-f165ded62973 --instance-id i-0559c2e5e5b85679f

An error occurred (InvalidRequestException) when calling the GetInstanceAccess operation: This API does not support fleets using builds integrated with GameLift Server SDK 5 and above. Use the GetComputeAccess operation to access this fleet resource.
  1. When I call the get-compute-access API, I am returned the credentials which I believe can only be used with SSM. It cannot be used for an RDP session.
C:\Users\Merih>aws gamelift get-compute-access --fleet-id fleet-7aeb08ab-b5ac-47a2-a77e-f165ded62973 --compute-name i-0559c2e5e5b85679f
{
    "FleetId": "fleet-7aeb08ab-b5ac-47a2-a77e-f165ded62973",
    "Credentials": {
        "AccessKeyId": "omitted",
        "SecretAccessKey": "omitted",
        "SessionToken": "omitted"
    }
}
  1. I navigate to Session Manager in hoping that I can start a session. However the instance is not listed even though the required IAM role is attached to the instance with AmazonSSMManagedInstanceCore policy.

So, I hit this deadend and I cannot start an RDP session to my Windows Server 2016 GameLift instance.

I see a lot of posts from people who managed to connect to Linux hosts with SSM.

Is it really not possible to connect to Windows if you are using SDK version 5 and above?

Merih
已提問 10 個月前檢視次數 658 次
2 個答案
0
已接受的答案

Hey Merih,

Yes, the expected method for accessing compute on SDK 5 fleets is through SSM; however, you won't be able to create an SSM session through the console. You should be able to connect via the aws cli:

// Step 1 : Acquire credentials to start a session
aws gamelift get-compute-access --fleet-id <fleet_id> --region <region_where_fleet_is_created> --compute-name <instance_id> 

// Step 2: Expected response
{
    "FleetId": "<FleetId>",
    "Credentials": {
        "AccessKeyId": "<ACCESS_KEY_ID_PLACEHOLDER>",
        "SecretAccessKey": "<SECRET_ACCESS_KEY_PLACEHOLDER>",
        "SessionToken": "<SESSION_TOKEN_PLACEHOLDER>"
    }
}

// Step 3: Export credentials obtained from previous call
export AWS_ACCESS_KEY_ID=<ACCESS_KEY_ID_PLACEHOLDER>
export AWS_SECRET_ACCESS_KEY=<SECRET_ACCESS_KEY_PLACEHOLDER>
export AWS_SESSION_TOKEN=<SESSION_TOKEN_PLACEHOLDER>

// Step 4: 
aws ssm start-session --target <instance_id> --region <location_where_instance_exists> 

Let us know if you're still having trouble even with the above steps, and I've reached out to the team about updating our documentation.

Regards!

AWS
已回答 10 個月前
profile picture
專家
已審閱 1 個月前
  • That works perfectly. Thanks Jackson. Now, I need to debug an issue with my game server. How can I download files (e.g.: logs, crash dumps) to my local computer from the instance through an ssm session?

0

Hi Jackson!

I'm now able to connect to the instance and start a PowerShell session.

Thank you very much for your help.

Cheers,

Merih

Merih
已回答 10 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南