Plugin Documentation

CloudDeployer
Dedicated-server infrastructure on AWS, from the editor

Deploy and run your Unreal dedicated servers on AWS without leaving the Unreal Editor: CloudFormation stacks with three ready-made templates, ECR image repositories, Docker build and push, ECS Fargate services and tasks, EC2 instances and Auto Scaling fleets. An editor tab for the everyday work, and Blueprint nodes for Editor Utility Blueprints and Widgets. Built on the official AWS SDK for C++.

v1.0
UE 4.27 & 5.8
Editor · Win64
90 Blueprint nodes
Category Networking
Alpha XP

Overview

CloudDeployer is an editor-only tool. It never ships in your game: it helps you put the dedicated servers of your game on AWS and operate them. Every request runs on a background thread with automatic retries, so the editor never freezes.

  • CloudFormation: validate, create, update, delete, describe and list stacks, read events, outputs and resources, change sets, cost estimates, and Deploy Stack (create-or-update and wait, streaming the events).
  • Three Alpha XP templates in the plugin's Templates folder: an ECS Fargate dedicated-server service, an EC2 Auto Scaling game-server fleet and an ECR repository with a lifecycle policy.
  • ECR + Docker: repositories, images, lifecycle policies, Docker Login To ECR (password through stdin only), Build And Push Image with live output and Generate Dockerfile For Linux Server for your packaged LinuxServer build.
  • ECS: clusters, Fargate task definitions (ports, environment, logs, roles), services (create / update / scale / delete), standalone tasks for match servers, and Get Task Public IP.
  • EC2 and Auto Scaling: instances (start / stop / reboot / terminate), regions, zones, images, security groups and ingress rules, key pairs saved to a file, VPCs and subnets for template parameters; Auto Scaling sizes, activities and process suspension.
  • The CloudDeployer tab (Window > Tools > Alpha XP > CloudDeployer): stack list, deploy panel, live event log, outputs and quick actions.
  • Credentials from your AWS CLI configuration (named profiles, SSO, credential_process, assume-role), static keys or a Cognito identity pool; Get Caller Identity checks them in one click.
  • Every destructive node needs bConfirm = true.

Requirements

RequirementDetails
Unreal Engine4.27 and 5.8 (editor)
PlatformWin64 editor. The plugin has one Editor module and is not packaged into games.
ModulesCloudDeployer (Editor), CloudDeployerSdk (prebuilt AWS SDK for C++ 1.11.916 in Source/ThirdParty)
AWSAn AWS account and credentials with the permissions listed below. Resources you create are billed by AWS.
Docker (optional)Docker Desktop for the Docker nodes (image build and push). Building Linux server images also needs a packaged Linux server build of your project.

Installation

  1. Install CloudDeployer from Fab into your engine, or copy the CloudDeployer folder into your project's Plugins folder.
  2. Enable CloudDeployer in Edit > Plugins and restart the editor.
  3. Open Project Settings > Plugins > CloudDeployer and set the Region. Leave Credential Mode on Default Credential Chain and, if you use several AWS profiles, enter the Profile Name.
  4. Open Window > Tools > Alpha XP > CloudDeployer and press Who Am I: it shows the account and role the editor uses.
Settings are per userCloudDeployer saves its settings in your per-user editor settings (Saved/Config), never in the project's Config folder, so profiles and keys do not end up in source control.
Several AWS plugins in one projectEach Alpha XP cloud plugin carries its own copy of the SDK under a plugin-specific name, so they install side by side.

