Skip to content
GitHub Discord

AWS Express Redis

Creates a hit counter app with Express and Redis.

This deploys Express as a Fargate service to ECS and it’s linked to Redis.

sst.config.ts
new sst.aws.Service("MyService", {
cluster,
loadBalancer: {
ports: [{ listen: "80/http" }],
},
dev: {
command: "node --watch index.mjs",
},
link: [redis],
});

Since our Redis cluster is in a VPC, we’ll need a tunnel to connect to it from our local machine.

Terminal window
sudo npx sst tunnel install

This needs sudo to create a network interface on your machine. You’ll only need to do this once on your machine.

To start your app locally run.

Terminal window
npx sst dev

Now if you go to http://localhost:80 you’ll see a counter update as you refresh the page.

Finally, you can deploy it using npx sst deploy --stage production using a Dockerfile that’s included in the example.

sst.config.ts
const vpc = new sst.aws.Vpc("MyVpc", { bastion: true });
const redis = new sst.aws.Redis("MyRedis", { vpc });
const cluster = new sst.aws.Cluster("MyCluster", { vpc });
new sst.aws.Service("MyService", {
cluster,
link: [redis],
loadBalancer: {
ports: [{ listen: "80/http" }],
},
dev: {
command: "node --watch index.mjs",
},
});

View the full example.