All Projects → labd → ecs-deplojo

labd / ecs-deplojo

Licence: MIT license
Deployment tool for Amazon ECS

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to ecs-deplojo

Compose Cli
Easily run your Compose application to the cloud with compose-cli
Stars: ✭ 353 (+1757.89%)
Mutual labels:  ecs, amazon-web-services
terraform-aws-ecs-fargate-scheduled-task
AWS ECS Fargate Schedule Task Terraform Module
Stars: ✭ 25 (+31.58%)
Mutual labels:  ecs, amazon-web-services
Amazon Ecs Interstella Workshop
Amazon ECS Interstella Workshops CON209/318/319/407
Stars: ✭ 57 (+200%)
Mutual labels:  ecs, amazon-web-services
provose
Provose is a new way to manage your Amazon Web Services infrastructure.
Stars: ✭ 27 (+42.11%)
Mutual labels:  ecs, amazon-web-services
Amazon Ecs Nodejs Microservices
Reference architecture that shows how to take a Node.js application, containerize it, and deploy it as microservices on Amazon Elastic Container Service.
Stars: ✭ 483 (+2442.11%)
Mutual labels:  ecs, amazon-web-services
Ecs Deploy
Powerful CLI tool to simplify Amazon ECS deployments, rollbacks & scaling
Stars: ✭ 541 (+2747.37%)
Mutual labels:  ecs, amazon-web-services
terraform-aws-ecs-web-service
A Terraform module to create an Amazon Web Services (AWS) EC2 Container Service (ECS) service associated with an Application Load Balancer (ALB).
Stars: ✭ 26 (+36.84%)
Mutual labels:  ecs, amazon-web-services
aws-lambda-zombie-workshop
Code and walkthrough labs to set up a serverless chat application for the Zombie Apocalypse Workshop
Stars: ✭ 615 (+3136.84%)
Mutual labels:  amazon-web-services
aws-cfn-custom-resource-lambda-edge
🏗 AWS CloudFormation custom resource that allows deploying Lambda@Edge from any region
Stars: ✭ 19 (+0%)
Mutual labels:  amazon-web-services
aws-sqs-sns-client
AWS SNS SQS client UI
Stars: ✭ 26 (+36.84%)
Mutual labels:  amazon-web-services
barcelona
PaaS built on top of AWS
Stars: ✭ 46 (+142.11%)
Mutual labels:  ecs
ecsrx.buffs
EcsRx plugin for a simple scaffolding for buff/effect system
Stars: ✭ 21 (+10.53%)
Mutual labels:  ecs
social-network
Microservices project
Stars: ✭ 39 (+105.26%)
Mutual labels:  amazon-web-services
terraform-emr-spark-example
An example Terraform project that will configure a Secure and Customizable Spark Cluster on Amazon EMR.
Stars: ✭ 43 (+126.32%)
Mutual labels:  amazon-web-services
aws-lambda-decorators
A set of Python decorators to simplify AWS lambda development
Stars: ✭ 19 (+0%)
Mutual labels:  amazon-web-services
terraform-aws-ecs-alb-service-task
Terraform module which implements an ECS service which exposes a web service via ALB.
Stars: ✭ 108 (+468.42%)
Mutual labels:  ecs
aws-signature-version-4
The buttoned-up and boring, but deeply analyzed, implementation of SigV4 in .NET
Stars: ✭ 57 (+200%)
Mutual labels:  amazon-web-services
harmony-ecs
A small archetypal ECS focused on compatibility and performance
Stars: ✭ 33 (+73.68%)
Mutual labels:  ecs
apecs
A petite entity component system
Stars: ✭ 17 (-10.53%)
Mutual labels:  ecs
echo
Super lightweight Entity Component System framework for Haxe
Stars: ✭ 41 (+115.79%)
Mutual labels:  ecs

ecs-deplojo

Deployment tool for Amazon ECS.

Installation

pip install ecs-deplojo

Status

https://readthedocs.org/projects/ecs-deplojo/badge/?version=latest http://codecov.io/github/LabD/ecs-deplojo/coverage.svg?branch=master

Usage

Usage: ecs-deplojo [OPTIONS]

Options:
  --config FILENAME   [required]
  --var VAR
  --dry-run
  --output-path PATH
  --role-arn <optional arn>
  --help              Show this message and exit.

Example configuration

---
cluster_name: example

environment:
    DATABASE_URL: postgresql://

task_definitions:
  web:
    template: task_definitions/web.json
    overrides:
      uwsgi:
        memory: 512
        portMappings:
          - hostPort: 0
            containerPort: 8080
            protocol: tcp
  manage:
    template: task_definitions/manage.json

services:
  web:
    task_definition: web

before_deploy:
  - task_definition: manage
    container: uwsgi
    command: manage.py migrate --noinput

after_deploy:
  - task_definition: manage
    container: uwsgi
    command: manage.py clearsessions

Using SSM secrets

Warning secrets will become visible in the container's environent, use with caution

When you want to use the AWS SSM secrets in your configuration you can use the secrets section, however this needs some additional configuration within AWS

At first you need an AWS IAM role to use as the ECS execution role, this role needs access to the secrets in Secrets Manager or Parameter store and will only be used during the startup of your Docker container.

Example configuration:

--
cluster_name: example

environment:
  NORMAL_ENV_VAR: value_of_variable

secrets:
  DATABASE_URL: /path/to/secret/DATABASE_URL

task_definitions:
  web:
    execution_role_arn: arn:aws:iam::<account_id>:role/execution_role_name
    template: task_definitions/web.json

services:
  web:
    task_definition: web

When the container is started the secrets are available as environment variables and hidden in the AWS ECS console, this is not recommended in production.

AWS Default VPC

When running your servers in the AWS default VPC you need networkMode="awsvpc" in your task definition JSON file, this will ensure that no hostnames are set for the containers, since this isn't supported by AWS.

AWS Fargate

Unlike EC2 based clusters AWS Fargate needs a execution_role_arn to work, this can be set in your service definition in the YAML file.

Example log output

Starting deploy on cluster example (1 services)
Registered new task definition web:10
Starting one-off task 'manage.py migrate --noinput' via manage:10 (uwsgi)
Updating service web with task defintion web:10
Waiting for deployments
Waiting for services: web (0/2)
Waiting for services: web (1/2)
Waiting for services: web (2/2)
Deployment finished: web (2/2)
Starting one-off task 'manage.py clearsessions' via manage:10 (uwsgi)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].