-
Notifications
You must be signed in to change notification settings - Fork 0
/
sst.config.ts
61 lines (57 loc) · 1.38 KB
/
sst.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/// <reference path="./.sst/platform/config.d.ts" />
export default $config({
app(input) {
return {
name: "1-million-client-benchmark",
removal: input?.stage === "production" ? "retain" : "remove",
home: "aws",
};
},
async run() {
const trpc = new sst.aws.Function("Trpc", {
url: true,
handler: "index.handler",
});
const app = new sst.aws.StaticSite("MyWeb", {
path: "react-app",
dev: {
command: `npm run dev`,
},
build: {
command: `npm run build`,
output: `dist`,
},
environment: {
VITE_TRPC_URL: trpc.url,
},
});
// Create vpc/cluster — need it to run the service locally. Later this will get scaled up
// to multiple regions.
const vpc = new sst.aws.Vpc(`1 million clients benchmark vpc`, {
nat: `managed`,
});
const cluster = new sst.aws.Cluster(`1 million clients cluster default`, {
vpc,
});
const coordinatorService = cluster.addService(`Coordinator`, {
link: [trpc],
dev: {
command: `bun coordinator.ts`,
},
scaling: {
min: 1,
max: 2,
},
cpu: "1 vCPU",
memory: `3 GB`,
image: {
dockerfile: `Dockerfile.coordinator`,
},
});
return {
app: app.url,
api: trpc.url,
// coordinator: coordinatorService.url,
};
},
});