개인용 웹 프록시 구성 - 가성비 비교


요약

개인 서버를 가지고 프록시를 구성할 때 트래픽 비용이 가장 큰 비중을 차지하게 되고, 이 트래픽에서 무료 구간을 제공하는 AWS LightSail이 실질적으로 가장 싼 방안이 된다.

배경 - 개인용 프록시가 왜 필요한데?

지역제한 걸린 웹사이트에 들어가려면 프록시를 쓸 수밖에 없다. VPN 제공 서비스 업체를 이용하는 것도 가능하지만 VPN 앱을 까는것도 좀 불만족스럽고 기왕이면 서버를 써서 다른 일도 같이 하면 좋을 것 같으니 가상서버에다가 직접 프록시를 구성하는 방법을 찾아보게 되었다.

가상서버를 이용한 프록시 구성

가장 쉬운 방법은 ssh의 SOCKS 프록시 설정이다. 이미 ssh가 든든하게 보안 채널을 설정해주기 때문에 별도의 인증을 구성할 필요도 없고, 요즘 어지간한 사용자 OS는 모두 ssh를 기본 탑재하는 데다가 대부분의 브라우저들도 자체 네트워크 설정에서 바로 SOCKS 프록시 설정이 가능하니 별도의 프로그램을 설치할 필요도 없다.

그렇지만 가상서버를 그때그때 띄웠다 닫았다 하기를 원한다면 적당히 스크립트를 만들어줄 필요가 있다. 쉘 스크립트로 할 수도 있겠지만 Python이 강력하고 편하다.

# %%
import paramiko
import subprocess

# 필요하면 여기서 서버를 새로 시작하면 됨.

#%%
ip = '1.1.1.1' # Set actual IP address
kf = "/home/blmarket/.ssh/ryzen.pem"
k = paramiko.RSAKey.from_private_key_file(kf)

# %%
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# %%
ssh.connect(ip, username = 'admin', pkey = k)

# %%
socks = ssh.open_socks_proxy(bind_address = '127.0.0.1', port=1080)

# %%
r2 = subprocess.Popen('chromium --proxy-server="socks5://127.0.0.1:1080" --user-data-dir=/home/blmarket/.config/chromium-with-proxy', shell=True)
r2

# %%
ssh.close()

# 여기서 서버를 꼭 닫아줄 것

비교

가상서버 제공자마다 요금 체계가 달라서 정리가 조금 필요하다. 대충 동영상을 마구 본다 치면 50기가 정도는 쓴다고 가정하면:

항목한국에 서버가 있는가분/시간 단위 과금이 가능한가서버 비용스토리지 비용트래픽 비용총합
AWS LightSailOO3.50 USDN/A1TB까지 공짜3.50 USD
GCPOOFree10GB까지 공짜?0.20 USD/GB트래픽 터지면 10달러 넘어감

결론

AWS가 채고시다…