basecamp / basecamp/thruster

Guidance on running on AWS ECS

Open
#53 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
1.2k
Forks
58
Avg merge
1d 2h
Merged PRs (30d)
6

Description

Running Thruster on HTTP is all grand and lovely, but when I went to set this up on HTTPS on ECS I had a few issues leading to it just not accepting any requests.

The setup I tried was an AWS ALB to a ip https target group which I then connected to my cluster with an ECS task. On the target group and ECS task I tried both http/2 and http/1 combinations and even tried public IP's. In all cases the Rails application and Thruster start up and then no traffic can get to the task, not even the health checks. I did check and even have work devops check the security groups. Best we can tell is that it can't open a connection.

Current theory is maybe it isn't compatible with a ALB.

Is there a recommended setup? Having HTTPS at the task level would be amazing.

```20 November 2024 at 19:52 (UTC)
Use Ctrl-C to stop
staff
20 November 2024 at 19:52 (UTC)
Puma starting in single mode...
staff
20 November 2024 at 19:52 (UTC)
* Puma version: 6.4.3 (ruby 3.3.6-p108) ("The Eagle of Durango")
staff
20 November 2024 at 19:52 (UTC)
* Min threads: 3
staff
20 November 2024 at 19:52 (UTC)
* Max threads: 3
staff
20 November 2024 at 19:52 (UTC)
* Environment: staging
staff
20 November 2024 at 19:52 (UTC)
* PID: 84
staff
20 November 2024 at 19:52 (UTC)
* Listening on http://0.0.0.0:3000
staff
20 November 2024 at 19:52 (UTC)
=> Booting Puma
staff
20 November 2024 at 19:52 (UTC)
=> Rails 8.0.0 application starting in staging
staff
20 November 2024 at 19:52 (UTC)
=> Run `bin/rails server --help` for more startup options
staff
20 November 2024 at 19:52 (UTC)
{"time":"2024-11-20T19:52:02.825479254Z","level":"DEBUG","msg":"No custom 502 page found","path":"./public/502.html"}
staff
20 November 2024 at 19:52 (UTC)
{"time":"2024-11-20T19:52:02.825585699Z","level":"DEBUG","msg":"TLS: initializing","directory":"https://acme-v02.api.letsencrypt.org/directory","using_eab":false}
staff
20 November 2024 at 19:52 (UTC)
{"time":"2024-11-20T19:52:02.825680509Z","level":"INFO","msg":"Server started","http":":80","https":":443","tls_domain":["stage-staff.codebunnies.com"]}```

Contributor guide

Open the contributing guide

Research direction

Start with the AWS ALB, HTTPS target group, ECS task, and Thruster startup and health-check behavior described in the issue. Compare the HTTP/2 and HTTP/1 combinations and the reported listeners on ports 80 and 443; done means identifying a confirmed compatible setup or documenting the incompatibility and required configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, go, rails, ruby
Domain
backend, cloud, infrastructure
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.