What is CloudStack Canvas?
CloudStack Canvas (CSC) is a browser-based visual designer for AWS infrastructure. You drag services onto an infinite canvas, connect them, configure properties, and export production-ready Infrastructure as Code β no YAML hand-authoring required.

The canvas understands AWS architecture rules: it automatically places resources inside the correct containers (EC2 instances go inside Subnets, Subnets inside VPCs), generates the dependent resources you need (IAM roles, Security Groups), and validates placement before letting you drop.
Quick Start
- 1
Create a project
From the Dashboard, click "+ New Project". Choose Simple mode to get auto-wiring or Advanced mode for full control.
- 2
Add resources from the palette
The left panel lists all available AWS services grouped by category. Drag any service onto the canvas to place it.
- 3
Connect resources
Hover over a node until you see the connection handle (a small circle on the edge). Click and drag to another node to draw an edge.
- 4
Configure properties
Click any node to open the Properties panel on the right. Change the label, instance type, storage size, or any resource-specific setting.
- 5
Export your infrastructure
Click "Export IaC" in the toolbar. Choose CloudFormation JSON, CloudFormation YAML, or Terraform. The file downloads immediately.
Resource Palette

The left sidebar lists every supported AWS service, organized into categories: Compute, Storage, Database, Networking, Security, Messaging, and more. Use the search box at the top to filter by name or keyword.
Dropping a resource
Drag any service icon from the palette and drop it onto the canvas. CSC checks placement rules before adding the node:
- Resources that require a VPC (EC2, RDS, ECS, etc.) are automatically placed inside one. If no VPC exists yet, CSC creates one for you.
- Resources that require a Subnet are placed inside a Subnet inside the VPC.
- If a required container doesn't exist, CSC creates the full hierarchy automatically.
Auto-generated dependencies
Many services create companion resources automatically. For example, dropping an EC2 instance also generates:
- An EC2 Security Group (inside the Security Zone)
- An IAM Instance Role (inside the IAM Zone)
These auto-generated nodes are linked visually and included in all IaC exports. You can hide them with the layer toggles if they clutter the view.
Simple vs Advanced Mode
Every project runs in one of two modes. You choose when creating the project, and can switch in Settings.

- β Auto-naming (env + project prefix)
- β Auto-generated Security Groups and IAM roles
- β Auto-wired dependencies on drop
- β Infrastructure layer hidden by default
- β Best for prototyping and learning
- β Full control over all resource names
- β Manually place any resource anywhere
- β All infrastructure nodes visible
- β Fine-grained property editing
- β Best for production and team use
VPCs, Subnets & Zones
CSC uses container nodes to represent AWS grouping constructs. Child resources live visually inside their parent containers, and this hierarchy is reflected in the IaC output.
| Container | What goes inside |
|---|---|
| VPC | Subnets, Security Zones, IAM Zones, and VPC-level resources |
| Subnet | EC2 instances, RDS, ECS tasks, Lambda (VPC-mode), etc. |
| Security Zone | EC2 Security Groups, Network ACLs β organizational only |
| IAM Zone | IAM Roles and Policies β organizational only |
Resizing containers
Hover over the edge or corner of any container (VPC, Subnet, etc.) to reveal the resize handle. Drag to expand or contract. The canvas enforces a minimum size so children are never clipped. Resizing is undoable with Ctrl+Z.
Security Zone and IAM Zone
These two zone types are CSC-only organizational containers. They do not map to an AWS resource and are excluded from IaC exports. They exist solely to keep Security Groups and IAM Roles visually separated from your main architecture.
Connecting Resources
Edges represent relationships between resources (data flow, network access, IAM trust, etc.). In the exported IaC they become references or dependency declarations between resources.
- 1
Hover over a node
A small circle (connection handle) appears on the edges of the node.
- 2
Click and drag the handle
Pull to another node. A preview edge follows your cursor.
- 3
Release on the target node
CSC resolves the relationship type automatically based on both resource types (e.g. EC2 β S3 generates a bucket policy reference).
Deleting an edge
Click an edge to select it (it turns highlighted), then press Delete or Backspace.
Resource Properties

