Stackattack
Production-ready AWS infrastructure components for Pulumi, written in Typescript. Deploy complex applications with minimal code using secure, opinionated defaults.
Get Started | Components | Examples
What is StackAttack?
StackAttack eliminates infrastructure boilerplate by providing battle-tested AWS components with good defaults built on Pulumi. Instead of writing hundreds of lines of infrastructure code, deploy production-ready applications with a fraction of the effort it takes to wire it all up yourself. The following config deploys service to ECS with a database in ~30 lines:
import * as saws from "@stackattack/aws";
const ctx = saws.context();
const domain = "api.mydomain.com";
const vpc = saws.vpc(ctx);
const db = saws.database(ctx, { network: vpc.network("private") });
const certificate = saws.certificate(ctx, { domain });
const loadBalancer = saws.loadBalancer(ctx, {
network: vpc.network("public"),
cerificate
});
const cluster = saws.cluster(ctx, { network: vpc.network("private") });
const app = saws.service(ctx, {
cluster,
domain,
image: "my-app:latest",
loadBalancer,
port: 3000,
env: { DATABASE_URL: db.url }
});
export const appUrl = app.url;
Key Features
- Secure by Default - Encryption, private subnets, least-privilege IAM
- Copy/Paste Friendly - Components are just functions, no heavy abstractions--you can copy/paste and modify them to fit your use-case. It's always easiest to start with something that works!
- Deploy in Minutes - From zero to production infrastructure
- TypeScript First - Full type safety and excellent IDE support
- Composable - Mix and match components for any architecture
- Well Documented - Comprehensive guides and examples. Each component contains usage examples and cost implications.
Documentation
Support and Feature Requests
Please open an issue if you have any trouble using stackattack or want to request additional components.