Serve gitlab-runners from a mirror/cache instance

Hello everyone,

following setup:

Selfhosted Gitlab Instance on AWS, gitlab-runner controller on AWS and a variable amount of gitlab-runners (docker+machine).
That works fine but starts to get really expensive because we run a lot pipelines.

So we thought about moving the runners to a cheaper hosting provider.
The problem would be the high amount of outgoing traffic to these runners as we want to keep the gitlab instance itself on AWS.
Is there a way to setup a gitlab mirror instance (or something like a git cache) that runners can use to get the data from git and store temporary artifacts?

Thank you.