Interactive command: Guides you through creating organisations and applications with smart defaults.
Overview
Thefjall create command scaffolds AWS infrastructure as CDK TypeScript. It creates standalone account infrastructure (monitoring, compliance), organisational structures (accounts, SSO, billing), or applications (compute, storage, networking).
Usage
Targets
Organisation
Set up your AWS organisation structure:- AWS Organization root
- Platform account for shared services
- SSO configuration
- Cost allocation tags
- Billing alerts
Account
Set up standalone AWS account infrastructure:- Monitoring and alerting
- CloudTrail audit logging
- ECR container registry
- OIDC connector for CI/CD
Application
Create a new application:- Standard: Production-ready with 3 AZ, Fargate ECS, RDS
- Lightweight: Streamlined with Fargate Spot ECS, RDS
- Resilient: High-availability with 3 AZ, Aurora with readers, KMS encryption, RDS Proxy, 30-day backup
- Enterprise: Full-featured with 3-AZ, Aurora with readers, KMS encryption, VPC endpoints
- Tinkerer: Free-tier eligible experimental with 2 AZ, ECS on EC2 (t4g.micro), RDS
- Custom: Interactive selection of individual components
Examples
Create Organisation (Interactive)
- Prompts for organisation name, email, and regions
- Opens your browser to deploy an OIDC CloudFormation stack in your AWS account
- Polls for stack completion
- Deploys the organisation using the OIDC connection
Create Application (Interactive)
Non-Interactive Mode
Skip all prompts with flags:Options
Common Options
Organisation Options
Account Options
Application Options
Application Types Explained
Tinkerer
- 2 AZs (VPC spans 2 AZs), no NAT gateways
- ECS on EC2 (t4g.micro ARM Graviton), free-tier eligible
- RDS Instance (t4g.micro)
- Best for: Experimentation and learning
Lightweight
- 2 AZs (VPC spans 2 AZs), 1 NAT gateway
- ECS Fargate Spot (256 CPU, 512 MiB)
- RDS Instance (t4g.small)
- Best for: Small apps and side projects
Standard
- 3 AZs, 1 NAT gateway
- ECS Fargate (512 CPU, 1024 MiB)
- RDS Instance (t4g.large)
- Best for: Most production workloads
Resilient
- 3 AZs, 3 NAT gateways
- Aurora with readers, KMS encryption, RDS Proxy
- 30-day backup retention
- Best for: High-availability applications
Enterprise
- 3-AZ deployment with 3 NAT Gateways
- Aurora database with 2 readers, KMS encryption
- VPC endpoints, S3 flow logs (365-day retention)
- Best for: Mission-critical applications
Custom
- Interactive selection of components
- Mix and match resources
- Full customisation
- Best for: Specific requirements
What Gets Created
Account Structure (Standalone)
Organisation Structure
Application Structure
Post-Creation Steps
After Creating Organisation
- Deploy the organisation (automatically cascades to platform and accounts):
After Creating Application
-
Review infrastructure code:
-
Deploy the application:
-
Add more resources (
--nameis required and PascalCase):
Best Practices
- Connect First: Run
fjall connectto establish an AWS connection before creating infrastructure - Account First: For standalone use, create an account (
fjall create account) before applications. Organisation is an upgrade path, not a prerequisite. - Naming Convention: Names must start with a letter and can contain letters, numbers, and hyphens
- Region Selection: Choose regions close to your users
- Type Selection: Start with Tinkerer for learning, use Standard for production
Troubleshooting
Name Already Exists
If you see “Application already exists”:- Choose a different name
- Or remove existing:
rm -rf fjall/existing-app
OIDC Stack Deployment Fails
If the OIDC CloudFormation stack fails to deploy:- Sign in to the correct AWS account in your browser
- Check that your account has permission to create IAM roles and CloudFormation stacks
- Retry with
fjall connectto re-open the browser flow
Connection Not Configured
If authentication fails:- Run
fjall connectto establish or verify your AWS connection - If using SSO, check that your AWS SSO session is active
Region Not Available
Some services are not available in all regions:- Use
us-east-1for full service availability - Check AWS service availability by region
- Consider multi-region setup for resilience
The create command generates CDK TypeScript code. Modify the generated infrastructure.ts files to customise your setup further.
Next Steps
Connect AWS
Establish an AWS connection before you create or deploy infrastructure.
Deploy
Ship your application, account, or organisation to AWS.
Add resources
Add a database, storage, or compute to an application’s infrastructure.ts.
List resources
Inspect the resources declared in an application’s infrastructure.ts.