eb create
Description
Creates a new environment and deploys an application version to it.
Note
To use eb create on a .NET application, you must create a deployment package as described in Creating a source bundle for a .NET application, then set up the CLI configuration to deploy the package as an artifact as described in Deploying an artifact instead of the project folder.
-
Creating environments with the EB CLI requires a service role. You can create a service role by creating an environment in the Elastic Beanstalk console. If you don't have a service role, the EB CLI attempts to create one when you run
eb create
.
You can deploy the application version from a few sources:
-
By default: From the application source code in the local project directory.
-
Using the
--version
option: From an application version that already exists in your application. -
When your project directory doesn't have application code, or when using the
--sample
option: Deployed from a sample application, specific to your environment's platform.
Syntax
eb create
eb create environment-name
An environment name must be between 4 and 40 characters in length. It can only contain letters, numbers, and hyphens (-). An environment name can't begin or end with a hyphen.
If you include an environment name in the command, the EB CLI doesn't prompt you to make any selections or create a service role.
If you run the command without an environment name argument, it runs in an interactive flow, and prompts you to enter or select values for some settings. In this interactive flow, in case you are deploying a sample application, the EB CLI also asks you if you want to download this sample application to your local project directory. By downloading it, you can use the EB CLI with the new environment later to run operations that require the application's code, such as eb deploy.
Some interactive flow prompts are displayed only under certain conditions. For example, if you choose to use an Application Load Balancer, and your account has at least one sharable Application Load Balancer, Elastic Beanstalk displays a prompt that asks if you want to use a shared load balancer. If no sharable Application Load Balancer exists in your account, this prompt isn't displayed.
Options
None of these options are required. If you run eb create without any options, the EB CLI prompts you to enter or select a value for each setting.
Name |
Description |
---|---|
or
|
Set the environment as the default environment for the current repository. |
|
Use platform settings from a saved configuration in
|
or
|
The subdomain name to prefix the CNAME DNS entry that routes to your website. Type: String Default: The environment name |
or
|
Attaches a database to the environment. If you run eb create with the |
or
|
The database engine type. If you run eb create with this option, then EB CLI launches the environment with a database
attached. This is the case even if you didn't run the command with the Type: String Valid values: |
or
|
The type of Amazon EC2 instance to use for the database. If you run eb create with this option, then EB CLI launches the
environment with a database attached. This is the case even if you didn't run the command with the Type: String Valid values: Amazon RDS supports a standard set of DB instances. To select an appropriate DB instance for your DB engine, you must take into account some specific considerations. For more information, see DB instance classes in the Amazon RDS User Guide. |
or
|
The password for the database. If you run eb create with this option, then EB CLI launches the environment with a
database attached. This is the case even if you didn't run the command with the |
or
|
The number of gigabytes (GB) to allocate for database storage. If you run eb create with this option, then EB CLI
launches the environment with a database attached. This is the case even if you didn't run the command with the Type: Number Valid values:
|
or
|
The user name for the database. If you run eb create with this option, then EB CLI launches the environment with a
database attached even if you didn't run the command with the |
or
|
Used to specify the database engine version. If this flag is present, the environment will launch with a database with the specified version
number, even if the |
|
The load balancer type. Type: String Valid values: Default: |
or
|
Enable Spot Instance requests for your environment. For more information, see Auto Scaling group. Related options:
|
--env-group-suffix |
The group name to append to the environment name. Only for use with Compose Environments. |
|
Environment properties in a comma-separated list with the format
|
or
|
The instance profile with the IAM role with the temporary security credentials that your application needs to access AWS resources. |
or
|
A comma-separated list of Amazon EC2 instance types that you want your environment to use. If you don't specify this option, Elastic Beanstalk provides default instance types. For more information, see Amazon EC2 instances and Auto Scaling group. ImportantThe EB CLI only applies this option to Spot Instances. Unless this option is used with the |
or
|
The Amazon EC2 instance type that you want your environment to use. If you don't specify this option, Elastic Beanstalk provides a default instance type. For more information, see Amazon EC2 instances. ImportantThe EB CLI only applies this option to On-Demand Instances. Don't use this option with the |
or
|
The name of the Amazon EC2 key pair to use with the Secure Shell (SSH) client to securely log in to the Amazon EC2 instances that are running your Elastic Beanstalk application. If you include this option with the eb create command, the value you provide overwrites any key name that you might have specified with eb init. Valid values: An existing key name that's registered with Amazon EC2 |
or
|
The minimum number of Amazon EC2 instances that you require your environment to have. Type: Number (integer) Default: Valid values: |
or
|
The maximum number of Amazon EC2 instances you allow your environment to have. Type: Number (integer) Default: Valid values: |
|
A list of component environments to create. This is only for use with Compose Environments. |
or
|
The minimum number of On-Demand Instances that your Auto Scaling group provisions before considering Spot Instances as your environment scales up. This option can only be specified with the Type: Number (integer) Default: Valid values: |
or
|
The percentage of On-Demand Instances as part of additional capacity that your Auto Scaling group provisions that's more than the number of
instances that's specified by the This option can only be specified with the Type: Number (integer) Default: Valid values: |
or
|
The platform version to use. You can specify a platform, a platform and version, a platform branch, a solution stack name, or a solution stack ARN. For example:
Use eb platform list to get a list of available configurations. If you specify the |
or
|
Preprocess and validate the environment manifest and configuration files in the source bundle. Validating configuration files can identify issues prior to deploying the application version to an environment. |
or
|
The AWS Region where you want to deploy the application. For the list of values you can specify for this option, see AWS Elastic Beanstalk Endpoints and Quotas in the AWS General Reference. |
|
Deploy the sample application to the new environment instead of the code in your repository. |
|
Launch with the specified number of instances |
--service-role
servicerole |
Assign a non-default service role to the environment. NoteDon't enter an ARN. Only enter the role name. Elastic Beanstalk prefixes the role name with the correct values to create the resulting ARN internally. |
or
|
Configure the environment to use a shared load balancer. Provide the name or ARN of a sharable load balancer in your account—an Application Load Balancer that you explicitly created, not one created by another Elastic Beanstalk environment. For more information, see Shared Application Load Balancer. Parameter examples:
You can specify this option only with |
or
|
The default listener port of the shared load balancer for this environment. Elastic Beanstalk adds a listener rule that routes all traffic from this listener to the default environment process. For more information, see Shared Application Load Balancer. Type: Number (integer) Default: Valid values: Any integer that represents a listener port of the shared load balancer. |
|
Create the environment with a single Amazon EC2 instance and without a load balancer. WarningA single-instance environment isn't production ready. If the instance becomes unstable during deployment, or Elastic Beanstalk terminates and restarts the instance during a configuration update, your application can be unavailable for a period of time. Use single-instance environments for development, testing, or staging. Use load-balanced environments for production. |
or
|
The maximum price per unit hour, in US dollars, that you're willing to pay for a Spot Instance. This option can only be specified with the Type: Number (float) Default: The On-Demand price, for each instance type. The option's value in this case is Valid values: For recommendations about maximum price options for Spot Instances, see Spot Instance pricing history in the Amazon EC2 User Guide. |
|
Tag the resources in your environment. Tags are specified as a comma-separated list of For more information, see Tagging environments. |
or
|
Create a worker environment. Omit this option to create a web server environment. |
|
Set number of minutes before the command times out. |
|
Specifies the application version that you want deployed to the environment instead of the application source code in the local project directory. Type: String Valid values: An existing application version label |
|
Configure a VPC for your environment. When you include this option, the EB CLI prompts you to enter all required settings prior to launching the environment. |
|
Specifies subnets for database instances in a VPC. Required when |
|
Specifies subnets for Amazon EC2 instances in a VPC. Required when |
|
Launches your Elastic Load Balancing load balancer in a public subnet in your VPC. You can't specify this option with the |
|
Specifies subnets for the Elastic Load Balancing load balancer in a VPC. You can't specify this option with the |
|
Launches your environment in the specified VPC. |
|
Launches your Amazon EC2 instances in a public subnet in your VPC. You can't specify this option with the |
|
Specifies security group IDs. Required when |
Output
If successful, the command prompts you with questions and then returns the status of the create operation. If there were problems during the launch, you can use the eb events operation to get more details.
If you enabled CodeBuild support in your application, eb create displays information from CodeBuild as your code is built. For information about CodeBuild support in Elastic Beanstalk, see Using the EB CLI with AWS CodeBuild.
Examples
The following example creates an environment in interactive mode.
$ eb create
Enter Environment Name
(default is tmp-dev): ENTER
Enter DNS CNAME prefix
(default is tmp-dev): ENTER
Select a load balancer type
1) classic
2) application
3) network
(default is 2): ENTER
Environment details for: tmp-dev
Application name: tmp
Region: us-east-2
Deployed Version: app-141029_145448
Environment ID: e-um3yfrzq22
Platform: 64bit Amazon Linux 2014.09 v1.0.9 running PHP 5.5
Tier: WebServer-Standard-1.0
CNAME: tmp-dev.elasticbeanstalk.com
Updated: 2014-10-29 21:54:51.063000+00:00
Printing Status:
...
The following example also creates an environment in interactive mode. In this example, your project directory doesn't have application code. The command deploys a sample application and downloads it to your local project directory.
$ eb create
Enter Environment Name
(default is tmp-dev): ENTER
Enter DNS CNAME prefix
(default is tmp-dev): ENTER
Select a load balancer type
1) classic
2) application
3) network
(default is 2): ENTER
NOTE: The current directory does not contain any source code. Elastic Beanstalk is launching the sample application instead.
Do you want to download the sample application into the current directory?
(Y/n): ENTER
INFO: Downloading sample application to the current directory.
INFO: Download complete.
Environment details for: tmp-dev
Application name: tmp
Region: us-east-2
Deployed Version: Sample Application
Environment ID: e-um3yfrzq22
Platform: 64bit Amazon Linux 2014.09 v1.0.9 running PHP 5.5
Tier: WebServer-Standard-1.0
CNAME: tmp-dev.elasticbeanstalk.com
Updated: 2017-11-08 21:54:51.063000+00:00
Printing Status:
...
The following command creates an environment without displaying any prompts.
$ eb create dev-env
Creating application version archive "app-160312_014028".
Uploading test/app-160312_014028.zip to S3. This may take a while.
Upload Complete.
Application test has been created.
Environment details for: dev-env
Application name: test
Region: us-east-2
Deployed Version: app-160312_014028
Environment ID: e-6fgpkjxyyi
Platform: 64bit Amazon Linux 2015.09 v2.0.8 running PHP 5.6
Tier: WebServer-Standard
CNAME: UNKNOWN
Updated: 2016-03-12 01:40:33.614000+00:00
Printing Status:
...
The following command creates an environment in a custom VPC.
$ eb create dev-vpc --vpc.id vpc-0ce8dd99 --vpc.elbsubnets subnet-b356d7c6,subnet-02f74b0c --vpc.ec2subnets subnet-0bb7f0cd,subnet-3b6697c1 --vpc.securitygroup sg-70cff265
Creating application version archive "app-160312_014309".
Uploading test/app-160312_014309.zip to S3. This may take a while.
Upload Complete.
Environment details for: dev-vpc
Application name: test
Region: us-east-2
Deployed Version: app-160312_014309
Environment ID: e-pqkcip3mns
Platform: 64bit Amazon Linux 2015.09 v2.0.8 running Java 8
Tier: WebServer-Standard
CNAME: UNKNOWN
Updated: 2016-03-12 01:43:14.057000+00:00
Printing Status:
...