네트워킹 사용 사례에 맞는 VM 구성
이 페이지에서는 VM을 네트워크 프록시로 구성하는 방법을 설명합니다.
VM을 네트워크 프록시로 구성
하나의 인스턴스만 외부 액세스 권한을 갖고 다른 모든 인스턴스는 이 인스턴스를 프록시 서버로 사용하여 외부에 연결하도록 VPC 네트워크를 설계할 수 있습니다. 이 구성은 VPC 네트워크 내부 또는 외부에 대한 액세스 권한을 제어하거나 여러 개의 외부 IP 주소를 사용하는 비용을 줄이고자 하는 경우에 유용합니다.
이 예제에서는 Debian 이미지를 사용하는 VM 인스턴스에 네트워크 프록시를 설정하는 방법을 설명합니다. 여기서는 게이트웨이 인스턴스를 Squid 프록시 서버로 사용하지만 이 방법은 프록시 서버를 설정하는 방법 중 하나일 뿐입니다.
Squid 프록시 서버를 설정하려면 다음 안내를 따르세요.
- 외부(정적 또는 임시) IP 주소가 있는 하나의 인스턴스를 설정합니다.
이 예시에서는 인스턴스의 이름을
gateway-instance
로 지정합니다.gcloud compute instances create gateway-instance
--project=project_id
--zone=zone
--network-interface=network-tier=PREMIUM,subnet=default
--scopes=https://www.googleapis.com/auth/cloud-platform gcloud compute instances create ... --no-address
를 지정하여 외부 IP 주소가 없는 여러 개의 인스턴스를 설정합니다. 이 예시에서는 이 인스턴스의 이름을hidden-instance
로 지정합니다.gcloud compute instances create hidden-instance
--project=project_id
--zone=zone
--network-interface=network-tier=PREMIUM,subnet=default,no-address
--scopes=https://www.googleapis.com/auth/cloud-platform- 내부 전용 인스턴스에 직접 연결할 수 없으므로 내부 전용 VM에 대해 연결 옵션을 선택합니다.
방화벽을 추가하여 포트 3128에서 TCP 트래픽을 허용합니다.
gcloud compute firewall-rules create [FIREWALL_RULE] --network [NETWORK] --allow tcp:3128
Squid를
gateway-instance
에 설치하고 VPC 네트워크(유효한 서브넷 IP 주소)의 모든 머신에서 액세스할 수 있도록 구성합니다. 여기서는gateway-instance
와hidden-instance
가 동일한 VPC 네트워크에 연결되어 있어 상호 연결이 가능하다고 가정합니다.user@gateway-instance:~$ sudo apt-get install squid
로컬 네트워크의 모든 머신에서 Squid 서버를 사용하도록 합니다. 다음
sed
명령어는 주석을 해제하고 로컬 네트워크와 머신의 Squid 구성 파일에acl localnet src
항목을 사용 설정합니다.user@gateway-instance:~$ sudo sed -i 's:#\(http_access allow localnet\):\1:' /etc/squid/squid.conf
user@gateway-instance:~$ sudo sed -i 's:#\(http_access deny to_localhost\):\1:' /etc/squid/squid.conf
user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src 10.0.0.0/8.*\):\1:' /etc/squid/squid.conf
user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src 172.16.0.0/12.*\):\1:' /etc/squid/squid.conf
user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src 192.168.0.0/16.*\):\1:' /etc/squid/squid.conf
user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src fc00\:\:/7.*\):\1:' /etc/squid/squid.conf
user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src fe80\:\:/10.*\):\1:' /etc/squid/squid.conf
# Prevent proxy access to metadata server user@gateway-instance:~$ sudo tee -a /etc/squid/squid.conf <<'EOF' acl to_metadata dst 169.254.169.254 http_access deny to_metadata EOF
# Start Squid user@gateway:~$ sudo service squid start
hidden-instance
를 프록시로 사용하도록gateway-instance
를 구성합니다. 다음과 같이 ssh를 사용하여hidden-instance
에 연결하고, 포트 3128의gateway-instance
를 가리키도록 프록시 URL 주소를 정의합니다(기본 Squid 구성).user@gateway-instance:~$ ssh hidden-instance
user@hidden-instance:~$ sudo -s
root@hidden-instance:~# echo "export http_proxy=\"http://gateway-instance.$(dnsdomainname):3128\"" >> /etc/profile.d/proxy.sh
root@hidden-instance:~# echo "export https_proxy=\"http://gateway-instance.$(dnsdomainname):3128\"" >> /etc/profile.d/proxy.sh
root@hidden-instance:~# echo "export ftp_proxy=\"http://gateway-instance.$(dnsdomainname):3128\"" >> /etc/profile.d/proxy.sh
root@hidden-instance:~# echo "export no_proxy=169.254.169.254,metadata,metadata.google.internal" >> /etc/profile.d/proxy.sh
sudoers를 업데이트하여 이러한 env 변수를 전달합니다.
root@hidden-instance:~# cp /etc/sudoers /tmp/sudoers.new
root@hidden-instance:~# chmod 640 /tmp/sudoers.new
root@hidden-instance:~# echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy"\" >>/tmp/sudoers.new
root@hidden-instance:~# chmod 440 /tmp/sudoers.new
root@hidden-instance:~# visudo -c -f /tmp/sudoers.new && cp /tmp/sudoers.new /etc/sudoers
sudo
를 종료하고 변수를 로드하고hidden-instance
에서apt-get
을 실행합니다. 이제 게이트웨이를 프록시로 사용해서 작동하게 됩니다.apt-get
는 인터넷에 직접 연결되지 않으므로 게이트웨이가 프록시 역할을 하지 않는 경우hidden-instance
이 작동하지 않습니다.root@hidden-instance:~# exit
user@hidden-instance:~$ source ~/.profile
user@hidden-instance:~$ sudo apt-get update
VM을 VPN 게이트웨이로 구성
이 콘텐츠는 지원 중단되고 삭제되었습니다. 관리형 VPN 솔루션은 Cloud VPN 문서를 참조하세요.
VM을 NAT 게이트웨이로 구성
이 콘텐츠는 지원 중단되고 삭제되었습니다. 관리형 NAT 솔루션은 Cloud NAT 문서를 참조하세요.
고가용성 및 고대역폭 NAT 게이트웨이 빌드
이 콘텐츠는 지원 중단되고 삭제되었습니다. 관리형 NAT 솔루션은 Cloud NAT 문서를 참조하세요.
다음 단계
- VPC 네트워크에 대한 자세한 내용은 VPC 네트워크를 참조하세요.
- VPC 네트워크를 만들거나 수정하거나 삭제하려면 VPC 네트워크 만들기 및 관리를 참조하세요.