If you’re a long-time Fly.io customer you will notice we first ship stuff and, later on, we add billing to it. Our pricing page has been for a while we charge ~$2 per dedicated IPv4 per month but we never actually did!
Dedicated IPv4 is a scarce resource but fortunately last December we had Announcement: Shared Anycast IPv4 and that bought us a ton of time until this was an issue and shared IPv4s are free!
We promise we would give a good heads up before we charged you and that’s here, we will only start billing in January 1st!
Do I need to do something for future apps?
New apps have been getting shared IPv4 when first deployed for a while, your new apps should be good to go with no unexpected charges. Also, just creating an app doesn’t assign IPs immediately.
How NOT to be billed?
I’m glad you asked. All you need to do is remove your dedicated IPv4 and add a shared IPv4. That takes roughly two commands per app (assuming you only have one dedicated IPv4 per app).
$ fly ips release 126.96.36.199 -a YOUR_APP_NAME
Released 188.8.131.52 from YOUR_APP_NAME
$ fly ips allocate-v4 --shared -a YOUR_APP_NAME
VERSION IP TYPE REGION
v4 184.108.40.206 shared global
If you have certificates make sure to update your DNS records! Currently you can only have either a shared or dedicated IPv4 so make sure to have a dedicated IPv6 as a fallback.
How do I know which apps have dedicated IPv4?
We shipped a new improvement to our IP usage page to show which apps have how dedicated IPs. It will show both dedicated IPv6 (which are free) and dedicated IPv4 (the ones that will eventually charge you).
Can I preview how much this would charge me?
We also shipped a preview in your invoice page that tells you how much dedicated IPv4 usage you have so far in the current month. These will not be added to your invoice right now but by January 1st they will be added for December’s charges. That means yes, you had free dedicated IPV4 usage from January 2023 until the end of November 2023 and we will not charge those.
Let us know if there’s any other questions, we’d love to hear them!
Just to check, when I have an A record currently using a dedicated IP, should I allocate a new shared IPv4, update the DNS record, wait for the TTL, and then remove the dedicated IP?
I assume the SSL certificate is fine too?
Awesome question! That’s correct, Ill update the topic to reflect that
Just one correction on my end: Currently you can only have either a shared or dedicated IPv4 so make sure to have a dedicated IPv6 as a fallback.
Does a custom HTTP service port (other than 80 and 443) require a dedicated IPv4 address?
I’m almost certain it doesn’t but can you paste your toml (feel free to hide things such as app name) so I can try it myself over the work-week on an app I own to confirm?
Here is the .toml file for the app with a custom HTTPS port:
app = "my-example-1234"
kill_signal = "SIGINT"
kill_timeout = "5s"
protocol = "tcp"
internal_port = 33128
processes = ["app"]
port = 33128
handlers = ["tls", "http"]
type = "connections"
hard_limit = 1000
soft_limit = 800
interval = "15s"
timeout = "2s"
grace_period = "15s"
Does it require a dedicated IPv4 address?
How do I connect to my app to run those two commands.
I never used CLI for Fly, so I’m not sure if browser authorization is enough, can I directly run these commands in Command Prompt?
I’m a bit confused, sorry about that, and also
220.127.116.11 should I write that IP? Because the v4 (of my Node) App has different numbers than those?
Hey @Aleksandar1 ! Installing Flyctl locally and then running the commands from command prompt is the easiest way. You can find the steps to install Flyctl based on your operating system here: Install flyctl · Fly Docs
If you don’t want to install it locally, you should be able to use our WebCLI to run the commands from your browser. Go to Sign In · Fly and click on the “Launch WebCLI” button.
18.104.22.168 should I write that IP?
No, you’ll need to replace that IP with the dedicated IPv4 address of your app that you want to release. If you don’t know the dedicated ipv4, you can find it by running
fly ips list -a <your_app_name>
How will billing work in regards to short lived machines, would they be billed based on the $2 per month converted into a per second rate? Similarly to how other resources (CPU, memory…) are charged.
To answer my own question: as of today, custom HTTP/HTTPS ports DO require a dedicated IPv4 address. Otherwise, the service cannot be communicated (SSL/TLS handshake error).
I have checked the usage page and even though it says I have 0 dedicated IPs I have $0.17 on my bill for a dedicated address. Why?
Just to confirm - you’re not seeing anything on this usage page (the usage could be for a now-deleted assignment)? The usage page you linked is the organisation usage summary whereas that one is the dedicated IP assignment page.
I see usage for a deleted app, I deleted it because I didn’t want a dedicated IP, but I still have that in my bill, so I will get charged for it?
This means that there is no way to perform a seamless migration without downtime on the ipv4 space?
Just want to say upfront - you won’t be charged. The $0.17 you see is a preview - we’re not going to begin charging for dedicated IPv4 until December.
If I’m understanding you correctly, you had a dedicated IPv4 address allocated to your app for some amount of time in November? We track IPv4 usage at increments of an hour, so that’s probably why you’re seeing a small amount.
Good point! I have an exact same question.
Yes, but I removed the dedicated IP address as soon as I noticed I had an amount in my bill, I think I noticed like few hours in
Yes so the preview charge you see will be the $2/month prorated for the few hours that the address was allocated to your app.