GSP062
개요
이 실무형 실습에서는 안전하고 처리량이 높은 VPN을 만들고 그 속도를 테스트하는 방법을 알아봅니다.
Google Cloud 및 기타 클라우드 또는 온프레미스 시스템 간의 보안 통신은 공통적인 필수 요구사항입니다. 다행히 Google Cloud에서는 이러한 목표를 달성하기 위한 안전한 인터넷 보안 프로토콜(IPsec) 가상 사설망(VPN)을 쉽게 만들 수 있습니다. 단일 터널이 필요한 처리량을 제공하지 않을 경우 Google Cloud는 여러 터널에 트래픽을 원활하게 분산하여 추가 대역폭을 제공할 수 있습니다.
목표
VPN 만들기
Google Cloud 네트워크를 시뮬레이션하는 cloud
라는 이름의 가상 프라이빗 클라우드(VPC)와 외부 네트워크를 시뮬레이션하는 on-prem
(온프레미스)이라는 이름의 VPC를 만듭니다.
cloud
VPC에 사용할 VPN 게이트웨이, 전달 규칙, 주소를 생성합니다.
새 VPN을 위한 터널을 만들고 이를 통해 트래픽을 라우팅합니다.
on-prem
VPC로 VPN 생성 프로세스를 반복하여 두 번째 VPN을 만듭니다.
VPN 테스트하기
Compute Engine 을 사용하여 처리량 부하 테스트를 위한 가상 머신(VM)을 만듭니다.
iperf
를 사용하여 단일 VPN의 처리량 속도를 테스트합니다.
기본 요건
작업 1. 클라우드 VPC 만들기
이 섹션에서 수행할 작업은 다음과 같습니다.
클라우드 프로덕션 네트워크를 시뮬레이션하는 VPC를 만듭니다.
일반적인 유형의 트래픽이 VPC를 통과하도록 허용합니다.
호스트 배포를 위한 서브넷을 만듭니다.
Cloud Shell 을 설정한 후 다음을 실행하여 Google Cloud 프로젝트와 연결된 cloud
라는 이름의 커스텀 VPC를 만듭니다.
gcloud compute networks create cloud --subnet-mode custom
이 VPC의 경우 기본값이 아닌 IP 주소를 사용할 수 있지만 기본 방화벽 규칙은 포함하지 않습니다.
부하 테스트 중에 VM과 통신하려면 시큐어 셸이 필요하므로 다음을 실행하여 SSH
및 icmp
를 사용 설정합니다.
gcloud compute firewall-rules create cloud-fw --network cloud --allow tcp:22,tcp:5001,udp:5001,icmp
다음을 실행하여 이 VPC 내에 서브넷을 만들고 리전과 IP 범위를 지정합니다.
gcloud compute networks subnets create cloud-east --network cloud \
--range 10.0.1.0/24 --region {{{project_0.default_region_2 | REGION2}}}
이 솔루션에서는 10.0.1.0/24
및 리전이 사용됩니다.
작업 2. 온프렘 VPC 만들기
이 섹션에서는 on-prem
VPC 또는 cloud
에 연결하려는 네트워크의 시뮬레이션을 생성합니다. 실제로는 여기에 리소스가 이미 있지만 이 실습에서는 터널을 만들고 구성을 검증하기 위해 다음 단계를 따릅니다.
Cloud Shell에서 다음을 실행하여 프로젝트와 연결된 on-prem
이라는 이름의 새 커스텀 서브넷 VPC를 만듭니다.
gcloud compute networks create on-prem --subnet-mode custom
부하 테스트 중에 VM과 통신하려면 시큐어 셸이 필요하므로 다음을 실행하여 on-prem
VPC의 호스트에 SSH
및 icmp
를 사용 설정합니다.
gcloud compute firewall-rules create on-prem-fw --network on-prem --allow tcp:22,tcp:5001,udp:5001,icmp
다음 명령어를 사용해 리전의 서브넷 프리픽스를 지정합니다.
gcloud compute networks subnets create on-prem-central \
--network on-prem --range 192.168.1.0/24 --region {{{project_0.default_region |REGION}}}
참고: 이 예시에서는 리전에 `192.168.1.0/24`를 할당합니다.
서브네트워크와 방화벽 규칙이 있는 2개의 커스텀 VPC를 만듭니다.
작업 3. VPN 게이트웨이 만들기
안전한 외부 통신을 위해 각 환경에는 VPN 게이트웨이가 필요합니다. 다음 단계에 따라 클라우드 및 on-prem
VPC의 초기 게이트웨이를 만듭니다.
Cloud Shell에서 on-prem
VPC 및 리전에 on-prem-gw1
이라는 이름의 VPN 게이트웨이를 만듭니다.
gcloud compute target-vpn-gateways create on-prem-gw1 --network on-prem --region {{{project_0.default_region |REGION}}}
이제 cloud
VPC 및 리전에 cloud-gw1
이라는 이름의 VPN을 만듭니다.
gcloud compute target-vpn-gateways create cloud-gw1 --network cloud --region {{{project_0.default_region_2 | REGION2}}}
작업 4. 로컬 네트워크와 Google Cloud 네트워크 사이에 경로 기반 VPN 터널 만들기
각 VPN 게이트웨이에 정적 외부 IP 주소가 있어야 VPC 외부 시스템과 통신할 수 있습니다. 이제 클라우드 및 on-prem
VPC의 IP 주소와 경로를 만듭니다.
Cloud Shell에서 cloud-gw1
VPN 게이트웨이의 IP를 할당합니다.
gcloud compute addresses create cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
그런 다음 on-prem-gw1
VPN 게이트웨이의 IP를 할당합니다.
gcloud compute addresses create on-prem-gw1 --region {{{project_0.default_region |REGION}}}
이후 명령어에서 다시 찾을 필요가 없도록 게이트웨이 주소를 저장합니다.
먼저 cloud-gw1
게이트웨이에서 다음 명령어를 실행합니다.
cloud_gw1_ip=$(gcloud compute addresses describe cloud-gw1 \
--region {{{project_0.default_region_2 | REGION2}}} --format='value(address)')
그런 다음 on-prem-gw1
게이트웨이에서 다음 명령어를 실행합니다.
on_prem_gw_ip=$(gcloud compute addresses describe on-prem-gw1 \
--region {{{project_0.default_region |REGION}}} --format='value(address)')
이제 cloud
VPC의 IPsec에 대한 전달 규칙을 만듭니다. 양방향으로 전달 규칙을 만들어야 합니다.
cloud-gw1
에서 보안 페이로드 캡슐화(ESP) 프로토콜을 전달합니다.
gcloud compute forwarding-rules create cloud-1-fr-esp --ip-protocol ESP \
--address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
cloud-gw1에서 UDP:500
트래픽을 전달합니다.
gcloud compute forwarding-rules create cloud-1-fr-udp500 --ip-protocol UDP \
--ports 500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
cloud-gw1에서 UDP:4500
트래픽을 전달합니다.
gcloud compute forwarding-rules create cloud-fr-1-udp4500 --ip-protocol UDP \
--ports 4500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
동일한 메서드를 사용해 on-prem
VPC의 IPsec 터널에 대한 방화벽 전달 규칙을 만듭니다. 이 단계를 통해 IPsec 터널이 방화벽을 종료할 수 있습니다.
on-prem-gw1
에서 ESP 프로토콜을 전달합니다.
gcloud compute forwarding-rules create on-prem-fr-esp --ip-protocol ESP \
--address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}
on-prem-gw1에서 IPsec 터널을 설정하는 데 사용된 UDP:500
트래픽을 전달합니다.
gcloud compute forwarding-rules create on-prem-fr-udp500 --ip-protocol UDP --ports 500 \
--address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}
on-prem-gw1
에서 암호화된 트래픽을 전송하는 UDP:4500
트래픽을 전달합니다.
gcloud compute forwarding-rules create on-prem-fr-udp4500 --ip-protocol UDP --ports 4500 \
--address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}
VPN 게이트웨이 2개와 필요한 전달 규칙을 만듭니다.
보통은 on-prem-tunnel1
및 cloud-tunnel1
터널을 만들고 검증하는 다음 단계에서 보안 비밀을 생성합니다. 보안 비밀을 만들어 안전하게 저장하는 방법에 관한 자세한 내용은 Secret Manager 개념 개요 가이드 를 확인하세요. 지금은 'sharedsecret' 문자열을 사용합니다.
on-prem-tunnel1
로컬 네트워크와 cloud-tunnel1
클라우드 기반 네트워크의 터널을 만듭니다. 각 네트워크에는 VPN 게이트웨이가 있어야 하고 보안 비밀이 일치해야 합니다. 다음 두 명령어에서 [MY_SECRET]
을 'sharedsecret'으로 바꿉니다. 프로덕션 시나리오에서는 자신이 생성한 보안 비밀로 바꿉니다.
on-prem
에서 cloud
로 통하는 VPN 터널을 만듭니다.
gcloud compute vpn-tunnels create on-prem-tunnel1 --peer-address $cloud_gw1_ip \
--target-vpn-gateway on-prem-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \
--remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region |REGION}}}
클라우드에서 온프렘으로 통하는 VPN 터널을 만듭니다.
gcloud compute vpn-tunnels create cloud-tunnel1 --peer-address $on_prem_gw_ip \
--target-vpn-gateway cloud-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \
--remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region_2 | REGION2}}}
게이트웨이를 만들고 터널을 빌드했으므로 이제 서브넷에서 두 개의 터널을 통과하는 경로를 추가해야 합니다.
on-prem
VPC에서 cloud 10.0.1.0/24
범위까지의 트래픽을 터널로 라우팅합니다.
gcloud compute routes create on-prem-route1 --destination-range 10.0.1.0/24 \
--network on-prem --next-hop-vpn-tunnel on-prem-tunnel1 \
--next-hop-vpn-tunnel-region {{{project_0.default_region |REGION}}}
cloud
VPC에서 on-prem 192.168.1.0/24
범위까지의 트래픽을 터널로 라우팅합니다.
gcloud compute routes create cloud-route1 --destination-range 192.168.1.0/24 \
--network cloud --next-hop-vpn-tunnel cloud-tunnel1 --next-hop-vpn-tunnel-region {{{project_0.default_region_2 | REGION2}}}
2개의 VPN 터널을 만듭니다.
작업 5. VPN을 통한 처리량 테스트하기
지금까지 온프렘과 클라우드 VPC 간에 안전한 경로를 구축했습니다. 처리량을 테스트하려면 네트워크 부하 테스트를 위한 오픈소스 도구인 iperf 를 사용합니다. 테스트를 위해서는 각 환경에 VM이 필요하며, 그 중 하나는 트래픽을 전송하고 다른 하나는 트래픽을 수신해야 합니다. 이 VM은 다음 단계에서 만듭니다.
단일 VPN 부하 테스트하기
이제 cloud-loadtest
라는 이름의 클라우드 VPC에 대한 가상 머신을 만듭니다. 이 예시에서는 OS에 Debian Linux 이미지를 사용합니다.
참고: 기존 프로젝트가 있으면 이 단계를 생략하고 기존 리소스를 사용해도 됩니다. VM의 대역폭은 vCPU당 2Gbps이므로 최소 4개의 vCPU가 필요합니다.
다음을 실행합니다.
gcloud compute instances create "cloud-loadtest" --zone {{{project_0.default_zone_2 |ZONE2}}} \
--machine-type "e2-standard-4" --subnet "cloud-east" \
--image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \
--boot-disk-type "pd-standard" --boot-disk-device-name "cloud-loadtest"
on-prem-loadtest
라는 이름의 on-prem
VPC에 대한 가상 머신을 만듭니다. 이 예시에서는 클라우드 VPC와 동일한 Debian 이미지가 사용됩니다. 기존 리소스가 있으면 이 단계를 생략합니다.
다음을 실행합니다.
gcloud compute instances create "on-prem-loadtest" --zone {{{project_0.default_zone |ZONE}}} \
--machine-type "e2-standard-4" --subnet "on-prem-central" \
--image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \
--boot-disk-type "pd-standard" --boot-disk-device-name "on-prem-loadtest"
콘솔 또는 명령줄을 사용하여 SSH를 통해 각 VM에 연결하고 다음 명령줄을 사용하여 iperf 사본을 설치합니다.
sudo apt-get install iperf
on-prem-loadtest
VM에서 다음 명령어를 실행합니다.
iperf -s -i 5
VM에 5초마다 상태를 보고하는 iperf 서버가 생성되었습니다.
cloud-loadtest
VM에서 다음 명령어를 실행합니다.
iperf -c 192.168.1.2 -P 20 -x C
20개의 스트림이 포함된 iperf 클라이언트를 만들었습니다. 이 클라이언트는 테스트를 10초 동안 실시한 후에 값을 보고합니다.
2개의 VM을 만들고 SSH를 통해 iperf를 설치합니다.
발생할 수 있는 문제 해결하기
참고: 다음은 실습 안내에 포함되지 않습니다.
로컬 네트워크용 터널을 만들 때 [MY_SECRET]을 'sharedsecret'으로 바꾸는 것을 잊은 경우:
다음 명령어를 사용하면 생성된 VPN 터널을 삭제할 수 있습니다.
gcloud compute vpn-tunnels delete [tunnel-name] --region [region]
[tunnel-name]을 터널 이름으로 바꿉니다.
[region]을 터널을 만들 때 지정한 리전으로 바꿉니다.
단일 VPN 부하 테스트 섹션에 문제가 발생한 경우:
콘솔에서 만든 전달 규칙을 확인하려는 경우:
탐색 메뉴 에서 네트워킹 섹션으로 이동합니다.
네트워크 연결 > VPN 을 클릭합니다.
Cloud VPN 게이트웨이를 클릭하여 Cloud VPN 게이트웨이 세부정보 페이지를 확인합니다.
수고하셨습니다
퀘스트 완료하기
이 사용자 주도형 실습은 Network Performance and Optimization , Security & Identity Fundamentals 퀘스트의 일부입니다. 퀘스트는 연관성이 있는 여러 실습을 하나의 학습 과정으로 구성한 것입니다. 퀘스트를 완료하면 배지를 얻고 수료를 인증할 수 있습니다. 배지를 공개하고 온라인 이력서 또는 소셜 미디어 계정에 연결할 수 있습니다. 이 실습을 포함한 퀘스트에 등록하여 즉시 수료 크레딧을 받으세요. 참여할 수 있는 모든 퀘스트는 Google Cloud Skills Boost 카탈로그 를 참조하세요.
다음 실습 참여하기
Cloud CDN 으로 퀘스트를 계속 진행하거나 다음 추천 항목을 확인하세요.
다음 단계
Google Cloud 교육 및 자격증
Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의 에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증 은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.
설명서 최종 업데이트: 2024년 1월 10일
실습 최종 테스트: 2024년 1월 10일
Copyright 2025 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.