Cloud Evaluation with AWS

July 17, 2025 ยท View on GitHub

For standardized benchmarking, we leverage Terraform by HashiCorp to provision a consistent AWS environment.

Before proceeding, please install the AWS CLI and Terraform.

Consult the Terraform configuration, variables file, and setup script for detailed information. We recommend the use of Amazon EC2 C6i Instances for fair evaluations.

Recommended num_workers (parallel evaluations): Set num_workers to at most the number of physical cores of your instance, as most solutions are CPU-bound.

InstancevCPUsMemory (GiB)Max num_workersMax num_workers (w/ Vis Server)
c6i.xlarge4821
c6i.2xlarge81643
c6i.4xlarge163287
c6i.8xlarge32641615
c6i.12xlarge48962423
c6i.16xlarge641283231
c6i.24xlarge961924847
c6i.32xlarge1282566463
c6i.metal1282566463

Workflow:

  1. Initialize & Apply Terraform: Before applying, ensure you have an AWS key pair ready. You will need to provide the path to your public key. It is also highly recommended to restrict SSH access to your IP address for security.

    cd cloud
    terraform init
    terraform apply \
      -var "ssh_public_key_path=</path/to/your/key.pub>" \
      -var "aws_key_name=your-key-pair-name" \
      -var "allowed_ssh_cidr=YOUR_IP_ADDRESS/32" \
      -var "instance_type=c6i.32xlarge" \
      -var "region=us-east-1"
    # Replace </path/to/your/key.pub> with the actual path to your public key.
    # Replace your-key-pair-name with a unique name for the key pair that will be created in AWS.
    # Replace YOUR_IP_ADDRESS/32 with your actual public IP address CIDR (e.g., 123.45.67.89/32).
    # Confirm with 'yes' or use -auto-approve option to skip confirmation
    

    The aws_key_name variable specifies the name of the key pair to be created in AWS using your provided public key. Ensure the corresponding private key is used for SSH access.

  2. Connect to the EC2 Instance:

    ssh -i /path/to/your/key.pem ubuntu@<INSTANCE_PUBLIC_IP>
    
  3. Verify Setup:

    # Check cloud-init logs for successful completion (This setup takes ~10-20 minutes)
    cat /var/log/cloud-init-output.log
    # Look for "ALE-Bench setup completed!" in green text
    
    # Confirm ALE-Bench directory and activate virtual environment
    ls /home/ubuntu/ALE-Bench
    source /home/ubuntu/ALE-Bench/.venv/bin/activate
    
  4. Terminate Instance:

    cd cloud # (Run from your local machine, where the terraform state is located)
    terraform destroy -var "ssh_public_key_path=</path/to/your/key.pub>" -var "region=us-east-1"
    # Confirm with 'yes' or use -auto-approve option to skip confirmation