{"id":15322814,"url":"https://github.com/msfidelis/ecs-pipeline","last_synced_at":"2025-08-16T19:09:48.502Z","repository":{"id":92817577,"uuid":"128402022","full_name":"msfidelis/ecs-pipeline","owner":"msfidelis","description":":cloud: :whale: :zap: :rocket: Create environment and deployment pipelines to ECS Fargate with CodePipeline, CodeBuild and Github using Terraform","archived":false,"fork":false,"pushed_at":"2020-10-06T14:56:19.000Z","size":17726,"stargazers_count":117,"open_issues_count":3,"forks_count":46,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-14T19:43:42.867Z","etag":null,"topics":["aws","codebuild","codepipeline","devops","docker","ecr","ecs","ecs-cluster","fargate","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/msfidelis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-06T13:59:57.000Z","updated_at":"2025-03-15T23:20:41.000Z","dependencies_parsed_at":"2023-05-20T19:47:11.906Z","dependency_job_id":null,"html_url":"https://github.com/msfidelis/ecs-pipeline","commit_stats":{"total_commits":52,"total_committers":5,"mean_commits":10.4,"dds":0.5961538461538461,"last_synced_commit":"4222feeb547821dde8dbb6dfb1b2a8795eb14395"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/msfidelis/ecs-pipeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msfidelis%2Fecs-pipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msfidelis%2Fecs-pipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msfidelis%2Fecs-pipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msfidelis%2Fecs-pipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msfidelis","download_url":"https://codeload.github.com/msfidelis/ecs-pipeline/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msfidelis%2Fecs-pipeline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270758024,"owners_count":24640176,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","codebuild","codepipeline","devops","docker","ecr","ecs","ecs-cluster","fargate","terraform"],"created_at":"2024-10-01T09:18:10.256Z","updated_at":"2025-08-16T19:09:48.452Z","avatar_url":"https://github.com/msfidelis.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ECS Simple Pipeline - Easy way to deploy Containers on AWS\nCreate environment and deployment pipelines using ECS, ECR, CodePipeline and Git with Terraform\n\n## Check this repo if you need to ship more services to production - [ECS Microservices Orchestration](https://github.com/msfidelis/ecs-microservices-orchestration)\n\n## Architecture \n\n![Arch](.github/images/ECS-Arquitetura.png)\n\n## Deploy Pipeline\n\n![Steps](.github/images/pipeline-demo.png)\n\n# How to Deploy\n\n## Edit your preferences\n\nEdit `variables.tf` file to customize application preferences like Github account, repo and owner, Load Balancer ports and cluster preferences. \n\n```hcl\n# Customize the Cluster Name\nvariable \"cluster_name\" {\n  description = \"ECS Cluster Name\"\n  default     = \"web-app\"\n}\n\n# Customize your ECR Registry Name\nvariable \"app_repository_name\" {\n  description = \"ECR Repository Name\"\n  default     = \"web-app\"\n}\n\n###### APPLICATION OPTIONS  ######\nvariable \"container_name\" {\n  description = \"Container app name\"\n  default     = \"micro-api\"\n}\n```\n\nEdit the Github preferences in the same file to specify infos like repo, owner or organization, branches e etc. \n\n```hcl\n# Github Repository Owner\nvariable \"git_repository_owner\" {\n  description = \"Github Repository Owner\"\n  default     = \"msfidelis\"\n}\n\n# Github Repository Project Name\nvariable \"git_repository_name\" {\n  description = \"Project name on Github\"\n  default     = \"micro-api\"\n}\n\n# Default Branch\nvariable \"git_repository_branch\" {\n  description = \"Github Project Branch\"\n  default     = \"master\"\n}\n```\n\n## Edit Auto Scaling Metrics\n\n```hcl\n# Number of containers\nvariable \"desired_tasks\" {\n  description = \"Number of containers desired to run app task\"\n  default     = 2\n}\n\nvariable \"min_tasks\" {\n  description = \"Minimum\"\n  default     = 2\n}\n\nvariable \"max_tasks\" {\n  description = \"Maximum\"\n  default     = 4\n}\n\nvariable \"cpu_to_scale_up\" {\n  description = \"CPU % to Scale Up the number of containers\"\n  default     = 80\n}\n\nvariable \"cpu_to_scale_down\" {\n  description = \"CPU % to Scale Down the number of containers\"\n  default     = 30\n}\n```\n\n## Edit your Build steps\n\nThis demo build, dockerize and deploy a simple Node.JS application. Customize your build steps on `modules/pipeline/templates/buildspec.yml` file. \n\n\n## How to Deploy\n\n### 1) Github Access Token\n\n* Create your Github Access Token to Command Line. [This link have all information about this](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/). \n\n\n* Export Github Token as an environment variable. \n\n```bash\nexport GITHUB_TOKEN=YOUR_TOKEN\n``` \n\n### 2) Terraform \n\n* Initialize Terraform \n\n```bash\nterraform init\n```\n\n* Plan our modifications\n\n```bash\nterraform plan\n```\n\n* Apply the changes on AWS\n\n```bash\nterraform apply\n```\n\n#### References\n\n* [Easy deploy your Docker applications to AWS using ECS and Fargate](https://thecode.pub/easy-deploy-your-docker-applications-to-aws-using-ecs-and-fargate-a988a1cc842f)\n\n* [ECS Terraform - By alex](https://github.com/alex/ecs-terraform)\n\n* [Terraform-ECS by arminc](https://github.com/arminc/terraform-ecs)\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsfidelis%2Fecs-pipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsfidelis%2Fecs-pipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsfidelis%2Fecs-pipeline/lists"}