Setting up AWS

  1. Install the AWS CLI and run aws configure (access keys) or aws configure sso + aws sso login. CloudDeployer reads the same ~/.aws/credentials and ~/.aws/config files.
  2. Use a user or role made for deployments. The policy below covers every node; remove the groups you do not use. Templates also need the permissions of the resources they create (CloudFormation calls them with your credentials).
{
  "Version": "2012-10-17",
  "Statement": [
    { "Sid": "Identity", "Effect": "Allow", "Action": ["sts:GetCallerIdentity"], "Resource": "*" },
    { "Sid": "CloudFormation", "Effect": "Allow",
      "Action": ["cloudformation:ValidateTemplate", "cloudformation:EstimateTemplateCost",
                 "cloudformation:CreateStack", "cloudformation:UpdateStack", "cloudformation:DeleteStack",
                 "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:DescribeStackEvents",
                 "cloudformation:ListStackResources", "cloudformation:CreateChangeSet", "cloudformation:DescribeChangeSet",
                 "cloudformation:ExecuteChangeSet", "cloudformation:DeleteChangeSet"],
      "Resource": "*" },
    { "Sid": "ECR", "Effect": "Allow",
      "Action": ["ecr:GetAuthorizationToken", "ecr:CreateRepository", "ecr:DeleteRepository", "ecr:DescribeRepositories",
                 "ecr:DescribeImages", "ecr:ListImages", "ecr:BatchDeleteImage", "ecr:PutLifecyclePolicy",
                 "ecr:BatchCheckLayerAvailability", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart",
                 "ecr:CompleteLayerUpload", "ecr:PutImage", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer",
                 "ecr:PutImageScanningConfiguration", "ecr:TagResource"],
      "Resource": "*" },
    { "Sid": "ECS", "Effect": "Allow",
      "Action": ["ecs:ListClusters", "ecs:DescribeClusters", "ecs:CreateCluster", "ecs:DeleteCluster",
                 "ecs:RegisterTaskDefinition", "ecs:ListTaskDefinitions", "ecs:DescribeTaskDefinition",
                 "ecs:DeregisterTaskDefinition", "ecs:CreateService", "ecs:UpdateService", "ecs:DeleteService",
                 "ecs:DescribeServices", "ecs:ListServices", "ecs:RunTask", "ecs:StopTask", "ecs:ListTasks",
                 "ecs:DescribeTasks", "ecs:TagResource"],
      "Resource": "*" },
    { "Sid": "PassTaskRoles", "Effect": "Allow", "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::123456789012:role/mygame-*",
      "Condition": { "StringEquals": { "iam:PassedToService": ["ecs-tasks.amazonaws.com", "ec2.amazonaws.com"] } } },
    { "Sid": "EC2", "Effect": "Allow",
      "Action": ["ec2:DescribeInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:RebootInstances",
                 "ec2:TerminateInstances", "ec2:DescribeRegions", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages",
                 "ec2:DescribeSecurityGroups", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateKeyPair",
                 "ec2:DescribeKeyPairs", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeNetworkInterfaces"],
      "Resource": "*" },
    { "Sid": "AutoScaling", "Effect": "Allow",
      "Action": ["autoscaling:DescribeAutoScalingGroups", "autoscaling:SetDesiredCapacity",
                 "autoscaling:UpdateAutoScalingGroup", "autoscaling:DescribeScalingActivities",
                 "autoscaling:SuspendProcesses", "autoscaling:ResumeProcesses"],
      "Resource": "*" }
  ]
}

Per node group: Stacks / Change Sets / Templates need the CloudFormation statement (plus the template's own resource permissions: ecs:*, ec2:*SecurityGroup*, iam:CreateRole / iam:AttachRolePolicy / iam:PassRole / iam:DeleteRole / iam:*InstanceProfile*, logs:CreateLogGroup / logs:PutRetentionPolicy / logs:DeleteLogGroup, ec2:*LaunchTemplate*, autoscaling:CreateAutoScalingGroup / DeleteAutoScalingGroup, ssm:GetParameters for the AMI parameter, ecr:SetRepositoryPolicy). ECR and Docker need the ECR statement (the layer actions are what docker push uses). ECS needs the ECS statement and iam:PassRole on the execution / task roles. EC2, Auto Scaling and Get Caller Identity need their statements. Read-only use (the tab's stack list and logs) only needs the Describe / List / Get actions.

Destructive nodesDelete Stack, Delete Repository, Batch Delete Image, Delete Cluster, Deregister Task Definition, Delete Service, Stop Task and Terminate Instances do nothing unless their Confirm input is true (error code NotConfirmed). The tab asks before deleting a stack.

Quick start

Dedicated servers on Fargate in four steps

  1. Repository: in the tab pick EcrRepository, stack name mygame-ecr, press Validate (parameters appear), set RepositoryName=mygame-server, press Deploy. When it is CREATE_COMPLETE, copy the RepositoryUri output.
  2. Image: package your project for Linux (server target). In an Editor Utility Blueprint: Generate Dockerfile For Linux Server (Project Name, Port 7777) → save it as Dockerfile in the LinuxServer folder (Save String To File) → Build And Push Image with Context Folder = that folder and Image Uri = Make Image Uri(RepositoryUri, 1.0). On Output shows every Docker line.
  3. Network: Describe Vpcs (take the default VPC) and Describe Subnets (public subnets: Map Public Ip On Launch = true).
  4. Servers: in the tab pick EcsFargateServer, stack name mygame-servers, Validate, fill ImageUri, VpcId, Subnets (comma separated), keep Allow IAM checked and press Deploy. The event log follows the deployment. Then List Tasks + Get Task Public IP give the address players connect to (open 1.2.3.4:7777).

The same from Blueprints

Get Bundled Template(EcsFargateServer) → Deploy Stack(Stack Name, Template Body, Parameters map, Capabilities = Named IAM). On Event fires for every stack event, On Succeeded carries the stack with its Outputs (Get Stack Output Value ClusterName). New server version: push the image with a new tag and call Deploy Stack again with only ImageUri in Parameters — the other parameters keep their values.

One server per match

Use the stack's TaskDefinitionArn output with Run Task (Count 1, Network = the stack's subnets and SecurityGroupId, Environment Overrides = map / session id), then poll Get Task Public IP until it succeeds (the error is retryable while the task starts) and Stop Task when the match is over.

