EC2 Requirements
Roost Pilot Setup (Single EC2 Instance)
Architecture of RoostGPT stack running in single instance:

Using Terraform:
To accomplish POC from single EC2 instance where RoostGPT can be setup, you can run below terraform scripts:
Link: https://github.com/roost-io/install/tree/demo/terraform/aws/bedrockdemo
Prerequisites:
-
VPC ID where instance would be created
-
Public Subnet ID.
-
Configure AWS profile into launched server, either by setting AWS_ACCESS_KEY and AWS_SECRET_KEY_ID, in $HOME/.profile or staging $HOME/.aws/credentials
-
Allowed SSH CIDR range (Could be individual IP, company network etc)
Instance Details
Whether using terraform or provisioning EC2 externally, Roost expects following configurations
-
Region ( eu-west-1 or any )
-
Instance_size: c5a.2xlarge (16 GB Memory, 8 vCPUs) or bigger
-
Instance root disk size: Minimum 100 GB
-
Additional EBS disk size: Minimum 150 GB
-
Image: Ubuntu 22.04 HVM base, SSD Volume Type
-
Network Configuration:
-
Accepts CIDR range to allow SSH (port 22)
-
Allow SSH from 4.247.149.66/32 and 40.112.174.40/32 (Roost Support)
-
HTTPS traffic is enabled on EC2 at port 443
-
Python and AWS CLI are already installed.
-
If provisioned using terraform, a new ssh key-pair is created and kept under terraform-root-dir/data dir. (SSH keypair to be shared with Roost Support team)
-
Default SSH user is Ubuntu which must have sudo permission
-
To access RoostGPT over HTTPS (optional), we will need -
-
Domain certs
-
DNS Name.
Packages that will be installed on EC2 Linux (by roostGPT installer):
- curl
- jq
- pkill
- shasum
- gzip
- docker-ce
- docker-cli
- docker-compose
- nginx
- nginx-extras
- Entry into crontab
- Script into init.d
Configurations to run RoostGPT:
- SSH user should have sudo permissions
-
AWS IAM User should have AmazonBedrockFullAccess or the below permission -
{
Version = "2012-10-17"
Statement = [
{
Effect = "Allow"
Action = [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream",
"bedrock:ListFoundationModels",
"bedrock:GetFoundationModel"
]
Resource = "*"
},
{
"Effect": "Allow",
"Action": [
"bedrock:GetInferenceProfile",
"bedrock:ListInferenceProfiles",
],
"Resource": [
"arn:aws:bedrock:*:*:inference-profile/*",
"arn:aws:bedrock:*:*:application-inference-profile/*"
]
}
]
}
-
Configure AWS profile into launched server, either by
-
setting AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, in $HOME/.profile
-
Or stage $HOME/.aws/credentials
-
-
Transfer roost license file (.ral) into EC2 instance.
-
Ensure python3 is installed on the instance
Why does RoostGPT need to run with a privileged user?
- RoostGPT installs docker and nginx like services on the EC2
- RoostGPT docker containers run as root.
-
RoostGPT adds crontab entry for the current user and also adds an init.d script to handle Roost processes on a m/c reboot.