AWS Cloud9
User Guide

Creating an Environment in AWS Cloud9

To create an AWS Cloud9 development environment, follow one of these sets of procedures, depending on how you plan to use AWS Cloud9.

If you're not sure what to choose, we recommend Creating an EC2 Environment.

Creating an EC2 environment is the easiest option. AWS Cloud9 automatically creates and sets up a new Amazon EC2 instance in your AWS account. AWS Cloud9 then automatically connects that new instance to the environment for you.

Source code provided by Development environment host provided by Follow these procedures

You

AWS Cloud9

This topic (create an EC2 environment)

You

You

This topic (create an SSH environment)

Amazon Lightsail or you

You, by using Lightsail

Working with Amazon Lightsail Instances in the AWS Cloud9 Integrated Development Environment (IDE)

AWS CodeStar or you

AWS Cloud9, by using AWS CodeStar

Working with AWS CodeStar Projects in the AWS Cloud9 Integrated Development Environment (IDE)

You, by using AWS CodePipeline

AWS Cloud9 or you

This topic (create an EC2 or SSH environment), and then see Working with AWS CodePipeline in the AWS Cloud9 Integrated Development Environment (IDE)

You, by using AWS CodeCommit

AWS Cloud9 or you

AWS CodeCommit Sample for AWS Cloud9

You, by using GitHub

AWS Cloud9 or you

This topic (create an EC2 or SSH environment), and then see the GitHub Sample for AWS Cloud9

Creating an EC2 Environment

Note

Completing this procedure might result in charges to your AWS account. These include possible charges for Amazon EC2. For more information, see Amazon EC2 Pricing.

In this procedure, AWS Cloud9 creates an EC2 environment, creates a new Amazon EC2 instance, and then connects the environment to this newly-created instance. AWS Cloud9 manages this instance's lifecycle, including starting, stopping, and restarting the instance as needed. If you ever delete this environment, AWS Cloud9 automatically terminates this instance.

You can create an AWS Cloud9 EC2 development environment with the AWS Cloud9 console or with code.

