If you are not already doing so, I recommend you look into using incremental checkpointing (with RocksDB). This feature was added in Flink 1.4, and has proven to be very helpful for Flink applications with large state.
Incremental checkpointing is turned off by default. To enable it, pass true to the constructor, like this
RocksDBStateBackend backend =
new RocksDBStateBackend(filebackend, true);
or set state.backend.incremental to true in your config file.
This won't directly address what you asked -- how to throttle the checkpointing so it doesn't saturate the network -- but should help, nonetheless.
Also, note that Amazon recommends using the Elastic Network Adapter in applications that make heavy use of S3. This provides up to 25 Gbps of bandwidth.
For more on working with large state in Flink, you might want to look at