The CloudDeployer tab

  • Region / Profile / Apply: switch region and AWS profile for this editor session. Who Am I shows the account and ARN of the credentials. Refresh Stacks reloads the stack list.
  • Stack list: every live stack of the region with status (green complete, amber in progress, red failed / rolled back), last update and description. Select one to load its event log and outputs; stacks that are in progress are followed automatically.
  • Deploy panel: pick a bundled template or Load File... for your own, enter the stack name, Validate lists the template's parameters as Key=Value lines (values you already typed are kept), Deploy creates the stack or updates it when it exists. Allow IAM grants CAPABILITY_IAM / NAMED_IAM / AUTO_EXPAND.
  • Selected stack: Follow events polls every Stack Poll Interval until the stack reaches a final status; Copy Outputs, Open in Console and Delete Stack... (with confirmation).

Bundled templates

NameCreatesKey parametersOutputs
EcsFargateServerECS cluster (Fargate + Fargate Spot), log group, execution and task roles, security group (UDP + TCP game port), task definition, serviceProjectName, ImageUri, GamePort, Cpu, Memory, DesiredCount, VpcId, Subnets, AllowedCidr, AssignPublicIp, UseFargateSpot, LogRetentionDays, ServerArgumentsClusterName, ServiceName, TaskDefinitionArn, SecurityGroupId, LogGroupName, ExecutionRoleArn
Ec2GameFleetInstance role + profile (Session Manager), security group (game port, optional SSH), launch template with a user-data installer, Auto Scaling groupProjectName, ImageId (SSM path, Amazon Linux 2023), InstanceType, KeyName, VpcId, Subnets, GamePort, SshCidr, Min / Max / Desired, ServerArchiveUrl, ServerTarget, ServerArgumentsAutoScalingGroupName, LaunchTemplateId, SecurityGroupId, InstanceRoleArn
EcrRepositoryECR repository with scan-on-push and a lifecycle policyRepositoryName, KeepLastImages, UntaggedExpiryDays, ScanOnPush, ImageTagMutabilityRepositoryUri, RepositoryArn, RepositoryName