Click any node to open the Properties panel on the right side of the canvas. The panel shows fields specific to that resource type.
Common fields
- Label β the display name shown on the canvas node. Editable inline by double-clicking the node label.
- Logical ID β the CloudFormation logical resource ID. Auto-generated from the label, editable in Advanced mode.
- Resource-specific fields β instance type, engine version, storage class, memory size, etc.
Naming configuration
In Simple mode, all resource names follow the pattern [prefix]-[environment]-[project]-[resource]. Change the environment, project name, and prefix in the canvas toolbar's naming settings.
Templates
Templates give you a pre-wired starting point for common architectures. Access them via the Templates button in the canvas toolbar.
| Template | Tier | What it includes |
|---|---|---|
| Static Website | free | S3 + CloudFront with OAC, HTTPS-only, SPA routing |
| Serverless API | free | API Gateway + Lambda + DynamoDB + IAM execution role |
| Web Application | free | EC2 + ALB + RDS inside a VPC with public/private subnets |
| 3-Tier Architecture | pro | ALB + EC2 app tier + RDS in isolated subnets + SGs |
| ECS Fargate Microservice | pro | ECS Fargate + ECR + ALB + RDS + task/exec IAM roles |
| Serverless Full-Stack | pro | CloudFront + S3 + API Gateway v2 + Lambda + DynamoDB |
| Event-Driven Pipeline | pro | SNS + SQS + Lambda + DynamoDB with DLQ and IAM |
| CI/CD Pipeline | pro | CodePipeline + CodeBuild + ECR + ECS + S3 artifact store |
| Data Analytics Pipeline | enterprise | S3 data lake + Glue ETL + Athena + Redshift |
| High Availability Web App | enterprise | CloudFront + WAF + ALB + ECS + Aurora + ElastiCache |
| Billing Alarm | pro | CloudWatch billing alarms ($10/$50/$100/daily) + SNS email |
Undo & Redo
CSC maintains a 50-step history for every canvas change: adding/removing resources, connecting nodes, moving nodes, resizing containers, editing labels, and changing properties.
| Action | Shortcut |
|---|---|
Ctrl+Z | Undo last action |
Ctrl+Y | Redo |
Ctrl+Shift+Z | Redo (alternative) |
Each logical action is one undo step. Dragging a node across the canvas is one step, not one step per pixel. Dropping a resource that auto-creates dependencies (VPC + Subnet + SG + IAM role) is also a single undo step.
Layer Visibility
The toolbar contains three layer toggles that let you hide categories of nodes without removing them from the canvas. Hidden nodes are still included in all IaC exports.
| Layer | What it hides |
|---|---|
| IAM Layer | IAM Roles, IAM Policies, and IAM Zone containers |
| Security Group Layer | EC2 Security Groups, Network ACLs, and Security Zone containers |
| Networking Layer | VPC and Subnet containers (child nodes remain visible, floating) |
Keyboard Shortcuts
All shortcuts work when focus is on the canvas (not inside a text input).
| Shortcut | Action |
|---|---|
Ctrl+Z | Undo |
Ctrl+Y | Redo |
Ctrl+Shift+Z | Redo (alternative) |
Delete | Delete selected nodes or edges |
Backspace | Delete selected nodes or edges |
Shift+Click | Add to selection |
Escape | Deselect all |
F | Fit all nodes to view |
Scroll | Zoom in / out |
Space+Drag | Pan the canvas |
Minimap & Controls
The bottom-right corner of the canvas shows the minimap β a scaled overview of all nodes. Click anywhere on the minimap to jump the viewport to that location. Colored squares on the minimap match the primary color of each resource node.
The Controls panel (bottom-left) provides three buttons:
- Zoom In β increase zoom level
- Zoom Out β decrease zoom level
- Fit View β zoom and pan to show all nodes
Both the minimap and controls can be toggled in the canvas toolbar's View menu if you prefer a cleaner workspace.
CloudFormation
CloudFormation export is available on all plans. CSC generates a complete, deployable CloudFormation template from your canvas.

