A self-hosted rotating-proxy pool built on Amazon EC2. It manages a fleet of EC2 instances as proxies, hands one out on request, and rotates its public IP (or spins up a fresh instance) whenever you need a new address — giving you an endless supply of clean IPs without paying for a proxy service.
Built on top of ec2_proxy (the per-instance proxy control library) and boto3.
Status: work in progress.
- On startup, the
Managerdiscovers all EC2 instances in your account (minus an exclusion list) and ensures they're running as proxies. serve()hands out a proxy; when you're done with an IP, the instance it came from is queued to restart and pick up a new public IP.make_new_proxy()launches a brand-new instance from a configured AMI to grow the pool.- A background thread auto-manages restarting/rotating instances so fresh IPs are always available.
Edit config.py with your AWS credentials and settings:
| Field | Purpose |
|---|---|
Credentials.region / key / secret |
AWS region and IAM access keys. |
Exclusions.ids |
Instance IDs to leave alone (never used as proxies). |
Extras.image_id |
AMI used when launching new proxy instances. |
pip install -r requirements.txt
python main.py| File | Role |
|---|---|
main.py |
The Manager — discovers, serves, rotates, and auto-scales the proxy pool. |
create_new.py |
Launches a new EC2 proxy instance from the configured AMI. |
config.py |
AWS credentials, exclusions, and AMI settings. |
new_starting_script.txt |
User-data/bootstrap script for new instances. |