The fleet template downloads ServerArchiveUrl (a .zip of the packaged LinuxServer folder, for example a presigned S3 URL) on every instance, unpacks it to /opt/server and runs <ServerTarget>.sh as a systemd service under a non-root user. The templates are plain YAML: copy one, change it and deploy it with Load File.

Docker images

Generate Dockerfile For Linux Server writes a Dockerfile for the packaged LinuxServer folder: Ubuntu base, a non-root ue user (Unreal servers refuse to run as root), executable bits restored (files copied from Windows lose them), EXPOSE of the game port, ENTRYPOINT = the server script and default arguments -log -port=7777 (ECS Command overrides them). Build And Push Image logs in to ECR, runs docker build --progress=plain --platform linux/amd64 and docker push; every output line arrives on On Output. The ECR password is written to Docker's standard input, never to a command line or a log.

Node reference (90 nodes)

Latent nodes (Latent) run in the background, can be stopped with Cancel and fire one final pin on the game thread (Wait For Stack, Deploy Stack and the Docker nodes also fire progress pins). Every Error output is an FCloudDeployerError (Code, Message, Http Status, Retryable). Cluster inputs take a name or ARN; empty = the settings' Default Cluster. Use the nodes in Editor Utility Blueprints and Editor Utility Widgets.

Config and identity

NodeKindInputsOutputsPurpose
Set RegionCallableRegion—Region of every following request.
Set Credential ModeCallableMode—Default chain, static keys or Cognito identity pool.
Set ProfileCallableProfile Name—Named AWS CLI profile (static keys, SSO, process, assume-role); switches to the default chain.
Set Login TokenCallableProvider, Token—Cognito login (Cognito mode).
Clear Login TokensCallable——Forgets logins and the Cognito identity.
Set Static CredentialsCallableAccess Key Id, Secret Access Key, Session Token—In-memory keys for this session.
Get Identity IdPure—Identity IdCognito identity id (Cognito mode).
Make User Pool Provider NamePureRegion, User Pool IdProviderLogin key of a Cognito user pool.
Is ConfiguredPure—Result, ProblemChecks the settings and the SDK library.
Resolve IdentityLatentForce RefreshOn Success / On Failure (Result, Error)Resolves the credentials now.
Get Caller IdentityLatent—On Success / On Failure (Identity, Error)Account, ARN and user id of the credentials (STS).
CancelCallableTarget (any latent node)—Stops waiting; stops Docker commands and stack waits.
Is FinishedPureTargetResultTrue after the node finished or was cancelled.

Stacks and change sets (CloudFormation)