Creating an EC2 Environment with the Console

  1. Make sure you completed the steps in Getting Started with AWS Cloud9 first, so that you can sign in to the AWS Cloud9 console and create environments.

  2. Sign in to the AWS Cloud9 console as follows:

    • If you're the only individual using your AWS account or you are an IAM user in a single AWS account, go to https://console.aws.amazon.com/cloud9/.

    • If your organization uses AWS Single Sign-On (AWS SSO), see your AWS account administrator for sign-in instructions.

    • If you're using an AWS Educate Starter Account, see Step 2: Sign In to the AWS Cloud9 Console in Individual Student Signup.

    • If you're a student in a classroom, see your instructor for sign-in instructions.

  3. After you sign in to the AWS Cloud9 console, in the top navigation bar, choose an AWS Region to create the environment in. For a list of available AWS Regions, see AWS Cloud9 in the AWS General Reference.

    
                     AWS Region selector in the AWS Cloud9 console
  4. If a welcome page is displayed, for New AWS Cloud9 environment, choose Create environment. Otherwise, choose Create environment.

    
                     Choosing the Next step button if welcome page is displayed

    Or:

    
                     Choosing the Create environment button if welcome page is not displayed
  5. On the Name environment page, for Name, type a name for your environment.

  6. To add a description to your environment, type it in Description.

  7. Choose Next step.

  8. On the Configure settings page, for Environment type, choose Create a new instance for environment (EC2).

  9. For Instance type, choose an instance type with the amount of RAM and vCPUs you think you need for the kinds of tasks you want to do. Or leave the default choice.

    Note

    Choosing instance types with more RAM and vCPUs might result in additional charges to your AWS account for Amazon EC2.

  10. For Platform, choose the type of Amazon EC2 instance that AWS Cloud9 will create and then connect to this environment: Amazon Linux or Ubuntu.

  11. For Cost-saving setting, choose the amount of time until AWS Cloud9 shuts down the Amazon EC2 instance for the environment after all web browser instances that are connect to the IDE for the environment have been closed. Or leave the default choice.

    Note

    Choosing a shorter time period might result in fewer charges to your AWS account. Likewise, choosing a longer time might result in more charges.

  12. Expand Network settings (advanced).

  13. AWS Cloud9 uses Amazon Virtual Private Cloud (Amazon VPC) to communicate with the Amazon EC2 instance that AWS Cloud9 creates for this environment. Depending on how Amazon VPC is set up, do one of the following.

    If you're not sure what to choose, we recommend that you skip ahead to step 14 in this procedure.

    When you skip past Network settings (advanced) and leave the preselected default settings, AWS Cloud9 attempts to automatically use the default VPC with its single subnet in the same AWS account and AWS Region as the new environment.

    Does the AWS account have access to an Amazon VPC? Is that VPC in the same AWS account and AWS Region as the new environment? Is that VPC the default VPC for its AWS account? Does that VPC contain a single subnet? Do this

    No

    If no VPC exists, create one.

    To create a VPC in the same AWS account and AWS Region as the new environment, choose Create new VPC, and then follow the on-screen directions. For more information, see Create an Amazon VPC for AWS Cloud9.

    To create a VPC in a different AWS account than the new environment, see Working with Shared VPCs in the Amazon VPC User Guide.

    Yes

    Yes

    Yes

    Yes

    Skip ahead to the step 14 in this procedure.

    When you skip past Network settings (advanced) and leave the preselected default settings, AWS Cloud9 attempts to automatically use the default VPC with its single subnet in the same account and region as the new environment.

    Yes

    Yes

    Yes

    No

    If the default VPC has multiple subnets, expand Network settings (advanced). For Subnet, choose the subnet you want AWS Cloud9 to use in the preselected default VPC.

    If the default VPC has no subnets, create one. To do this, choose Create new subnet, and then follow the on-screen directions. For more information, see Create a Subnet for AWS Cloud9.

    Yes

    Yes

    No

    Yes

    Expand Network settings. For Network (VPC), choose the VPC that you want AWS Cloud9 to use.

    Yes

    Yes

    No

    No

    Expand Network settings. For Network (VPC), choose the VPC that you want AWS Cloud9 to use.

    If the chosen VPC has multiple subnets, expand Network settings (advanced). For Subnet, choose the subnet you want AWS Cloud9 to use in the chosen VPC.

    If the chosen VPC has no subnets, create one. To do this, choose Create new subnet, and then follow the on-screen directions. For more information, see Create a Subnet for AWS Cloud9.

    Yes

    No

    Yes

    AWS Cloud9 cannot use a default VPC in an AWS account than is different than the AWS account for the new environment. Choose a different option in this list.

    Yes

    No

    No

    Yes

    Expand Network settings. For Network (VPC), choose the VPC that you want AWS Cloud9 to use.

    Note

    The VPC must be in the same AWS Region as the new environment, even if the VPC is in a different AWS account.

    Yes

    No

    No

    No

    Expand Network settings. For Network (VPC), choose the VPC that you want AWS Cloud9 to use.

    For Subnet, choose the subnet you want AWS Cloud9 to use in the chosen VPC.

    If the chosen VPC has no subnets, to create a subnet for a VPC in a different AWS account than the new environment, see Working with Shared VPCs in the Amazon VPC User Guide.

    Note

    The VPC and subnet must be in the same AWS Region as the new environment, even if the VPC and subnet are in a different AWS account.

    For more information about these choices, see VPC Settings for AWS Cloud9 Development Environments.

  14. Choose Next step.

  15. On the Review page, choose Create environment. Wait while AWS Cloud9 creates your environment. This can take several minutes.

After AWS Cloud9 creates your environment, it displays the AWS Cloud9 IDE for the environment.

If AWS Cloud9 doesn't display the IDE after at least five minutes, there might be a problem with your web browser, your AWS access permissions, the instance, or the associated virtual private cloud (VPC). For possible fixes, see Cannot Open an Environment in Troubleshooting.

Creating an EC2 Environment with Code

To use code to create an EC2 environment in AWS Cloud9, call the AWS Cloud9 create EC2 environment operation, as follows.

Note

Make sure you completed the steps in Getting Started with AWS Cloud9 first, so that you can create environments.

Currently, you cannot use code to create an Ubuntu Server-based EC2 environment, for example by using the AWS CLI, AWS CloudFormation, the AWS SDKs, the Tools for Windows PowerShell, or the AWS Cloud9 API. Currently, you can only use code to create an EC2 environment that is connected to Amazon Linux. Using code to create an Ubuntu Server-based EC2 environment is expected in the future.

Creating an SSH Environment

You create an AWS Cloud9 SSH development environment with the AWS Cloud9 console. (You cannot create an SSH environment with code.)

