Supabase on AWS - CloudFormation/CDK Template
Launch in minutes. Scale to millions.
This repo includes a template of starting Supabase stack on AWS via CloudFormation/CDK. This template use managed services such as Amazon ECS and Amazon Aurora etc...
Architecture
Deploy via CloudFormation template
Region | View | Stable | Latest |
---|---|---|---|
US East (N. Virginia) | View | ||
US West (Oregon) | View | ||
Europe (Ireland) | View | ||
Asia Pacific (Tokyo) | View | ||
Asia Pacific (Osaka) | View | ||
Asia Pacific (Singapore) | View | ||
Asia Pacific (Sydney) | View | ||
Asia Pacific (Mumbai) | View |
Specification and Limitation
- APIs
- All containers run on ECS Fargate (Graviton2).
- Only Storage API works on x86_64 platforms.
- All components are configured with AutoScaling.
- GraphQL is supported using PostGraphile, because pg_graphql is not supported with Amazon RDS/Aurora.
- All containers run on ECS Fargate (Graviton2).
- Service Discovery
- Each component is discovered as
***.supabase.internal
.
- Each component is discovered as
- Database (PostgreSQL)
- Amazon Aurora Serverless v2 is used.
- Todo: Add automatically password rotation.
- Supabase Studio
- It is deployed on Amplify Hosting.
- Todo: Add option to deploy the studio in different regions.
Fargate Task Size
Size | vCPU | Memory |
---|---|---|
micro | 256 | 512 |
small | 512 | 1024 |
medium | 1024 | 2048 |
large | 2048 | 4096 |
xlarge | 4096 | 8192 |
2xlarge | 8192 | 16384 |
4xlarge | 16384 | 32768 |
IAM Policy to create CloudFormation Stack
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CloudFormation",
"Effect": "Allow",
"Action": "cloudformation:*",
"Resource": "*"
},
{
"Sid": "supabase",
"Effect": "Allow",
"Action": [
"application-autoscaling:*",
"ec2:*",
"ecs:*",
"elasticloadbalancing:*",
"events:*",
"iam:*",
"lambda:*",
"logs:*",
"s3:*",
"secretsmanager:*",
"servicediscovery:*",
"ses:*",
"ssm:*",
"states:*",
"rds:*",
"route53:*",
],
"Resource": "*"
},
{
"Sid": "supabase-cdn",
"Effect": "Allow",
"Action": [
"cloudfront:*",
"wafv2:Get*",
"wafv2:List*"
],
"Resource": "*"
},
{
"Sid": "cache-manager",
"Effect": "Allow",
"Action": [
"apigateway:*",
"lambda:*",
"logs:*",
"sqs:*",
],
"Resource": "*"
},
{
"Sid": "supabase-studio",
"Effect": "Allow",
"Action": [
"amplify:*",
"codecommit:*",
"lambda:*",
"logs:*",
"sns:*"
],
"Resource": "*"
}
]
}
Deploy via CDK
This cdk project has many resources for CloudFormation. It is highly recomended to remove these resources for CloudFormation to use it as CDK.
git clone https://github.com/mats16/supabase-on-aws.git
cd supabase-on-aws
yarn install
cdk deploy Supabase