Deploy: AWS

Deploy agents to AWS ECS/Fargate using praisonai deploy

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

Quick Start – CLI

  1. Install PraisonAI
    bash
    pip install praisonai
  2. Set Environment Variables
    bash
    export OPENAI_API_KEY="your-key"
    export AWS_ACCESS_KEY_ID="your-aws-key"
    export AWS_SECRET_ACCESS_KEY="your-aws-secret"
  3. Initialize AWS Config
    bash
    praisonai deploy init --file agents.yaml --type cloud --provider aws
  4. Check Readiness
    bash
    praisonai deploy doctor --provider aws
  5. Deploy to AWS
    bash
    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
  6. Verify
    bash
    curl https://praisonai-service.us-east-1.amazonaws.com/health

Quick Start – SDK

  1. Create Deploy Script
    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}")
  2. Run
    bash
    python deploy_aws.py

agents.yaml with AWS Config

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

bash
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

bash
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
Manual AWS CLI Validation (Optional)

These commands are for manual validation only. Use praisonai deploy for deployment.

bash
# 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>

Related