My engineering department uses ECS services as far as possible, so my team's setup basically involves breaking Prefect's docker-compose.yml file into a multi-container prefect-server ECS service (hasura, graphql, towel, apollo), a prefect-ui ECS service, and another ECS service for the local agent/local executor. My idea was that when the agent/executor ECS task starts up, it will create projects as needed, register the flows, and then start the agent. Our usual CI/CD process (triggered by pushing to GitHub) would have already created the Docker image for the container that this ECS task runs, so the updated flows will already be there, ready to be serialised to be saved in S3 storage.
It seems to work, but if you're thinking of going this path, unfortunately, we're encountering issues where the ECS task restarts for various reasons other than changes to the flows initiated by pushing to GitHub, and this then re-registers the flows unnecessarily (and eats S3 storage unnecessarily too, I believe). Consequently, I'm looking to see if we can integrate flow registration into the CI/CD process, so we only register the flows when we push to GitHub, not when we restart the ECS task.