AWS Next.js container with Redis
Creates a hit counter app with Next.js and Redis.
This deploys Next.js as a Fargate service to ECS and it’s linked to Redis.
new sst.aws.Service("MyService", { cluster, link: [redis], loadBalancer: { ports: [{ listen: "80/http", forward: "3000/http" }], }, dev: { command: "npm run dev", },});Since our Redis cluster is in a VPC, we’ll need a tunnel to connect to it from our local machine.
sudo npx sst tunnel installThis 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.
npx sst devNow if you go to http://localhost:3000 you’ll see a counter update as you refresh the page.
Finally, you can deploy it by:
- Setting
output: "standalone"in yournext.config.mjsfile. - Adding a
Dockerfilethat’s included in this example. - Running
npx sst deploy --stage production.
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", forward: "3000/http" }], }, dev: { command: "npm run dev", },});View the full example.