AWS
This guide describes how to deploy Runops to AWS.
Steps
1. Storage
:::info comming soon Automated database provisioning for AWS with
Terraform :::
- Create a Mysql database instance using RDS or any other means.
- Create a schema called
runops
- Create a user with permission to select, insert, update, and delete items to that schema.
2. Gateway
- Run one instance of the container
runops/gateway
in a private network - Do not expose this container to the internet as it doesn’t support TLS directly
- The easiest ways we found to deploy the gateway are:
- AWS ECS Fargate
- Kubernetes
- But you can chose the method that suites your organization the best.
:::info comming soon Automated container deployment for Kubernetes
and ECS with Helm and Terraform :::
Add these environment variables to the container:
Environment Variable | Details |
DB_HOST | Database (mysql) configuration |
DB_NAME | Database (mysql) configuration |
DB_PASS | Database (mysql) configuration |
DB_USER | Database (mysql) configuration |
3. Ingress
- Create an Application Load Balancer
- Create a DNS CNAME alias with the domain name you will use to server Runops
- Create and validate a TLS certificate using AWS Certificate Manager
- Add 2 listeners to the Load Balancer for exposing the ports:
- 443:8080
- HTTP port with API endpoints and user interface static assets
- 8443:9090
- GRPC port for agents and clients connections
:::info comming soon Automated ingress deployment for AWS using
Terraform :::
At this point you can access the Load Balancer address on port 443
and access the Runops user interface.
4. Agents
Use the standard steps to create and manage Runops agents only adding
the
SERVER_URL
address as an additional environment
variable with the address of your load balancer.5. Clients
Use the environment variable
SERVER_URL
when interacting
with the CLI.