NodeKindInputsOutputsPurpose
Validate TemplateLatentTemplate Body, Template UrlOn Success / On Failure (Template, Error)Parameters with defaults, description, required capabilities.
Create StackLatentStack Name, Template Body, Template Url, Parameters, Capabilities, Tags, On Failure, Timeout Minutes, Termination ProtectionOn Success / On Failure (Result = Stack Id, Error)Starts a stack creation.
Update StackLatentStack Name, Template Body, Template Url, Parameters, Capabilities, Use Previous TemplateResult = Stack Id or NO_CHANGESUpdates; parameters left out keep their values.
Delete StackLatentStack Name, Confirm, Retain ResourcesResult, ErrorDeletes a stack and its resources.
Deploy StackLatentStack Name, Template Body, Parameters, Capabilities, Tags, Poll Interval Seconds, Timeout SecondsOn Succeeded / On Failed / On Progress (Stack, Error), On Event (Event)Create-or-update, then wait with live events.
Wait For StackLatentStack Name, Poll Interval Seconds, Timeout SecondsOn Succeeded / On Failed / On Progress, On EventWaits for a final status; a vanished stack during delete = DELETE_COMPLETE.
Describe StacksLatentStack Name (empty = all)On Success / On Failure (Stacks, Error)Status, parameters, outputs, tags.
List StacksLatentStatus FilterStacks, ErrorSummaries including deleted stacks (90 days).
Describe Stack EventsLatentStack Name, Since, Max EventsEvents, ErrorEvent log, oldest first.
Get Stack OutputsLatentStack NameOutputs, ErrorThe stack's Outputs.
Get Stack ResourcesLatentStack NameResources, ErrorResources with physical ids and status.
Create Change SetLatentStack Name, Change Set Name, Template Body, Template Url, Parameters, Capabilities, For New StackResult = change set idPreview of a create / update.
Describe Change SetLatentStack Name, Change Set NameChange Set, ErrorStatus and planned resource changes (replacement).
Execute Change SetLatentStack Name, Change Set NameResult, ErrorApplies the change set.
Delete Change SetLatentStack Name, Change Set NameResult, ErrorDiscards it.
Estimate Template CostLatentTemplate Body, Template Url, ParametersResult = calculator URLMonthly cost estimate link.
Get Bundled TemplateCallableNameResult, Template BodyReads EcsFargateServer / Ec2GameFleet / EcrRepository.
List Bundled TemplatesPure—NamesTemplates shipped with the plugin.
Load Template FileCallablePathResult, Template BodyReads your own template.
Get Stack Output ValuePureOutputs, KeyResult, ValueOne output by key.
Is Terminal Stack StatusPureStatusResult, SucceededFinal status and success test.
Get Stack Console UrlPureStack Name Or Id, RegionUrlAWS console link (open with Launch URL).

ECR and Docker

NodeKindInputsOutputsPurpose
Create RepositoryLatentRepository Name, Scan On Push, Immutable TagsResult = repository URINew image repository.
Delete RepositoryLatentRepository Name, Confirm, ForceResult, ErrorDeletes it (Force: with images).
Describe RepositoriesLatentNamesRepositories, ErrorURI, ARN, settings.
Describe ImagesLatentRepository Name, Max ResultsImages, ErrorTags, size, push time, newest first.
List ImagesLatentRepository Name, Tag StatusImages, ErrorDigests and tags (fast).
Batch Delete ImageLatentRepository Name, Tags, Digests, ConfirmResult = deleted countDeletes images.
Put Lifecycle PolicyLatentRepository Name, Policy JsonResult, ErrorCleanup rules.
Get ECR Authorization TokenLatent—Auth (Registry Url, User Name, Password, Expires At)Docker credentials (12 h). Never log the password.
Make Image UriPureRepository, Tag, Account Id, RegionUriregistry/repository:tag or @digest.
Make Lifecycle PolicyPureKeep Last Tagged, Expire Untagged After Days, Tag PrefixPolicy JSONReady-made lifecycle policy.
Is Docker AvailableLatent—On Succeeded / On Failed (Result, Error), On OutputDocker CLI and engine check (Result.Value = version).
Docker Login To ECRLatent—Result, Error, On Outputdocker login --password-stdin to the account registry.
Build And Push ImageLatentContext Folder, Dockerfile, Image Uri, Platform, Build Args, Login, PushOn Succeeded / On Failed (Result, Error), On Output (Line)docker build + push with live output.
Generate Dockerfile For Linux ServerPureProject Name, Server Target, Port, Base Image, Extra Args, Tcp PortDockerfile textDockerfile for a packaged LinuxServer build.

ECS