Prerequisites

  • Make sure you completed the steps in Getting Started with AWS Cloud9 first, so that you can sign in to the AWS Cloud9 console and create environments.

  • Identify an existing cloud compute instance (for example an Amazon EC2 instance in your AWS account), or your own server, that you want AWS Cloud9 to connect to the environment.

  • Make sure that the existing instance or your own server meets all of the SSH Host Requirements. This includes having specific versions of Python, Node.js, and other components installed; setting specific permissions on the directory that you want AWS Cloud9 to start from after login; and setting up any associated Amazon Virtual Private Cloud.

Create the SSH Environment

  1. Make sure you completed the preceding prerequisites.

  2. Connect to your existing instance or your own server by using an SSH client, if you are not already connected to it. You must do this so that you can add the necessary public SSH key value to the instance or server, as described later in this procedure.

    Note

    To connect to an existing AWS cloud compute instance, see one or more of the following resources:

    To connect to your own server, you could search the internet using a phrase such as "connect to a server by using the ssh command" (from macOS or Linux) or "connect to a server by using PuTTY" (from Windows).

  3. Sign in to the AWS Cloud9 console, at https://console.aws.amazon.com/cloud9/.

  4. After you sign in to the AWS Cloud9 console, in the top navigation bar, choose an AWS Region to create the environment in. For a list of available AWS Regions, see AWS Cloud9 in the AWS General Reference.

    
                     AWS Region selector in the AWS Cloud9 console
  5. If a welcome page is displayed, for New AWS Cloud9 environment, choose Create environment. Otherwise, choose Create environment.

    
                     Choosing the Next step button if welcome page is displayed

    Or:

    
                     Choosing the Create environment button if welcome page is not displayed
  6. On the Name environment page, for Name, type a name for your environment.

  7. To add a description to your environment, type it in Description.

  8. Choose Next step.

  9. For Environment type, choose Connect and run in remote server (SSH).

  10. For User, type the login name you used to connect to the instance or server earlier in this procedure. For example, for an AWS cloud compute instance, it might be ec2-user, ubuntu, or root.

    Note

    For best results, we recommend that the login name is associated with administrative privileges or an administrator user on the instance or server. Specifically, this login name should own the Node.js installation on the instance or server. To check this, from your instance's or server's terminal, run the command ls -l $(which node) (or ls -l $(nvm which node) if you're using nvm). This command displays the Node.js installation's owner's name (along with the installation's permissions, group name, and location).

  11. For Host, type the public IP address (preferred) or the hostname of the instance or server.

  12. For Port, type the port that you want AWS Cloud9 to use to try to connect to the instance or server, or leave the default port.

  13. To specify the path to the directory on the instance or server that you want AWS Cloud9 to start from after login, which you identified earlier in this procedure's prerequisites, expand Advanced settings, and then type the path in Environment path. If you leave this blank, AWS Cloud9 uses the directory that your instance or server typically starts with after login. This is usually a home or default directory.

  14. To specify the path to the Node.js binary on the instance or server, expand Advanced settings, and then type the path in Node.js binary path. To get the path, you can run the command which node (or nvm which node if you're using nvm) on your instance or server. For example, the path might be /usr/bin/node. If you leave this blank, AWS Cloud9 will try to guess where the Node.js binary is when it tries to connect.

  15. To specify a jump host that the instance or server uses, expand Advanced settings, and then type information about the jump host in SSH jump host, using the format USER_NAME@HOSTNAME:PORT_NUMBER (for example, ec2-user@:ip-192-0-2-0:22)

    The jump host must meet the following requirements.

    • It must be reachable over the public Internet using SSH.

    • It must allow inbound access by any IP address over the specified port.

    • The public SSH key value that was copied into the ~/.ssh/authorized_keys file on the existing instance or server must also be copied into the ~/.ssh/authorized_keys file on the jump host.

    • Netcat must be installed.

  16. Choose Copy key to clipboard. (This is between View public SSH key and Advanced settings.) Paste the public SSH key value that was copied, into the ~/.ssh/authorized_keys file on the existing instance or server that you connected to earlier in this procedure. (~ represents the home directory for the login name that you specified for User earlier in this procedure.)

    Note

    To see the public SSH key value that was copied, expand View public SSH key.

  17. Choose Next step.

  18. On the Review page, choose Create environment. Wait while AWS Cloud9 creates your environment. This can take several minutes.

If AWS Cloud9 doesn't display the IDE after at least five minutes, there might be a problem with your web browser, your AWS access permissions, the instance, or the associated network. For possible fixes, see Cannot Open an Environment in Troubleshooting.