We want to:
- upload our server build to AWS,
- configure a fleet for it and
- configure user pool, lambdas and rest_api to handle the login and session management
-
Using the IAM Management Console, to create a profile to give to the aws_backend.py script.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "gamelift:*", "apigateway:*", "cognito-idp:*", "iam:GetRole", "iam:PassRole", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:CreateRole", "iam:DeleteRole", "lambda:*" ], "Resource": "*" } ] }
-
I use a user called sean_gl, set permissions in IAM Management console and used aws configure import --csv file://new_user_credentials.csv to add the credentials for it on my PC.
-
Tweak command line aws_backend.py to match your project
-
Run aws_backend.py with no parameters. This will display the default settings. Tweak the following:
Setting Purpose Example prefix represents a namespace for all of the other params potato build_root where to find the UE server build you want to push E:\unreal_projects\ue5_gamelift_plugin_test\MyProject\ServerBuild\WindowsServer fleet_launch_path the server exe to run C:/game/MyProject/Binaries/Win64/MyProjectServer.exe profile the iam profile to use dave region the aws region to use us-west-2 By specifying them on the command line. e.g.
aws_backend.py --prefix=potato --build_root=E:\unreal_projects\ue5_gamelift_plugin_test\MyProject\ServerBuild\WindowsServer -- fleet_launch_path=C:/game/MyProject/Binaries/Win64/MyProjectServer.exe --profile=dave --region=us-west-2
-
-
Upload your build to GameLift
- Using the aws_backend.py command line you configured above add the command 'create build'. e.g.
aws_backend.py --prefix=potato --build_root=E:\unreal_projects\ue5_gamelift_plugin_test\MyProject\ServerBuild\WindowsServer -- fleet_launch_path=C:/game/MyProject/Binaries/Win64/MyProjectServer.exe --profile=dave --region=us-west-2
create build- Use the gamelift dashboard to verify your build has been uploaded
-
Start your fleet
- Using the aws_backend.py command line from above but this time use create fleet
- Use the gamelift dashboard to verify your fleet was created:
- If you see the error "botocore.errorfactory.LimitExceededException: An error occurred (LimitExceededException) when calling the CreateFleet operation: Current limit of fleets of 1 have been reached.", try specifying a different ec2 instance type. e.g.
--fleet_ec2_instance_type=c5a.large
-
Initialize the User Pool
-
Install Lambdas
-
Install Rest API