NodeKindInputsOutputsPurpose
List ClustersLatent—Clusters, ErrorClusters with task / service counts.
Create ClusterLatentCluster NameResult = ARNCluster with FARGATE and FARGATE_SPOT.
Delete ClusterLatentCluster, ConfirmResult, ErrorDeletes an empty cluster.
Register Task DefinitionLatentSpec (family, CPU, memory, image, ports, environment, command, logs, roles, ARM64)Task Definition, ErrorFargate server task revision.
List Task DefinitionsLatentFamily Prefix, Max ResultsValues (ARNs), ErrorNewest first.
Describe Task DefinitionLatentTask DefinitionTask Definition, ErrorOne revision.
Deregister Task DefinitionLatentTask Definition, ConfirmResult, ErrorMarks a revision inactive.
Create ServiceLatentCluster, Service Name, Task Definition, Desired Count, Launch Type, NetworkResult = ARNKeeps N servers running.
Update ServiceLatentCluster, Service, Task Definition, Desired Count, Force New DeploymentResult, ErrorRolls to a new revision / count.
Scale ServiceLatentCluster, Service, Desired CountResult, ErrorNumber of server tasks.
Delete ServiceLatentCluster, Service, Confirm, ForceResult, ErrorDeletes the service.
Describe ServicesLatentCluster, ServicesServices, ErrorCounts, rollout state, recent events.
Run TaskLatentCluster, Task Definition, Count, Launch Type, Network, Container Name, Environment Overrides, Started ByTasks, ErrorStandalone (match) servers.
Stop TaskLatentCluster, Task, Confirm, ReasonResult, ErrorStops one task.
List TasksLatentCluster, Service Name, StoppedValues (ARNs), ErrorTask ARNs.
Describe TasksLatentCluster, TasksTasks, ErrorStatus, private IP, network interface.
Get Task Public IPLatentCluster, TaskResult = IPv4Address players connect to.

EC2

NodeKindInputsOutputsPurpose
Describe InstancesLatentInstance Ids, FiltersInstances, ErrorState, IPs, tags.
Start InstancesLatentInstance IdsChanges, ErrorStarts instances.
Stop InstancesLatentInstance Ids, ForceChanges, ErrorStops instances.
Reboot InstancesLatentInstance IdsResult, ErrorReboots instances.
Terminate InstancesLatentInstance Ids, ConfirmChanges, ErrorTerminates instances.
Describe RegionsLatentAll RegionsValues, ErrorRegion names.
Describe Availability ZonesLatent—Values, ErrorZones of the region.
Describe Images (AMI)LatentOwners, Filters, Max ResultsImages, ErrorMachine images, newest first.
Describe Security GroupsLatentGroup Ids, FiltersGroups, ErrorGroups with inbound rules.
Authorize Security Group IngressLatentGroup Id, Protocol, From Port, To Port, Cidr, DescriptionResult = rule idOpens a port range (duplicates = success).
Create Key PairLatentKey Name, Save Path, Ed25519, Putty Format, OverwriteResult = saved pathCreates a key and saves the private key file.
Describe Key PairsLatent—Key Pairs, ErrorKey names for templates.
Describe VpcsLatentFiltersVpcs, ErrorVPCs (default flagged).
Describe SubnetsLatentVpc Id, FiltersSubnets, ErrorSubnets by zone, public flag.

Auto Scaling

NodeKindInputsOutputsPurpose
Describe Auto Scaling GroupsLatentNamesGroups, ErrorSizes, instances, suspended processes.
Set Desired CapacityLatentGroup Name, Desired Capacity, Honor CooldownResult, ErrorFleet size.
Update Auto Scaling GroupLatentGroup Name, Min Size, Max Size, Desired CapacityResult, ErrorLimits (-1 = keep).
Describe Scaling ActivitiesLatentGroup Name, Max RecordsActivities, ErrorRecent launches and terminations.
Suspend ProcessesLatentGroup Name, ProcessesResult, ErrorPauses scaling processes.
Resume ProcessesLatentGroup Name, ProcessesResult, ErrorResumes them.

