amazon-web-servicesaws-cloudformationaws-clicloud9-ideaws-cloud9

Is it possible to use cloud formation to deploy a Cloud9 ide on an EC2 image that is not obsolete?


Apparently Cloud9 out of the box is being shipped on an essentially obsolete EC2 instance, as it does not have a current, recent, or viable instance of the aws cli.

$ aws --version
aws-cli/1.19.112 Python/2.7.18 Linux/4.14.296-222.539.amzn2.x86_64 botocore/1.20.112

As far as I can tell, Amazon recommends using version 2.9.1; But even the most recent series 1 version is 1.27.19

Is there any way of using CloudFormation to deploy Cloud9 on a more contemporary EC2 instance? I want to roll Cloud9 out to a dev organization, but it is distressing to me that it seems to be deployed crippled (and yes, I need to use more recent cli options for the initial configuration of each new IDE).


Solution

  • Have you tried with the identifier for the Amazon Machine Image (AMI)?

    That's used to create the EC2 instance, because to declare this entity in your AWS CloudFormation template need use this syntax in your JSON file:

    {
      "Type" : "AWS::Cloud9::EnvironmentEC2",
      "Properties" : {
          "AutomaticStopTimeMinutes" : Integer,
          "ConnectionType" : String,
          "Description" : String,
          "ImageId" : String,
          "InstanceType" : String,
          "Name" : String,
          "OwnerArn" : String,
          "Repositories" : [ Repository, ... ],
          "SubnetId" : String,
          "Tags" : [ Tag, ... ]
        }
    }
    

    Then, to choose an AMI for the instance, you must specify a valid 'AMI alias' or a valid AWS Systems Manager path, the default AMI is used if the parameter isn't explicitly assigned a value in the request.

    Check the entire process in the AWS Cloud9 environment EC2.

    AMI aliases

    • Amazon Linux (default): amazonlinux-1-x86_64
    • Amazon Linux 2: amazonlinux-2-x86_64
    • Ubuntu 18.04: ubuntu-18.04-x86_64

    SSM paths

    • Amazon Linux (default): resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64
    • Amazon Linux 2: resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64
    • Ubuntu 18.04: resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64