Skip to main content
The InfraSettings object in infra/settings.py defines common settings used by your apps and resources.
infra/settings.py
infra_settings = InfraSettings(
    infra_name="my-agentos",
    aws_region="us-east-1",
    aws_az1="us-east-1a",
    aws_az2="us-east-1b",
    aws_subnet_ids=["subnet-0abc123...", "subnet-0def456..."],
    image_repo="123456789012.dkr.ecr.us-east-1.amazonaws.com",
    build_images=True,
    push_images=True,
)
Settings can also be set using environment variables or .env file. See example.env.

Required Settings

SettingDescriptionExample
infra_namePrefix for all AWS resource namesmy-agentos
aws_regionAWS region for resourcesus-east-1
aws_subnet_idsVPC subnets (minimum 2)["subnet-xxx", "subnet-yyy"]
image_repoECR repository URL123456789012.dkr.ecr.us-east-1.amazonaws.com

What infra_name Names

The infra_name value prefixes all AWS resources:
ResourceName Pattern
ECS Cluster{infra_name}-prd
ECS Service{infra_name}-prd-service
Load Balancer{infra_name}-prd-alb
RDS Instance{infra_name}-prd-db
Secrets{infra_name}-prd-secrets
CloudWatch Logs/ecs/{infra_name}-prd

Image Settings

SettingDefaultDescription
image_repoagnohqRepository URL (DockerHub or ECR)
image_nameagentos-aws-templateImage name
build_imagesTrueBuild Docker images locally
push_imagesFalsePush to registry after build
For ECR, set image_repo to your ECR URL:
123456789012.dkr.ecr.us-east-1.amazonaws.com

AWS Settings

SettingDefaultDescription
aws_regionus-east-1AWS region
aws_az1us-east-1aFirst availability zone
aws_az2us-east-1bSecond availability zone
aws_subnet_idsNoneVPC subnets (required for production)
aws_security_group_idsNoneSecurity groups (optional)
Why 2 subnets? AWS requires resources in at least 2 availability zones for high availability. If one zone has issues, your app stays running.

Finding Your Subnet IDs

aws ec2 describe-subnets \
  --query 'Subnets[*].[SubnetId,AvailabilityZone,CidrBlock]' \
  --output table
Choose subnets in different availability zones (e.g., us-east-1a and us-east-1b).

Optional: EFS Settings

For persistent storage (required for Pal agent’s data):
infra/settings.py
infra_settings = InfraSettings(
    ...
    efs_file_system_id="fs-0123456789abcdef0",
    efs_access_point_id="fsap-0123456789abcdef0",
)
See EFS Setup for complete instructions.

Verify Settings

After updating settings, verify they’re correct:
python -c "from infra.settings import infra_settings; print(infra_settings)"