시작하기 전에
- 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
- 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
- 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.
Create VPC network and instances
/ 40
Create custom ingress firewall rules
/ 30
Create a firewall rule with priority and egress firewall rule.
/ 30
이 실습에서는 가상 프라이빗 클라우드(VPC) 네트워크를 조사하고 방화벽 규칙을 만들어 네트워크와 인스턴스에 대한 액세스를 허용 및 거부합니다.
먼저 자동 VPC 네트워크와 몇 가지 VPC 인스턴스를 만듭니다. default-allow-ssh 방화벽 규칙이 작동하는지 확인한 다음 이를 사용자가 만든 커스텀 네트워크와 비교하여 커스텀 방화벽 규칙이 없으면 인그레스가 허용되지 않는지 확인합니다.
기본 네트워크를 삭제한 다음 방화벽 규칙 우선순위를 사용하여 VM에 대한 네트워크 트래픽의 인그레스와 이그레스를 모두 허용합니다.
이 실습에서는 다음 작업을 수행하는 방법을 배웁니다.
각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.
실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 패널이 있습니다.
Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).
실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.
팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.
필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.
실습 세부정보 패널에서도 사용자 이름을 확인할 수 있습니다.
다음을 클릭합니다.
아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.
실습 세부정보 패널에서도 비밀번호를 확인할 수 있습니다.
다음을 클릭합니다.
이후에 표시되는 페이지를 클릭하여 넘깁니다.
잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.
Google Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다.
Google Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.
Cloud 콘솔의 오른쪽 상단 툴바에서 'Cloud Shell 열기' 버튼을 클릭합니다.
계속을 클릭합니다.
환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 연결되면 사용자가 미리 인증되어 프로젝트가 PROJECT_ID로 설정됩니다. 예:
gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.
출력:
출력 예시:
출력:
출력 예시:
이 작업에서는 자동 VPC 네트워크와 몇 가지 초기 VPC 인스턴스를 만듭니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
이 작업에서는 기본 네트워크를 살펴보고 default-allow-ssh 방화벽 규칙이 작동하는지 확인합니다. 나중에는 default-vm-1 인스턴스와 기본 네트워크는 더 이상 필요하지 않으므로 삭제합니다.
Cloud 콘솔로 돌아가서 방화벽 규칙을 확인합니다.
기본 네트워크에는 다음과 같은 4가지 기본 규칙이 생성됩니다.
모든 네트워크에는 콘솔에 표시되지 않는 다음 두 가지 규칙도 있습니다.
default-allow-ssh 방화벽 규칙이 작동하는지 확인하려면 기본 네트워크에서 SSH를 사용하여 default-vm-1 인스턴스를 테스트합니다.
탐색 메뉴에서 Compute Engine > VM 인스턴스를 클릭하여 VM 인스턴스 목록을 표시합니다.
default-vm-1 인스턴스 행에서 SSH를 클릭합니다.
default-allow-ssh 규칙이 있으므로 SSH를 통해 인스턴스에 성공적으로 연결할 수 있어야 합니다. www.google.com을 핑하여 이그레스 연결을 테스트할 수 있습니다. Ctrl+C를 눌러 핑을 중지합니다.
이제 default-vm-1 인스턴스는 더 이상 필요하지 않으므로 삭제합니다.
탐색 메뉴에서 Compute Engine > VM 인스턴스를 클릭하고 default-vm-1 인스턴스를 선택한 다음 삭제를 클릭합니다.
확인 대화상자에서 삭제를 클릭합니다.
탐색 메뉴에서 VPC 네트워크 > VPC 네트워크를 클릭하여 Cloud 콘솔에 VPC 네트워크 목록을 표시합니다.
default 네트워크를 클릭하여 네트워크 세부정보를 확인합니다.
VPC 네트워크 삭제를 클릭합니다.
확인 대화상자에서 삭제를 클릭합니다.
네트워크가 삭제될 때까지 기다린 후 VPC 네트워크 페이지에 기본 네트워크가 더 이상 표시되지 않는지 확인합니다.
이 작업에서는 사용자 생성 네트워크를 탐색하여 커스텀 방화벽 규칙이 없으면 인그레스가 허용되지 않는지 확인합니다.
모든 네트워크에는 모든 수신 트래픽을 차단하고 모든 발신 트래픽을 허용하는 다음 2가지 규칙이 있습니다(콘솔에 표시되지 않음). 기본 네트워크와 달리 사용자가 만든 네트워크에는 기본적으로 다른 규칙이 없으므로 현재 수신 트래픽은 허용되지 않습니다.
탐색 메뉴에서 Compute Engine > VM 인스턴스를 클릭하여 VM 인스턴스 목록을 표시합니다.
mynet-vm-1 또는 mynet-vm-2 행에서 SSH를 클릭합니다.
SSH를 통해 인스턴스에 연결할 수 없어야 합니다.
이제 Cloud Shell에서 인스턴스로 SSH 연결을 시도합니다.
Cloud Shell로 돌아가거나 다시 엽니다.
mynet-vm-2 인스턴스에 SSH로 연결하려면 다음 명령어를 실행합니다.
메시지가 표시되면 Y를 입력하고 Enter 키를 두 번 눌러 계속 진행합니다.
이 작업에서는 Cloud Shell을 클라이언트 호스트로 사용하여 인스턴스에 대한 SSH 연결을 테스트합니다. Cloud Shell 인스턴스의 외부 IP 주소는 쉽게 검색할 수 있습니다.
그러나 Cloud Shell 인스턴스의 IP 주소는 인스턴스를 닫았다가 다시 열거나 비활성 상태로 인해 재활용되는 경우 변경될 수 있습니다. 이 실습에서는 문제가 되지 않습니다. '실제' 프로젝트의 경우 SSH 클라이언트 호스트의 IP 주소를 허용하면 문제가 없을 것입니다.
Cloud Shell로 돌아가거나 다시 엽니다.
Cloud Shell 인스턴스의 외부 IP 주소를 검색하려면 다음 명령어를 실행합니다.
샘플 출력(IP는 다를 수 있음):
이 방화벽 규칙에는 lab-ssh라는 대상 태그도 지정되어 있습니다. 즉, lab-ssh 태그가 지정된 인스턴스에만 적용됩니다.
다음과 유사한 내용이 표시됩니다(IP 주소는 다를 수 있음).
이 방화벽 규칙은 lab-ssh 태그가 지정된 인스턴스에만 적용됩니다. 현재는 어떤 인스턴스에도 적용되지 않습니다.
VPC 네트워크에서 방화벽 규칙은 스테이트풀(Stateful)입니다. 한 방향의 허용 규칙에 의해 추적된 각 시작된 연결에 대해서는 규칙에 관계없이 반환 트래픽이 자동으로 허용됩니다.
SSH 키를 협상하는 데 몇 초 정도 걸리지만 연결될 것입니다. 이렇게 하면 방화벽 규칙이 트래픽을 허용하는지 확인할 수 있습니다.
exit를 입력하여 mynet-vm-2 인스턴스에서 로그오프합니다.
mynet-vm-1 인스턴스에 SSH로 연결하려면 Cloud Shell에서 다음 명령어를 실행합니다.
mynet-vm-1 인스턴스가 동일한 네트워크에 있고 생성한 방화벽 규칙이 모든 인스턴스에 대한 액세스를 허용하므로 이 연결도 성공할 것입니다.
ping 명령어는 실패하게 됩니다. mynet-vm-1 인스턴스와 mynet-vm-2 인스턴스가 동일한 VPC 네트워크에 있더라도 트래픽을 허용하는 방화벽 규칙이 없으면 모든 트래픽이 기본적으로 차단됩니다.
필요한 경우 Ctrl+C를 눌러 핑을 중지합니다. 아직 mynet-vm-1 인스턴스에서 로그아웃하지 마세요.
새 Cloud Shell 창을 열려면 새 탭 열기(+)를 클릭합니다.
mynetwork VPC의 모든 인스턴스가 서로 핑할 수 있도록 허용하는 방화벽 규칙을 추가하려면 다음 명령어를 실행합니다.
호스트 이름 mynet-vm-2가 인스턴스의 내부 IP 주소로 확인되는 것을 볼 수 있습니다. 내부 IP는 10.132.0으로 시작합니다(예: 10.132.0.2). Google Cloud는 내부 호스트 이름을 자동으로 확인합니다.
Ctrl+C를 눌러 핑을 중지합니다.
내부 IP 주소를 직접 핑할 수 있으며, 이 경우에도 마찬가지로 정상 작동합니다. Ctrl+C를 눌러 핑을 중지합니다.
mynet-vm-2의 외부 IP 주소를 찾으려면 탐색 메뉴에서 Compute Engine > VM 인스턴스를 클릭합니다.
mynet-vm-2를 클릭하고 인스턴스의 외부 IP 주소를 찾아 복사합니다.
mynet-vm-1에 연결된 Cloud Shell 세션에서 mynet-vm-2 인스턴스의 외부 IP 주소를 핑합니다.
작동하지 않을 것입니다. 외부 IP 주소를 핑하면 연결이 인터넷 게이트웨이를 통과하므로 요청에 NAT가 적용됩니다. 이제 요청이 mynet-vm-1 인스턴스의 외부 IP 주소에서 들어옵니다. 방화벽 규칙은 내부 IP 주소에서 오는 ICMP 요청만 허용합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
이 작업에서는 ICMP 트래픽을 거부하도록 방화벽 규칙 우선순위를 설정합니다. 그런 다음 규칙 우선순위와 일치하지 않는 트래픽이 거부되는지 확인합니다.
지금까지는 생성된 모든 규칙이 인그레스 허용 규칙이므로 우선순위가 중요하지 않았습니다. 방화벽 규칙은 허용과 거부 모두 가능하며, 인그레스 및 이그레스를 지정할 수 있고 우선순위 범위는 0~65,535입니다. 우선순위를 설정하지 않으면 기본값은 1,000입니다. 규칙은 가장 낮은 값부터 시작하여 우선순위에 따라 평가됩니다. 일치하는 첫 번째 규칙이 적용됩니다.
qwiklabs@mynet-vm-1:~$이므로 이를 통해 확인할 수 있습니다.연결되지 않은 경우 다음 명령어를 사용하여 다시 연결합니다.
Ctrl+C를 눌러 핑을 중지합니다.
두 번째 Cloud Shell 창으로 전환하거나 새 창을 엽니다.
두 번째 Cloud Shell에서 다음과 같이 우선순위가 500인 모든 IP의 ICMP 트래픽을 거부하는 방화벽 인그레스 규칙을 만듭니다.
더 이상 작동하지 않을 것입니다. 이 새로운 규칙의 우선순위는 500이며, 허용 규칙의 우선순위는 1,000이기 때문입니다.
이제 거부 규칙을 우선순위 2,000으로 변경합니다.
2000으로 변경합니다.이번에는 거부 규칙의 우선순위가 낮으므로 허용 규칙이 첫 번째로 일치하는 규칙이 되어 작동합니다.
이 작업에서는 이그레스 방화벽 규칙을 만들고 우선순위를 10,000으로 설정합니다. 그런 다음 인그레스 규칙과 이그레스 규칙 모두 이 트래픽을 허용하는지 확인합니다.
현재는 ICMP를 거부하는 규칙의 우선순위가 ICMP 허용 규칙보다 높으므로 VM이 여전히 서로 핑할 수 있습니다.
이제 이그레스 규칙을 사용합니다.
10000인 모든 IP의 ICMP 트래픽을 차단하는 방화벽 이그레스 규칙을 만듭니다.이그레스 규칙 우선순위가 10,000으로 설정되어 있습니다. 이는 이전에 만든 규칙보다 훨씬 높은 우선순위입니다.
더 이상 작동하지 않을 것입니다. 이그레스 규칙의 우선순위가 10,000으로 훨씬 높지만 여전히 트래픽을 차단하고 있습니다. 해당 트래픽을 허용하는 인그레스 규칙과 이그레스 규칙이 모두 있어야 트래픽이 허용되기 때문입니다. 인그레스 규칙의 우선순위는 이그레스 규칙의 우선순위에 영향을 미치지 않습니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
이 실습에서는 다음 작업을 수행했습니다.
실습을 완료하면 실습 종료를 클릭합니다. Google Skills에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.
실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.
별점의 의미는 다음과 같습니다.
의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.
의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.
Copyright 2026 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
한 번에 실습 1개만 가능
모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.