Skip to content

env init

$ copilot env init [flags]

What does it do?

copilot env init creates a new environment where your services will live.

After you answer the questions, the CLI creates the common infrastructure that's shared between your services such as a VPC, an Application Load Balancer, and an ECS Cluster. Additionally, you can customize your Copilot environment by either configuring the default environment resources or importing existing resources for your environment.

You create environments using a named profile to specify which AWS account and region you'd like the environment to be in.

What are the flags?

Like all commands in the AWS Copilot CLI, if you don't provide required flags, we'll prompt you for all the information we need to get you going. You can skip the prompts by providing information via flags:

Common Flags
      --allow-downgrade                Optional. Allow using an older version of Copilot to update Copilot components
                                       updated by a newer version of Copilot.
  -a, --app string                     Name of the application.
      --aws-access-key-id string       Optional. An AWS access key.
      --aws-secret-access-key string   Optional. An AWS secret access key.
      --aws-session-token string       Optional. An AWS session token for temporary credentials.
      --default-config                 Optional. Skip prompting and use default environment configuration.
  -n, --name string                    Name of the environment.
      --profile string                 Name of the profile.
      --region string                  Optional. An AWS region where the environment will be created.

Import Existing Resources Flags
      --import-cert-arns strings         Optional. Apply existing ACM certificates to the internet-facing load balancer.
      --import-private-subnets strings   Optional. Use existing private subnet IDs.
      --import-public-subnets strings    Optional. Use existing public subnet IDs.
      --import-vpc-id string             Optional. Use an existing VPC ID.

Configure Default Resources Flags
      --internal-alb-allow-vpc-ingress   Optional. Allow internal ALB ingress from ports 80 and 443.
      --internal-alb-subnets strings     Optional. Specify subnet IDs for an internal load balancer.
                                         By default, the load balancer will be placed in your private subnets.
                                         Cannot be specified with --default-config or any of the --override flags.
      --override-az-names strings        Optional. Availability Zone names.
                                         (default 2 random AZs)
      --override-private-cidrs strings   Optional. CIDR to use for private subnets.
      --override-public-cidrs strings    Optional. CIDR to use for public subnets.
      --override-vpc-cidr ipNet          Optional. Global CIDR to use for VPC.

Telemetry Flags
      --container-insights   Optional. Enable CloudWatch Container Insights.


Creates a test environment using your "default" AWS profile and default configuration.

$ copilot env init --name test --profile default --default-config

Creates a prod-iad environment using your "prod-admin" AWS profile and enables CloudWatch Container Insights.

$ copilot env init --name prod-iad --profile prod-admin --container-insights

Creates an environment with imported VPC resources.

$ copilot env init --import-vpc-id vpc-099c32d2b98cdcf47 \
  --import-public-subnets subnet-013e8b691862966cf,subnet-014661ebb7ab8681a \
  --import-private-subnets subnet-055fafef48fb3c547,subnet-00c9e76f288363e7f \
  --import-cert-arns arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

Creates an environment with overridden CIDRs and AZs.

$ copilot env init --override-vpc-cidr \
  --override-az-names us-west-2b,us-west-2c \
  --override-public-cidrs, \

What does it look like?

Running copilot env init