Public CloudFormation templates for deploying the Osirus AI stack in your own AWS account.
This deployment provisions a multi-tier AWS architecture:
- Users access the platform through Amazon CloudFront (optional) and an internet-facing Application Load Balancer (ALB).
- The ALB routes traffic to Amazon ECS services running on AWS Fargate in private subnets.
- Stateful services run in private subnets across Availability Zones:
- Amazon RDS for primary relational data
- Amazon ElastiCache for Redis for caching/session/queue patterns
- Amazon OpenSearch Service for search/index workloads
- Static and generated assets are stored in Amazon S3.
- Runtime secrets and credentials are stored in AWS Secrets Manager.
- IAM roles/policies enforce service permissions, and Amazon CloudWatch Logs captures logs.
- AWS CloudFormation (root and nested stacks)
- Amazon VPC (VPC, subnets, route tables, Internet Gateway, NAT Gateway, security groups)
- Elastic Load Balancing v2 (ALB listeners, listener rules, target groups)
- Amazon ECS on AWS Fargate (cluster, services, task definitions)
- Amazon RDS (DB instances, DB subnet group)
- Amazon ElastiCache for Redis (replication group, subnet group)
- Amazon OpenSearch Service (domain)
- Amazon S3 (bucket, bucket policy)
- AWS Secrets Manager (secret resources)
- AWS IAM (roles, managed policies, user/access key resources)
- AWS Lambda (custom resource automation)
- Amazon CloudWatch Logs (log groups)
- Amazon CloudFront (distribution and policies, optional)
- AWS CLI v2 configured
- Permissions to create IAM, CloudFormation, VPC networking, ECS/Fargate, ALB, RDS, ElastiCache, OpenSearch, S3, and Secrets Manager resources
- Container images for app/api/worker/migrations
- Configure AWS profile (optional if default credentials are already set).
export AWS_PROFILE="your-aws-profile"
export AWS_DEFAULT_PROFILE="$AWS_PROFILE"- Create a local parameter file from an example.
cp ./parameters.example.json ./parameters.local.json-
Edit
parameters.local.jsonand replace all placeholders (CHANGE_ME, image names, ARN placeholders, etc.). -
Launch the stack.
chmod +x ./cft.sh
./cft.shCFT_STACK_NAME: custom stack nameCFT_PARAMETERS_FILE: path to parameter file (default./parameters.local.json)CFT_TEMPLATE_URL: explicit template URLCFT_TEMPLATE_BUCKET: bucket used to build default template URL
Example:
CFT_STACK_NAME=osirus-ai-prod \
CFT_PARAMETERS_FILE=./parameters.local.json \
CFT_TEMPLATE_BUCKET=my-cfn-templates \
./cft.sh- Do not commit real credentials or production parameter files.
- Keep local files such as
parameters.local.jsonuntracked. - Rotate credentials immediately if they were ever exposed in git history.
Internet Users
|
v
[CloudFront (optional)]
|
v
[Application Load Balancer]
|
v
[ECS Services on Fargate (private subnets)]
| | |
| | +--> [OpenSearch Service]
| +---------------> [ElastiCache Redis]
+--------------------------> [Amazon RDS]
|
+-----------------------> [Amazon S3 Assets Bucket]
Supporting services:
- [Secrets Manager] for runtime/application secrets
- [IAM] roles/policies for service permissions
- [CloudWatch Logs] for task/application logs
- [Lambda custom resources] for provisioning helpers
- [VPC] with public/private subnets, IGW, NAT, route tables, security groups