Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
5.8 kB
Markdown
Cloud VM Management Guide #
Quick reference for managing your UE5 build VM across different cloud providers.
Google Cloud Platform #
Create VM #
./scripts/create-gcp-vm.sh YOUR_PROJECT_ID us-central1-a
Stop VM (save costs) #
gcloud compute instances stop ue5-builder-spiderlily --zone=us-central1-a
Start VM #
gcloud compute instances start ue5-builder-spiderlily --zone=us-central1-a
Connect via RDP #
# Get external IP
gcloud compute instances describe ue5-builder-spiderlily --zone=us-central1-a --format="get(networkInterfaces[0].accessConfigs[0].natIP)"
# Reset password if needed
gcloud compute reset-windows-password ue5-builder-spiderlily --zone=us-central1-a --user=builduser
Delete VM #
gcloud compute instances delete ue5-builder-spiderlily --zone=us-central1-a
Check costs #
# View billing
gcloud billing accounts list
gcloud billing projects describe YOUR_PROJECT_ID
AWS EC2 #
Create VM #
# Via AWS Console or CLI
aws ec2 run-instances \
--image-id ami-xxxxx \
--instance-type c6i.4xlarge \
--key-name your-key \
--security-group-ids sg-xxxxx \
--block-device-mappings DeviceName=/dev/sda1,Ebs={VolumeSize=500,VolumeType=gp3}
Stop Instance #
aws ec2 stop-instances --instance-ids i-xxxxx
Start Instance #
aws ec2 start-instances --instance-ids i-xxxxx
Get Windows Password #
aws ec2 get-password-data --instance-id i-xxxxx --priv-launch-key your-key.pem
Terminate Instance #
aws ec2 terminate-instances --instance-ids i-xxxxx
Azure #
Create VM #
az vm create \
--resource-group ue5-builder-rg \
--name ue5-builder \
--image Win2022Datacenter \
--size Standard_D16s_v5 \
--admin-username builduser \
--admin-password 'YourPassword123!'
Stop VM (deallocate) #
az vm deallocate --resource-group ue5-builder-rg --name ue5-builder
Start VM #
az vm start --resource-group ue5-builder-rg --name ue5-builder
Get IP #
az vm show -d --resource-group ue5-builder-rg --name ue5-builder --query publicIps -o tsv
Delete VM #
az vm delete --resource-group ue5-builder-rg --name ue5-builder --yes
Cost-Saving Tips #
Run Only During Work Hours #
GCP Scheduled Stop/Start:
# Stop at 6 PM (18:00)
gcloud compute instances add-metadata ue5-builder-spiderlily --zone=us-central1-a \
--metadata=shutdown-script="shutdown /s /f /t 0"
# Use Cloud Scheduler to start/stop on schedule
AWS Scheduled Actions:
# Create schedules via AWS Console or EventBridge
aws autoscaling put-scheduled-action \
--auto-scaling-group-name ue5-builder-asg \
--scheduled-action-name stop-evening \
--recurrence "0 18 * * *" \
--min-size 0
Use Preemptible/Spot Instances #
GCP Preemptible (70-90% discount):
gcloud compute instances create ue5-builder-preemptible \
--preemptible \
--machine-type n2-standard-16 \
...
AWS Spot Instances (50-90% discount):
aws ec2 request-spot-instances \
--instance-count 1 \
--type persistent \
--launch-specification file://spec.json
Caveat: Can be terminated at any time - not good for long builds!
Resize When Not Building #
Downsize to smaller instance during idle periods:
GCP:
gcloud compute instances set-machine-type ue5-builder-spiderlily \
--zone=us-central1-a \
--machine-type=n2-standard-4
AWS:
aws ec2 modify-instance-attribute \
--instance-id i-xxxxx \
--instance-type c6i.xlarge
Monitoring Costs #
GCP #
# View current month costs
gcloud billing accounts describe YOUR_BILLING_ACCOUNT
# Set budget alerts in Console
# https://console.cloud.google.com/billing/budgets
AWS #
# View costs
aws ce get-cost-and-usage \
--time-period Start=2025-10-01,End=2025-10-31 \
--granularity MONTHLY \
--metrics BlendedCost
Azure #
# View costs
az consumption usage list --start-date 2025-10-01 --end-date 2025-10-31
Automation Scripts #
Auto-start on build trigger (optional) #
Create a GitHub Action that starts the VM before building:
- name: Start GCP VM
run: |
gcloud compute instances start ue5-builder-spiderlily --zone=us-central1-a
sleep 60 # Wait for boot
Auto-stop after build #
Add to workflow:
- name: Stop VM
if: always()
run: |
gcloud compute instances stop ue5-builder-spiderlily --zone=us-central1-a
Backup and Snapshots #
GCP Disk Snapshot #
gcloud compute disks snapshot ue5-builder-spiderlily \
--snapshot-names=ue5-backup-$(date +%Y%m%d) \
--zone=us-central1-a
AWS EBS Snapshot #
aws ec2 create-snapshot \
--volume-id vol-xxxxx \
--description "UE5 builder backup"
Create Machine Image (for quick restore) #
GCP:
gcloud compute images create ue5-builder-image \
--source-disk=ue5-builder-spiderlily \
--source-disk-zone=us-central1-a
Troubleshooting #
VM won't start #
- Check quotas (GCP: IAM & Admin > Quotas)
- Verify billing account is active
- Check instance logs in cloud console
Can't connect via RDP #
- Verify firewall rules allow port 3389
- Check external IP hasn't changed
- Reset Windows password
High costs #
- Check VM is stopping properly after builds
- Verify no orphaned disks/snapshots
- Use preemptible/spot instances for testing
- Consider smaller VM size
Best Practices #
- Tag resources for easy tracking and cost allocation
- Set up billing alerts to avoid surprises
- Use snapshots before major changes
- Stop VM when not actively building
- Monitor usage weekly
- Test with smaller VM first, then scale up if needed