deployfish has commands for managing the whole lifecycle of your application:
Safely and easily create, update, destroy and restart ECS services
Safely and easily create, update, run, schedule and unschedule ECS tasks
Extensive support for ECS related services like load balancing, application autoscaling and service discovery
Easily scale the number of containers in your service, optionally scaling its associated autoscaling group at the same time
Manage multiple environments for your task or service (test, qa, prod, etc.) in multiple AWS accounts.
Uses AWS Parameter Store for secrets for your containers
View the configuration and status of running ECS services
Run a one-off command related to your service
Easily exec through your VPC bastion host into your running containers, or ssh into a ECS container machine in your cluster.
Setup SSH tunnels to the private AWS resources in VPC that your service uses so that you can connect to them from your work machine.
Extensible! Add additional functionality through custom deployfish modules.
Works great in CodeBuild steps in a CodePipeline based CI/CD system!
deployfish integrates with
Terraform state files so that you can use the
values of terraform outputs directly in your
Define your tasks and services in
deployto start managing your tasks and services
deployfish.yml looks like this:
services: - name: my-service environment: prod cluster: my-cluster count: 2 load_balancer: service_role_arn: arn:aws:iam::123142123547:role/ecsServiceRole load_balancer_name: my-service-elb container_name: my-service container_port: 80 family: my-service network_mode: bridge task_role_arn: arn:aws:iam::123142123547:role/myTaskRole containers: - name: my-service image: 123142123547.dkr.ecr.us-west-2.amazonaws.com/my-service:0.0.1 cpu: 128 memory: 256 ports: - "80" environment: - ENVIRONMENT=prod - ANOTHER_ENV_VAR=value - THIRD_ENV_VAR=value
examples/ folder in this repository for example