All Projects → msfidelis → Ecs Pipeline

msfidelis / Ecs Pipeline

Licence: mit
☁️ 🐳 ⚡️ 🚀 Create environment and deployment pipelines to ECS Fargate with CodePipeline, CodeBuild and Github using Terraform

Projects that are alternatives of or similar to Ecs Pipeline

Terraform Aws Couchbase
Reusable infrastructure modules for running Couchbase on AWS
Stars: ✭ 73 (-14.12%)
Mutual labels:  aws, terraform, hcl, devops
Terraform Aws Secure Baseline
Terraform module to set up your AWS account with the secure baseline configuration based on CIS Amazon Web Services Foundations and AWS Foundational Security Best Practices.
Stars: ✭ 596 (+601.18%)
Mutual labels:  aws, terraform, hcl, devops
Infrastructure As Code Talk
Sample code for the talk "Infrastructure-as-code: running microservices on AWS with Docker, ECS, and Terraform"
Stars: ✭ 520 (+511.76%)
Mutual labels:  aws, ecs, terraform, hcl
Terraform Aws Ecs Container Definition
Terraform module to generate well-formed JSON documents (container definitions) that are passed to the aws_ecs_task_definition Terraform resource
Stars: ✭ 217 (+155.29%)
Mutual labels:  aws, ecs, terraform, hcl
Terraform Aws Alb
Terraform module to provision a standard ALB for HTTP/HTTP traffic
Stars: ✭ 53 (-37.65%)
Mutual labels:  aws, ecs, terraform, hcl
Terraform Ecs Fargate
A Terraform template used for provisioning web application stacks on AWS ECS Fargate
Stars: ✭ 293 (+244.71%)
Mutual labels:  aws, ecs, terraform, hcl
Terraform Modules
Reusable Terraform modules
Stars: ✭ 63 (-25.88%)
Mutual labels:  aws, terraform, hcl, devops
Aws Ecs Airflow
Run Airflow in AWS ECS(Elastic Container Service) using Fargate tasks
Stars: ✭ 107 (+25.88%)
Mutual labels:  aws, ecs, terraform, hcl
Terraform Aws Ecs Fargate
Terraform module which creates ECS Fargate resources on AWS.
Stars: ✭ 35 (-58.82%)
Mutual labels:  aws, ecs, terraform, hcl
Ebs bckup
Stars: ✭ 32 (-62.35%)
Mutual labels:  aws, terraform, hcl, devops
Terraform Fargate Example
Example repository to run an ECS cluster on Fargate
Stars: ✭ 206 (+142.35%)
Mutual labels:  aws, ecs, terraform, hcl
Terraform Eks
Terraform for AWS EKS
Stars: ✭ 82 (-3.53%)
Mutual labels:  aws, terraform, hcl, devops
Vishwakarma
Terraform modules to create a self-hosting Kubernetes cluster on opinionated Cloud Platform.
Stars: ✭ 127 (+49.41%)
Mutual labels:  aws, terraform, hcl, devops
Terratag
Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources
Stars: ✭ 385 (+352.94%)
Mutual labels:  aws, terraform, hcl, devops
Terraform
Terraform automation for Cloud
Stars: ✭ 121 (+42.35%)
Mutual labels:  aws, terraform, hcl, devops
Intro To Terraform
Sample code for the blog post series "A Comprehensive Guide to Terraform."
Stars: ✭ 550 (+547.06%)
Mutual labels:  aws, terraform, hcl, devops
Terraform Modules
Terraform Modules
Stars: ✭ 25 (-70.59%)
Mutual labels:  aws, terraform, hcl, devops
Terraform Ecs Autoscale Alb
ECS cluster with instance and service autoscaling configured and running behind an ALB with path based routing set up
Stars: ✭ 60 (-29.41%)
Mutual labels:  aws, ecs, terraform, hcl
Terraform Aws Ecs Codepipeline
Terraform Module for CI/CD with AWS Code Pipeline and Code Build for ECS https://cloudposse.com/
Stars: ✭ 85 (+0%)
Mutual labels:  aws, ecs, terraform, hcl
Tf Jitsi
5-minute self-hosted Jitsi on AWS
Stars: ✭ 73 (-14.12%)
Mutual labels:  aws, terraform, hcl

ECS Simple Pipeline - Easy way to deploy Containers on AWS

Create environment and deployment pipelines using ECS, ECR, CodePipeline and Git with Terraform

Check this repo if you need to ship more services to production - ECS Microservices Orchestration

Architecture

Arch

Deploy Pipeline

Steps

How to Deploy

Edit your preferences

Edit variables.tf file to customize application preferences like Github account, repo and owner, Load Balancer ports and cluster preferences.

# Customize the Cluster Name
variable "cluster_name" {
  description = "ECS Cluster Name"
  default     = "web-app"
}

# Customize your ECR Registry Name
variable "app_repository_name" {
  description = "ECR Repository Name"
  default     = "web-app"
}

###### APPLICATION OPTIONS  ######
variable "container_name" {
  description = "Container app name"
  default     = "micro-api"
}

Edit the Github preferences in the same file to specify infos like repo, owner or organization, branches e etc.

# Github Repository Owner
variable "git_repository_owner" {
  description = "Github Repository Owner"
  default     = "msfidelis"
}

# Github Repository Project Name
variable "git_repository_name" {
  description = "Project name on Github"
  default     = "micro-api"
}

# Default Branch
variable "git_repository_branch" {
  description = "Github Project Branch"
  default     = "master"
}

Edit Auto Scaling Metrics

# Number of containers
variable "desired_tasks" {
  description = "Number of containers desired to run app task"
  default     = 2
}

variable "min_tasks" {
  description = "Minimum"
  default     = 2
}

variable "max_tasks" {
  description = "Maximum"
  default     = 4
}

variable "cpu_to_scale_up" {
  description = "CPU % to Scale Up the number of containers"
  default     = 80
}

variable "cpu_to_scale_down" {
  description = "CPU % to Scale Down the number of containers"
  default     = 30
}

Edit your Build steps

This demo build, dockerize and deploy a simple Node.JS application. Customize your build steps on modules/pipeline/templates/buildspec.yml file.

How to Deploy

1) Github Access Token

export GITHUB_TOKEN=YOUR_TOKEN

2) Terraform

  • Initialize Terraform
terraform init
  • Plan our modifications
terraform plan
  • Apply the changes on AWS
terraform apply

References

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].