Editor

NodeKindInputsOutputsPurpose
Open CloudDeployer TabCallable——Opens the tab.
Open File DialogCallableTitle, Default Path, File TypesResult, PathNative file picker.
Open Folder DialogCallableTitle, Default PathResult, FolderNative folder picker.
Save File DialogCallableTitle, Default Path, Default File, File TypesResult, PathNative save-as dialog.

Types

TypeKindMembers
FCloudDeployerErrorStructCode, Message, Http Status, Retryable
FCloudDeployerStackStructStack Name, Stack Id, Status, Status Reason, Description, Creation / Last Updated Time, Parameters, Outputs, Tags, Capabilities, Termination Protection
FCloudDeployerStackEvent / Resource / OutputStructEvent log entries, stack resources, outputs
FCloudDeployerTemplateInfo / ChangeSetStructValidate Template result; change set with resource changes
FCloudDeployerRepository / Image / EcrAuth / ProcessResultStructECR repositories, images, Docker credentials, Docker command results
FCloudDeployerCluster / TaskDefinitionSpec / TaskDefinition / NetworkConfig / Service / Task / PortMappingStructECS inputs and results
FCloudDeployerInstance / InstanceStateChange / Ami / SecurityGroup / IngressRule / KeyPair / Vpc / SubnetStructEC2 results
FCloudDeployerAutoScalingGroup / ScalingActivity / CallerIdentityStructAuto Scaling and STS results
ECloudDeployerCapabilities / OnFailure / LaunchType / TagStatus / CredentialModeEnumNode options

Settings

Project Settings > Plugins > CloudDeployer (saved per user).

SettingDefaultMeaning
Regionus-east-1Region of all requests and of the tab.
Credential ModeDefault Credential ChainAWS CLI configuration / environment; or Static Keys / Cognito Identity Pool.
Profile Name(empty)Named profile of the default chain.
Identity Pool Id, Allow Guest Access—Cognito mode.
Access Key Id, Secret Access Key—Static Keys mode.
Endpoint Override, timeouts, retries, worker threads, Verify SSL, Log SDK Warnings— / 30000 / 5000 / 3 / 4 / on / onConnection.
Stack Poll Interval Seconds5Status checks of Wait For Stack, Deploy Stack and the tab.
Docker ExecutabledockerDocker CLI (PATH or full path).
Docker Platformlinux/amd64Default --platform of Build And Push Image.
Default Cluster(empty)Cluster of ECS nodes whose Cluster pin is empty.
Confirm In TabonAsk before deleting a stack in the tab.

Troubleshooting

Error codeCause and fix
NoCredentialsThe default chain found nothing. Run aws configure or aws sso login --profile X, or set the Profile Name.
NotConfirmedA destructive node ran with Confirm = false.
InsufficientCapabilitiesExceptionThe template creates IAM resources: use Capabilities Named IAM (tab: Allow IAM).
ValidationErrorTemplate or parameter problem; the message names it. "does not exist" = wrong stack name or region.
ROLLBACK_COMPLETEThe first creation failed; read the stack events, delete the stack and deploy again.
AccessDenied / AccessDeniedException / UnauthorizedOperationThe credentials lack a permission (see Setting up AWS).
DockerNotFound / DockerFailedDocker Desktop is not installed / not running, or the build failed (see On Output).
NoNetworkInterface / NoPublicIpThe task is still starting (retry), or it runs without a public IP / in a private subnet.
TimeoutWait For Stack / Deploy Stack hit Timeout Seconds; the operation keeps running on AWS.
UnavailableThe SDK library could not be loaded or the editor is shutting down. Check the Output Log for LogCloudDeployer.

Credits

© 2026 Alpha XP — alphaxp.net · Support: support@alphaxp.net. Includes the AWS SDK for C++ and the AWS Common Runtime (Apache License 2.0). Built for Unreal Engine 4.27 and 5.8.