TurnKey GNU/Linux Containers on the AWS marketplace

TurnKey GNU/Linux provides a number of ready-to-go containers on the AWS marketplace. Built from scratch with hassle-free deployment in mind, these products allow you to deploy a TurnKey product with minimum effort. After you subscribe, there are multiple ways to launch your containers in the cloud:

CloudFormation stack (recommended)

Our CloudFormation stack template will take care of setting up all of the infrastructure required to get you up and running on ECS in no time. Prior experience with AWS ECS is not required but helpful and sane defaults ensure that you only need to pick the desired appliance and launch the stack if there are no special requirements.

Using the AWS control panel

TODO

Using the AWS CLI tools

$ aws cloudformation validate-template --template-url=https://s3.amazonaws.com/cf-templates-1gtlnxz8t5bpo-us-east-1/test.json
$ aws cloudformation create-stack
    \ --template-url=https://s3.amazonaws.com/cf-templates-1gtlnxz8t5bpo-us-east-1/test.json
    \ --stack-name "TKLTestStack"
    \ --parameters \
        ParameterKey=KeyName,ParameterValue=test \
        ParameterKey=TaskDefinitionName,ParameterValue=NginxTaskDefinition
    \ --capabilities CAPABILITY_IAM

Standalone task definitions

An alternate method of deploying our products without CloudFormation is by using the standalone task definitions which describe a single task which can be run either by itself or as part of an ECS service. The task definitions are universal in that they can be launched as either ECS-EC2 or Fargate tasks with no changes. This option requires some ECS know-how on the part of the user to run smoothly therefore it is the more advanced method however it also allows for more customization.

Using the AWS control panel

...

Using the AWS CLI tools

$ export PRODUCT=turnkey-nginx
$ wget "https://s3.amazonaws.com/cf-templates-1gtlnxz8t5bpo-us-east-1/$PRODUCT.json"
$ aws ecs register-task-definition --cli-input-json "file://$(pwd)/$PRODUCT.json"
$ aws run-task --task-definition="$PRODUCT"