- 1
Click "Export IaC" in the toolbar
The export dialog opens showing available formats for your plan.
- 2
Choose JSON or YAML
Both formats are identical in content. JSON is the default; YAML is more human-readable for version control.
- 3
Download
The file downloads as cloudformation.json or cloudformation.yaml. Deploy it with the AWS Console, CLI, or CDK.
What gets exported
- All resource nodes on the canvas (including hidden layer nodes)
- All edges as DependsOn or reference properties
- Resource properties set in the Properties panel
- Naming config (prefix, environment, project)
What is excluded
- Security Zone and IAM Zone containers (CSC-only organizational nodes)
- Canvas metadata (positions, colors, labels used only for display)
Deploying with the AWS CLI
Terraform
ProTerraform HCL export is available on Pro and Enterprise plans. CSC generates a singlemain.tffile with all resources and their relationships expressed as Terraform references.
- 1
Click "Export IaC" β "Terraform"
Downloads main.tf with the AWS provider configured for the resources on your canvas.
- 2
Initialize and plan
Run terraform init && terraform plan in the same directory to preview the deployment.
- 3
Apply
Run terraform apply to create the infrastructure in your AWS account.
Export Limits
Export quotas are enforced per calendar month and reset on the 1st of each month.
| Plan | Exports / month | Formats |
|---|---|---|
| Free | 5 | CloudFormation JSON |
| Pro | Unlimited | CloudFormation JSON + YAML, Terraform |
| Enterprise | Unlimited | All formats |
Decommissioning Deployed Resources
If you deployed a CSC-generated template as a CloudFormation stack, tearing it down is a single command. CloudFormation tracks every physical resource it created β VPC IDs, subnet IDs, ARNs β and deletes them in the correct reverse-dependency order automatically.
Via the AWS CLI
Via the AWS Console
- 1
Open CloudFormation
Go to the AWS Console β CloudFormation β Stacks. Find the stack you deployed (it uses the stack name you provided at deploy time).
- 2
Select the stack
Click the stack name to open its detail view.
- 3
Click Delete
Click the "Delete" button at the top right. Confirm the prompt. CloudFormation will delete all resources in dependency order β subnets before VPCs, instances before security groups, etc.
- 4
Monitor progress
The Events tab shows deletion progress in real time. The stack disappears from the list once all resources are removed.
For Terraform exports
DeletionPolicy: Retain attribute, are not removed on stack delete and must be cleaned up manually.Partial teardown
If you want to remove specific resources without deleting the entire stack, update the template β remove those nodes in CSC, re-export, and redeploy. CloudFormation will delete only the resources that were removed from the template.
Resource Tagging
Every resource CloudStack Canvas generates β EC2 instances, Lambda functions, S3 buckets, RDS databases, IAM roles, NAT Gateways, VPCs, and every other CloudFormation resource in your exported template β is automatically tagged with:
This tag is present on every single resource in every template β including auto-generated sub-resources like Internet Gateways, NAT Gateways, route tables, CloudWatch log groups, SQS dead-letter queues, and IAM roles. If CSC generated it, it has the tag.
Finding your deployed resources
You can use ManagedBy = CloudStackCanvas as a filter in any AWS service that supports tag-based filtering.
AWS Resource Groups
Create a tag-based Resource Group to see everything CSC has deployed in one place:
AWS Cost Explorer
Filter or group your AWS bill by ManagedBy to see exactly what CSC-deployed infrastructure costs vs resources you created manually or with other tools.
ManagedBykey as a Cost Allocation Tag in Billing settings before you need cost data.AWS CLI β find all tagged resources
AWS Config
Use AWS Config rules or conformance packs to audit CSC-deployed resources. For example, require that all resources tagged ManagedBy=CloudStackCanvas have encryption enabled or Multi-AZ turned on.
IAM β restrict who can modify CSC resources
Add a tag-based condition to IAM policies to prevent engineers from manually modifying resources that should only be changed through CloudStack Canvas:
Overriding the tag
If your organization uses a different tagging standard (for example managed-by instead of ManagedBy), you can add your own tag with the same key in the canvas Tags panel β user-set tags always override the CSC defaults. The CSC default tag will be replaced by your version.
You can also add additional identifying tags (team name, project, cost centre) per resource in the Tags panel in Advanced mode, or globally via the Naming Config section.
What is not tagged
A small number of AWS resource types do not support tags at all β notablyAWS::ApiGateway::Deployment,AWS::ApiGateway::Stage method settings, and some networking entries. These are edge cases in the AWS tagging API β the parent resources (the API Gateway itself, the VPC) are always tagged.
Installing the AWS CLI
The AWS CLI (Command Line Interface) is a program you install on your computer that lets you control AWS directly from your terminal β deploying templates, checking resource status, and more. You need it to follow the CLI paths in the per-template deployment guides. The Console path works without it.
macOS
Recommended: download the installer β no extra tools required.
# Download and open this file in your browser β it runs like any Mac app installer:
https://awscli.amazonaws.com/AWSCLIV2.pkg
If you already use Homebrew (a Mac package manager), you can also run: brew install awscli
Windows
Download the installer file (.msi = a standard Windows installer, like .exe) and double-click to run it.
https://awscli.amazonaws.com/AWSCLIV2.msi
After installing, open a new PowerShell or Command Prompt window before continuing.
Linux
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
Verify the installation worked
Open a new terminal window and run:
aws --version
# You should see something like: aws-cli/2.x.x ...
# If you see "command not found", close and reopen your terminal and try again.
Configuring AWS Credentials
The AWS CLI needs credentials to make API calls on your behalf. The recommended approach is to create a dedicated IAM user with programmatic access, then run aws configure.
Console β create access keys
- 1
Open IAM in the AWS Console
Navigate to IAM β Users β select your user (or create one β see IAM Permissions section below).
- 2
Create access key
Click Security credentials β Create access key β choose "Command Line Interface (CLI)" β Next β Create.
- 3
Download credentials
Copy the Access Key ID and Secret Access Key. You cannot retrieve the secret again after closing this dialog.
Configure the CLI
Run aws configure in your terminal. It will ask you four questions β paste or type your answers:
aws configure
# Paste your Access Key ID from the IAM dialog (starts with AKIA...):
AWS Access Key ID [None]: paste-your-access-key-id-here
# Paste your Secret Access Key (the long string shown once in IAM):
AWS Secret Access Key [None]: paste-your-secret-access-key-here
# Type your AWS region (us-east-1 works for most CSC templates):
Default region name [None]: us-east-1
# Press Enter to accept the default (json):
Default output format [None]: json
Your credentials are saved automatically in a file on your computer. You will not need to run this again unless you create new keys.
Verify credentials are working
aws sts get-caller-identity
# Expected output:
{
"UserId": "AIDA...",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/your-user"
}
Using named profiles (optional)
If you manage multiple AWS accounts, use named profiles instead of the default:
aws configure --profile mycompany
# Use the profile for any command:
aws cloudformation deploy --profile mycompany ...
aws configure stores them securely in a hidden folder on your computer (~/.aws/credentials on Mac/Linux, or C:\Users\YourName\.aws\credentials on Windows). If you accidentally expose your keys, go to IAM immediately and delete them β then create new ones.IAM Permissions for Deployment
Your IAM user needs specific permissions to deploy CloudFormation templates and the AWS resources inside them. The safest approach is to create a dedicated deployment user with a scoped policy.
Minimum permissions for CSC templates
| Permission set | Templates that require it |
|---|---|
| cloudformation:* | All templates |
| s3:*, s3:GetBucketPolicy | All templates (CFN stores state in S3) |
| iam:CreateRole, iam:AttachRolePolicy, iam:PassRole | All templates (CAPABILITY_NAMED_IAM) |
| cloudfront:*, acm:* | Static Website, HA Web App |
| lambda:*, apigateway:*, dynamodb:* | Serverless API, Serverless Full-Stack |
| ec2:*, elasticloadbalancing:*, rds:* | Web App, 3-Tier, HA Web App |
| ecs:*, ecr:* | ECS Fargate, CI/CD Pipeline, HA Web App |
| sns:*, sqs:*, events:* | Event-Driven Pipeline |
| glue:*, athena:*, redshift:*, kinesis:* | Data Analytics Pipeline |
| wafv2:*, cloudwatch:*, elasticache:* | HA Web App |
| codepipeline:*, codebuild:*, codecommit:* | CI/CD Pipeline |
| cloudwatch:PutMetricAlarm, sns:*, cloudwatch:SetAlarmState | Billing Alarm |
PowerUserAccess to your deployment user β it covers most services but not IAM. Add IAMFullAccess separately (required for CAPABILITY_NAMED_IAM templates). For production, scope down to the specific services your templates use.Console β steps to create a deployment IAM user
- 1
Go to IAM β Users β Create user
Enter a name like "csc-deploy". Do not enable Console access β this user only needs programmatic (CLI) access.
- 2
Attach permissions
Choose "Attach policies directly". Search for and attach PowerUserAccess + IAMFullAccess, or create a custom policy scoped to the services your templates use.
- 3
Create access keys
After creating the user, go to Security credentials β Create access key β CLI β create. Copy the keys and run aws configure.
--capabilities CAPABILITY_NAMED_IAM flag is required on all CSC template deploys. Without it, CloudFormation refuses to create IAM roles even if your user has the permission.CloudFormation Troubleshooting
When a CloudFormation deployment fails, the stack enters ROLLBACK_COMPLETE or CREATE_FAILED state and automatically undoes any resources it created. Here is how to diagnose and fix failures.
Step 1 β Find the root cause
Console: In the AWS Console, go to CloudFormation (search for it in the top bar). Click on your stack name in the list. At the top of the stack detail page, click the Events tab. The list shows newest events at the top β scroll to the bottom to find the oldest (first) failure. Red rows are failures. Read the Status reason column β that is your error message.
CLI:
aws cloudformation describe-stack-events \
--stack-name YOUR-STACK-NAME \
--query "StackEvents[?ResourceStatus=='CREATE_FAILED'].[LogicalResourceId,ResourceStatusReason]" \
--output table
Common errors and fixes
InsufficientCapabilities β requires CAPABILITY_NAMED_IAM
Add --capabilities CAPABILITY_NAMED_IAM to your deploy command. All CSC templates create IAM roles and require this flag.
Access Denied / not authorized to perform: iam:CreateRole
Your IAM user is missing iam:CreateRole, iam:AttachRolePolicy, or iam:PassRole. Attach IAMFullAccess or add these actions to your policy.
BucketAlreadyExists / BucketAlreadyOwnedByYou
The S3 bucket name is already taken globally. Open the S3 node in CSC, change the Bucket Name, and enable the unique suffix checkbox before re-exporting.
AlreadyExistsException β stack already exists
A stack with this name already exists. Either delete it first (aws cloudformation delete-stack) or use a different stack name.
Invalid parameter: Endpoint Reason: Cannot create a subscription to an email address
The email address in the SNS subscription is invalid. Correct it in the SNS node property panel and re-export.
ResourceNotFoundException or ThrottlingException mid-deploy
Usually a transient AWS API issue. Wait 2β3 minutes and redeploy. If it persists, check the AWS Service Health Dashboard.
Stack is in ROLLBACK_COMPLETE state and cannot be updated
Delete the failed stack first, then redeploy: aws cloudformation delete-stack --stack-name YOUR-STACK-NAME
Export name already exists in another stack
A CloudFormation Output with this name is already exported by another stack. Rename the export or use a different stack name.
Step 2 β Delete a failed stack before redeploying
# Console: CloudFormation β select stack β Delete
# CLI:
aws cloudformation delete-stack \
--stack-name YOUR-STACK-NAME \
--region us-east-1
# Wait for deletion:
aws cloudformation wait stack-delete-complete \
--stack-name YOUR-STACK-NAME \
--region us-east-1
aws s3 rm s3://YOUR-BUCKET --recursiveStep 3 β Fix the issue in CloudStack Canvas
Most failures come from one of: a missing required property, a name collision, or a missing IAM permission. Fix the root cause in the CSC property panel, re-export the template, then redeploy. Do not try to deploy the same template twice without fixing the issue β CloudFormation will reject it.
CloudFormation Console walkthrough (for all templates)
- 1
Open CloudFormation in the AWS Console
Navigate to CloudFormation using the search bar. Make sure your region (top-right) matches where you want to deploy β most CSC templates use us-east-1.
- 2
Create stack
Click "Create stack" β "With new resources (standard)". Under "Specify template", choose "Upload a template file". Click "Choose file" and select the JSON or YAML file exported from CloudStack Canvas.
- 3
Name the stack
Enter a stack name (e.g. csc-static-site). Names must be unique per region. Click Next.
- 4
Fill in parameters
If the template has parameters (visible in the Parameters section of the export modal), fill them in here. Leave environment as "dev" unless you are deploying to staging or production.
- 5
Configure stack options
Leave defaults. Optionally add tags. Click Next.
- 6
Review and acknowledge IAM
At the bottom of the review page, check the box: "I acknowledge that AWS CloudFormation might create IAM resources with custom names." Click Submit.
- 7
Monitor the Events tab
Watch the Events tab as resources are created. Green = success, red = failure. If any resource fails, read the Status reason β this is your error message.
- 8
Check Outputs after completion
When the stack status changes to CREATE_COMPLETE (shown in green), click the Outputs tab. This is a list of key information about your deployed resources β URLs, connection strings, resource names β that CloudFormation surfaces so you don't have to go hunting. You will need these values to configure your application.
Creating an Organization
ProOrganizations let Pro and Enterprise teams share projects under a single workspace. All members of an organization can see and open org projects from their dashboard.

