Skip to content

flexstack/nextjs-terraform

Repository files navigation

Next.js on AWS Fargate with Terraform

Preview

Architecture

See the Terraform code for the full architecture.

  • A VPC with public, private, private isolated subnets
  • An ECS cluster with a Fargate service
  • A Route 53 private hosted zone for the ECS service (AWS CloudMap/Service Discovery)
  • API Gateway w/ VPC Link Integration to the ECS service using the private DNS name
  • An ECS task definition with a container that runs the Next.js app
  • A CloudFront distribution with an API Gateway origin

Deploy to AWS with Terraform

First, you need to install Terraform. You can download it from here. You'll also need Docker and the AWS CLI installed and configured with your AWS credentials.

cd infra
# Initialize the Terraform providers
terraform init
# See the changes that will be applied
terraform plan
# Apply the changes to your default AWS profile
terraform apply

You can also use a different AWS profile by setting the TF_VAR_AWS_PROFILE environment variable.

TF_VAR_AWS_PROFILE=my-profile terraform apply