Skip to main content
Deploy agents to AWS ECS/Fargate using praisonai deploy run --type cloud --provider aws.

CLI

pip install praisonai
export OPENAI_API_KEY="your-key"
export AWS_ACCESS_KEY_ID="your-aws-key"
export AWS_SECRET_ACCESS_KEY="your-aws-secret"

# Initialize with AWS deploy config
praisonai deploy init --file agents.yaml --type cloud --provider aws

# Check readiness
praisonai deploy doctor --provider aws

# Deploy to AWS
praisonai deploy run --file agents.yaml --type cloud --provider aws
Expected Output:
🚀 Starting deployment...

☁️  Deploying to AWS ECS/Fargate
  • Region: us-east-1
  • Service: praisonai-service
  • CPU: 256
  • Memory: 512MB

📦 Building and pushing Docker image...
🚀 Creating ECS task definition...
🔄 Deploying to Fargate...

✅ Deployment successful!
🔗 URL: https://praisonai-service.us-east-1.amazonaws.com

Metadata:
  • provider: aws
  • region: us-east-1
  • cluster: praisonai-cluster
  • service: praisonai-service
  • task_definition: praisonai-task:1
Verify:
curl https://praisonai-service.us-east-1.amazonaws.com/health

Python

from praisonai.deploy import Deploy, DeployConfig, DeployType, CloudProvider
from praisonai.deploy.models import CloudConfig

config = DeployConfig(
    type=DeployType.CLOUD,
    cloud=CloudConfig(
        provider=CloudProvider.AWS,
        region="us-east-1",
        service_name="praisonai-service",
        cpu="256",
        memory="512",
        min_instances=1,
        max_instances=10
    )
)

deploy = Deploy(config, "agents.yaml")
result = deploy.deploy()

print(f"URL: {result.url}")

agents.yaml

framework: praisonai
topic: helpful assistant
roles:
  assistant:
    role: Assistant
    goal: Help users with their questions
    backstory: You are a helpful assistant
    tasks:
      help_task:
        description: Answer user questions
        expected_output: Helpful response

deploy:
  type: cloud
  cloud:
    provider: aws
    region: "us-east-1"
    service_name: "praisonai-service"
    cpu: "256"
    memory: "512"
    min_instances: 1
    max_instances: 10
    cluster_name: "praisonai-cluster"
    env_vars:
      OPENAI_API_KEY: "${OPENAI_API_KEY}"

AWS Cloud Config Options

FieldTypeDefaultDescription
providerstring-Must be aws
regionstring-AWS region (e.g., us-east-1)
service_namestring-ECS service name
cpustring256CPU units (256, 512, 1024, etc.)
memorystring512Memory in MB
min_instancesint1Minimum running instances
max_instancesint10Maximum instances for scaling
cluster_namestringnullECS cluster name
task_definitionstringnullTask definition name
env_varsdictnullEnvironment variables

Check Deployment Status

praisonai deploy status --file agents.yaml
Expected Output:
📊 Checking deployment status...

╭─────────────────────────────────────────────────────────────────────────────╮
│                            Deployment Status                                 │
├─────────────────┬───────────────────────────────────────────────────────────┤
│ Property        │ Value                                                     │
├─────────────────┼───────────────────────────────────────────────────────────┤
│ State           │ RUNNING                                                   │
│ Service Name    │ praisonai-service                                         │
│ Provider        │ aws                                                       │
│ Region          │ us-east-1                                                 │
│ URL             │ https://praisonai-service.us-east-1.amazonaws.com         │
│ Healthy         │ ✅ Yes                                                    │
│ Instances       │ 1/1                                                       │
╰─────────────────┴───────────────────────────────────────────────────────────╯

Destroy Deployment

praisonai deploy destroy --file agents.yaml --yes

Troubleshooting

IssueFix
AWS credentialsexport AWS_ACCESS_KEY_ID=...
Region not setAdd region to agents.yaml
Permission deniedCheck IAM permissions for ECS
Deploy failedRun praisonai deploy doctor --provider aws
These commands are for manual validation only. Use praisonai deploy for deployment.
# Verify AWS CLI
aws sts get-caller-identity

# List ECS clusters
aws ecs list-clusters

# Describe service
aws ecs describe-services --cluster praisonai-cluster --services praisonai-service

# View logs
aws logs get-log-events --log-group-name /ecs/praisonai-service --log-stream-name <stream>