{"id":15859196,"url":"https://github.com/lkysow/containers-couch-consul-ecs","last_synced_at":"2026-03-11T22:42:36.761Z","repository":{"id":46049558,"uuid":"428463200","full_name":"lkysow/containers-couch-consul-ecs","owner":"lkysow","description":"Demo of Consul on ECS","archived":false,"fork":false,"pushed_at":"2021-11-17T19:24:41.000Z","size":26,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-10T14:42:27.359Z","etag":null,"topics":["aws","consul","containersfromthecouch","ecs"],"latest_commit_sha":null,"homepage":"https://www.consul.io/docs/ecs","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lkysow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-16T00:19:18.000Z","updated_at":"2022-01-30T15:06:37.000Z","dependencies_parsed_at":"2022-09-23T07:11:44.692Z","dependency_job_id":null,"html_url":"https://github.com/lkysow/containers-couch-consul-ecs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lkysow/containers-couch-consul-ecs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkysow%2Fcontainers-couch-consul-ecs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkysow%2Fcontainers-couch-consul-ecs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkysow%2Fcontainers-couch-consul-ecs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkysow%2Fcontainers-couch-consul-ecs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lkysow","download_url":"https://codeload.github.com/lkysow/containers-couch-consul-ecs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkysow%2Fcontainers-couch-consul-ecs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30405698,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T22:36:59.286Z","status":"ssl_error","status_checked_at":"2026-03-11T22:36:57.544Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","consul","containersfromthecouch","ecs"],"created_at":"2024-10-05T21:04:45.990Z","updated_at":"2026-03-11T22:42:36.743Z","avatar_url":"https://github.com/lkysow.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Consul on ECS Demo for Containers on the Couch\n\nThis demo stands up Consul on ECS and deploys three example appliations: greeter, greeting, and name. The service architecture is:\n\n```\nuser =\u003e ALB =\u003e greeter =\u003e greeting\n                       =\u003e name\n```\n\nThe greeter service depends on the greeting and name services. When it receives a request, it makes a further request to the greeting and name services\nto retrieve a greeting (e.g. \"Hello\") and a name (e.g. \"Torres\"). It then responds back with `Hello, Torres`.\n\n## Deployment\n\nTo deploy, first find out your IP address:\n\n```\ncurl ifconfig.me\n123.456.789.123%\n```\n\nThis IP address will be used to secure the load balancers.\n\nClone this repo, `cd` into its directory and create a `terraform.tfvars` file with that IP:\n\n```hcl\nlb_ingress_ip = \"207.6.233.68\"\n```\n\nRun `terraform apply` to spin up:\n* VPC\n* ECS cluster\n* The three applications\n* Prometheus\n\nThree URLs to the Consul UI, greeter service, and Prometheus will be output. You should be able to navigate to the greeter service URL.\n\n### Metrics\n\nIn order to configure Consul to emit metrics to Prometheus, you must set some [configuration entries](https://www.consul.io/docs/connect/config-entries).\n\nUse the Consul UI URL from your installation:\n\n```\nexport CONSUL_HTTP_ADDR=http://consul-server-123.us-east-1.elb.amazonaws.com:8500\n```\n\n[Download Consul](https://www.consul.io/downloads) and run:\n\n```\nconsul config write consul-configs/proxy-defaults.hcl\n```\n\nNow you need to restart the greeter, greeting, and name, tasks so they pick up this new config.\nYou can do this through the AWS console by stopping the tasks so new ones spin up.\n\nNow you should see Prometheus metrics in the Consul UI.\n\n### Routing\n\nIn order to try out Consul's routing configuration, apply the splitter and resolver configs:\n\n```\nconsul config write consul-configs/service-resolver.hcl\nconsul config write consul-configs/service-splitter.hcl\n```\n\nWhen set to the `green` subset, the greeting will always be `Guten Tag!`. Try modifying the splitter configuration to point at the `blue` subset.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flkysow%2Fcontainers-couch-consul-ecs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flkysow%2Fcontainers-couch-consul-ecs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flkysow%2Fcontainers-couch-consul-ecs/lists"}