{"id":24388172,"url":"https://github.com/masterpointio/ecs-101-demo","last_synced_at":"2025-06-30T07:35:40.535Z","repository":{"id":146665145,"uuid":"273309712","full_name":"masterpointio/ecs-101-demo","owner":"masterpointio","description":"A small demo application for an ECS 101 talk I'm giving @ AWSMeetupGroup","archived":false,"fork":false,"pushed_at":"2020-07-10T12:17:25.000Z","size":245,"stargazers_count":2,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-30T01:11:26.560Z","etag":null,"topics":["aws","docker","ecs","terraform"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=pOvV0FypJA0\u0026t=19s","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masterpointio.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,"zenodo":null}},"created_at":"2020-06-18T18:17:39.000Z","updated_at":"2024-12-30T00:49:48.000Z","dependencies_parsed_at":"2023-07-14T23:31:07.883Z","dependency_job_id":null,"html_url":"https://github.com/masterpointio/ecs-101-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/masterpointio/ecs-101-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterpointio%2Fecs-101-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterpointio%2Fecs-101-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterpointio%2Fecs-101-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterpointio%2Fecs-101-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masterpointio","download_url":"https://codeload.github.com/masterpointio/ecs-101-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterpointio%2Fecs-101-demo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262731873,"owners_count":23355440,"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","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","docker","ecs","terraform"],"created_at":"2025-01-19T13:56:35.114Z","updated_at":"2025-06-30T07:35:40.522Z","avatar_url":"https://github.com/masterpointio.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ecs-101-demo\n\nThis is a small demo application for an ECS 101 talk that I gave @ AWSMeetupGroup. [Here is the recorded video of the talk](https://www.youtube.com/watch?v=pOvV0FypJA0\u0026t=19s).\n\n## Repo Contents\n\n1. The Demo Application code resides in `app/` and was originally copied from [awesome-compose](https://github.com/docker/awesome-compose), specifically the [React, Express, Mongo example](https://github.com/docker/awesome-compose/tree/master/react-express-mongodb). It has been slightly adapted for this example.\n1. The Infrastructure as Code for this example has been written in Terraform and resides in `terraform/`.\n1. The Task Definitions for the 3 services have been pulled down and shared in `task_definitions/`.\n\n## Deploying to AWS yourself\n\n### Prequisites\n\n1. [Terraform v0.12.25](https://github.com/tfutils/tfenv)\n1. [Docker](https://docs.docker.com/get-docker/) + [Compose](https://docs.docker.com/compose/install/)\n1. An AWS Account + AWS IAM Credentials\n\n### Instructions\n\nExecute the following commands and tasks to spin up this ECS project in your own AWS account:\n\n1. `cd ./terraform`\n1. Update `root.auto.tfvars` with your own values\n1. `terraform init`\n1. `terraform plan -out=run.plan`\n   1. Check out this commands plan output to make sure it fits what you want to deploy\n1. `terraform apply run.plan`\n1. Repeat the previous two steps until you don't have any apply errors (Terraform typically ain't perfect 😅)\n1. Copy down the two ECR endpoints that Terraform outputs\n   1. `export FRONTEND_ECR_URL=$(terraform output frontend_repo_url)`\n   1. `export BACKEND_ECR_URL=$(terraform output backend_repo_url)`\n1. Build and push the Frontend image:\n   1. `cd ../app/frontend`\n   1. `docker build -tag $FRONTEND_ECR_URL:latest .`\n   1. `docker push $FRONTEND_ECR_URL`\n1. Build and push the Backend image:\n   1. `cd ../app/backend`\n   1. `docker build -tag $BACKEND_ECR_URL:latest .`\n   1. `docker push $BACKEND_ECR_URL`\n1. Sign into the AWS console and check out the app running in ECS!\n1. Your app should also be running @ `ecs101.${var.domain}`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterpointio%2Fecs-101-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasterpointio%2Fecs-101-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterpointio%2Fecs-101-demo/lists"}