ORB AWS EC2 Quickstart (NAT)#

Note

This quickstart runs the scheduler and worker manager on your local machine and requires NAT or port-forwarding so that AWS workers can connect back to it. If your machine does not have a public IP or you prefer a simpler setup, see ORB AWS EC2 Quickstart (EC2) instead.

Install AWS CLI#

Warning

Do not use pip install awscli for this setup. That installs AWS CLI v1. Use the official AWS CLI v2 installer instead.

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

aws --version

Then create a new virtual environment and install Scaler with ORB extras:

python -m venv .venv
source .venv/bin/activate
pip install opengris-scaler[orb]

Then authenticate with AWS CLI:

aws login

Click the page link and proceed in your default browser to sign in, then follow the AWS CLI instructions in the terminal.

Start Services#

Before starting services, make sure NAT setup is complete. If this machine already has a public IP, you can ignore NAT setup. Then copy the config.toml below and replace PUBLIC_IP with your real public IP address.

[object_storage_server]
bind_address = "tcp://127.0.0.1:8517"

[scheduler]
# bind to 0.0.0.0 so NAT can forward traffic from your public IP to this machine
bind_address = "tcp://0.0.0.0:8516"
object_storage_address = "tcp://127.0.0.1:8517"

[[worker_manager]]
type = "orb_aws_ec2"
scheduler_address = "tcp://127.0.0.1:8516"
worker_manager_id = "wm-orb"
# workers provisioned in AWS need to reach your PUBLIC_IP, from where your
# router forwards packets to the machine running the services
object_storage_address = "tcp://<PUBLIC_IP>:8517"
worker_scheduler_address = "tcp://<PUBLIC_IP>:8516"
# You can start either with pre-built AMI or with specified python version
# and requirements_txt
# image_id = "ami-..."
python_version = "3.14"
requirements_txt = """
opengris-scaler>=1.27.0
numpy
pandas
"""
instance_type = "t3.medium"
aws_region = "us-east-1"
logging_level = "INFO"
task_timeout_seconds = 60

Run command:

scaler config.toml

After services are up, you should be good to go and can use the client to submit tasks to workers provisioned on AWS.