- 1
Open Settings β Organization
Navigate to Settings and select the Organization tab, or follow the Set up Org prompt on your dashboard if you're on a Pro or Enterprise plan with no organization yet.
- 2
Create an Organization
Click Create Organization. Enter a unique name β this becomes your org's display name and slug used in the system.
- 3
Invite Members
Once created, use the Invite member field under your org to add teammates by email. Invited users must already have a CloudStack Canvas account.
- 4
Share Projects
Create new projects inside the org from your dashboard (the + New Org Project card), or move an existing personal project into the org using the Move to Org button (double-arrow icon) on any personal project card.
Roles & Permissions
ProEvery org member has one of four roles. Roles are ranked β higher ranks can only be assigned by someone of equal or higher rank.
| Role | View Projects | Edit Projects | Create Projects | Manage Members | Delete Org |
|---|---|---|---|---|---|
| Owner | β | β | β | β | β |
| Admin | β | β | β | β (up to admin) | β |
| Editor | β | β | β | β | β |
| Viewer | β | β | β | β | β |
An Owner cannot leave an organization unless they first transfer ownership or delete the org. Admins can invite members, change roles below their own rank, and remove editors/viewers.
Org Projects
ProOrg projects are visible to all members of the organization regardless of who created them.
- Create β click + New Org Project on the dashboard (editors and above).
- Move β transfer a personal project into an org via the double-arrow icon on any personal project card.
- Open β any org member can open and view an org project.
- Edit β editors, admins, and owners can make and save changes.
- Delete β owners and admins can delete org projects from the dashboard (the trash icon appears for eligible roles only).
Real-time Collaboration
Pro
Pro and Enterprise plans support real-time collaboration on saved projects (not the unsaved /canvas/new sandbox). Multiple team members can work on the same project simultaneously.
Collaboration uses a Server-Sent Events (SSE) stream from the server to each connected client, plus lightweight REST calls from clients to the server. No WebSocket server is required.
What syncs in real time
- Cursor positions (throttled to 20 updates/second per user)
- Node selection (which node each user has clicked)
- Node moves (when a user finishes dragging a node)
What does not sync automatically
- Adding or removing resources β these appear after the next auto-save cycle
- Property changes β same, reflected after auto-save
Cursor Presence
ProWhen collaborators are on the same canvas, their cursors appear as colored SVG pointers with their name. Each user gets a unique color assigned automatically.
Selected nodes show a colored ring matching the collaborator's color, so you can see what each person is working on at a glance.
Cost Estimation Overview
ProThe cost estimation engine computes a projected monthly AWS bill for the resources on your canvas based on AWS public pricing. Estimates are updated each time you open the cost panel or add/remove resources.
Costs use the following default assumptions:
- Region: us-east-1 (prices vary by region)
- On-Demand pricing (no Reserved or Savings Plan discounts)
- 730 hours / month for compute resources
- Data transfer within the same region is free
- Managed service overhead (EKS control plane, etc.) is included where applicable
Reading the Cost Panel
ProClick the $ Cost button in the canvas toolbar to open the cost panel. It slides in from the right alongside the Properties panel.
Panel layout
- Total monthly estimate β sum of all nodes in large text at the top
- Per-resource breakdown β each node with its estimated monthly cost and a line-item breakdown (compute, storage, etc.)
- Computed at β timestamp of the last estimate run
Resources with no pricing data (IAM Roles, Security Groups, VPCs) show $0.00 since they have no direct cost.
AWS Billing Alarms
ProThe Billing Alarm template (Pro and Enterprise) deploys four CloudWatch alarms that notify you when your AWS spend crosses configurable thresholds β protecting you from unexpected charges.
What gets deployed
| Alarm | Default threshold | What it monitors |
|---|---|---|
| $10 Warning | $10 | Month-to-date spend β₯ threshold |
| $50 Alert | $50 | Month-to-date spend β₯ threshold |
| $100 Critical | $100 | Month-to-date spend β₯ threshold |
| Daily Spend | $5/day | Single day's spend β₯ threshold (catches spikes) |
All thresholds are editable in the property panel before you export. Click any alarm node and change the Alarm Threshold field.
Before you deploy
- Enable billing alerts in your AWS account β go to Billing β Billing Preferences β Receive Billing Alerts and save. Without this, CloudWatch never receives billing data and all alarms stay in
INSUFFICIENT_DATA. - Deploy in us-east-1 β AWS billing metrics are only published to us-east-1 regardless of where your other resources live.
- Enter a notification email on the SNS node in the property panel before exporting. CloudFormation creates the subscription automatically and AWS sends a confirmation link to that address.
Email subscription
Select the Billing Alerts SNS node on the canvas and enter your email in the Notification Email field. When you deploy the exported template, CloudFormation creates an AWS::SNS::Subscription resource that triggers AWS to send a confirmation email. Check your inbox β the email comes from no-reply@sns.amazonaws.com with subject "AWS Notification - Subscription Confirmation".
How the Daily Spend alarm works
AWS publishes your total month-to-date spend to CloudWatch once every 24 hours. By itself that number grows throughout the month, so a simple threshold alarm would fire every day once your monthly total crosses it β not useful.
The Daily Spend alarm solves this by calculating how much your bill grew since yesterday. For example: if your month-to-date total was $12 yesterday and is $19 today, the daily spend is $7. If your threshold is $5, the alarm fires. If the bill grew by only $3 today, the alarm stays quiet. This catches sudden spikes β like a runaway process or an accidental large resource β that the monthly alarms would not catch until later in the month.
INSUFFICIENT_DATA until the first daily metric arrives β this is normal and can take up to 24 hours after deploying.Free Plan
The Free plan is permanent β no credit card required, no trial expiry.
| Limit | Free | Pro | Enterprise |
|---|---|---|---|
| Projects | 1 | 20 | Unlimited |
| Nodes per canvas | 15 | 200 | Unlimited |
| Exports / month | 5 | Unlimited | Unlimited |
| Export formats | CFN JSON | CFN + TF | CFN + TF |
| Cost estimation | No | Yes | Yes |
| Collaboration | No | Yes | Yes |
| Team members | 0 | 3 | Unlimited |
| Pro AWS services | No | Yes | Yes |
| API access | No | Yes | Yes |
Pro Plan
ProPro unlocks the full canvas experience for individual developers and small teams. Billed monthly or annually (annual saves 20%).
- Up to 20 projects with 200 nodes each
- Unlimited CloudFormation and Terraform exports
- Organization collaboration β up to 2 users simultaneously on a single Org project
- Cost estimation panel
- Pro-tier AWS services in the palette (EKS, SageMaker, Redshift, etc.)
- API access for CI/CD integrations
Enterprise Plan
EnterpriseEnterprise removes all limits and adds SSO, audit logs, and a dedicated support SLA.
- Unlimited projects and nodes
- Unlimited subscribed members in a shared Organization, with role-based access
- SAML/SSO integration
- Audit log of all canvas changes
- Dedicated Slack support channel
- Custom SLA and uptime commitments
- Private cloud deployment option