It seems like that egress statis IP is still http-proxy based outbound IP mapping. It doesn’t work for non-http traffic. Can someone from fly let us know if support for non-http calls is in the works?
I just lost a week on this issue, pulling my hair out. Simply hadn’t faced it before, but it’s clear now.
Could you PLEASE document this platform constraint more clearly, adding catch terms for MongoDB Atlas and other common cases.
Could you please doc the static, and static egress IP functionality better. Add line items on the pricing page too? This thread was my first contact with the topic after 10-20+ search & LLM sessions.
It was a good addition to the platform’s core capabilities, but there’s a broad consensus that the current incarnation is a bit low-level and inconvenient for many users, indeed. Last I heard there was interest in providing a higher-level alternative (which would essentially do the proxying mentioned above behind the scenes, for you):
I seem to remember that there was also a more recent reference to work actually currently being in progress on this (as opposed to just being a good idea), but I haven’t been able to find that post again yet, …
Unless you’re using the blue-green mode, this part is often fine. Each Machine retains its identity during a rolling deploy.
The release_command causes problems, though, since that’s a new, ephemeral Machine each round…
Use the same IP for all machine inside apps (or even orgs ? would be better) (i use proxy squid for now )
DO NOT Delete my ip when i try fly scale count 0 (can we have like volumes here guys , where i can re attach, i have nightmare incident because of this, morning migration i want to rescale the website i try to fly scale count 0 then update it again now my IP is gone, the thing is my app is sending request to atleast 10 different third party apis and half of them use IP Validation)
Ouch, … The app-scoped IPs in the quote above would be like the Squid approach, except that the proxies would be managed by Fly.io instead of by you. (That’s my understanding, anyway.)
You would no longer be able to accidentally release the IP by scaling, I wouldn’t think.
These might end up being two IPs per region, though, for HA…
that would be better if they manage the squid config or give us sample , tbh i have skill issue problem with this network thing sometimes my squid lag, die, wont work i have no idea why
If you just need the egress IP for non-db: external APIs, then, yep, it typically would be fine.
However, if it’s the database itself that’s external, then the release_command will fail, since it’ll be running on a new Machine each time (and hence won’t have a static egress IP of its own, ).
Why can we not just assign a dedicated IP and use that for inbound and outbound requests? That is what I would expect when I see dedicated IPv4. This is a serious problem that could have cost us hundredds of thousands of $ if we hadn’t caught it. There should just be a single IPv4 address used for egress and ingress, and it should be used for all machines in the app. You can obviously use a NAT to decide which machine to route to.
Your plea (along with the related ones of @erlangga, @zwhitchcox, and others) has been heard, it seems! The beta of per-app egress IPs was just announced:
There are still some limitations, like really being per-region rather than strictly per-app, still a distinction between ingress and egress(?), etc., but it looks like a much closer approximation of the ideal…