Compute Engine 설정 예시

이 페이지에서는 Compute Engine으로 샘플 Cloud NAT 설정을 구성하는 방법을 보여줍니다. Cloud NAT를 설정하기 전에 Cloud NAT 개요를 읽어보세요.

기본 요건

Cloud NAT를 설정하기 전에 다음을 수행해야 합니다.

IAM 권한 가져오기

roles/compute.networkAdmin 역할은 Cloud Router에서 NAT 게이트웨이를 만들고, NAT IP 주소를 예약 및 할당하고, 트래픽이 NAT 게이트웨이의 네트워크 주소 변환을 사용해야 하는 서브네트워크(서브넷)를 지정할 수 있는 권한을 부여합니다.

Google Cloud 설정

시작하기 전에 Google Cloud에서 다음 항목을 설정합니다.

  1. Google 계정으로 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Cloud SDK 설치 및 초기화

Compute Engine 설정 예시

Compute Engine으로 작동하는 간단한 Cloud NAT 구성을 보려면 이 예시를 따릅니다.

1단계: VPC 네트워크 및 서브넷 만들기

네트워크와 서브넷이 이미 있으면 이 단계를 건너뛸 수 있습니다.

Console

  1. Google Cloud Console에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크 페이지로 이동

  2. VPC 네트워크 만들기를 클릭합니다.

  3. custom-network1이름을 입력합니다.

  4. 서브넷에서 서브넷 생성 모드커스텀으로 설정합니다.

  5. 새 서브넷subnet-us-east-192이름을 입력합니다.

  6. 리전에서 us-east4를 선택합니다.

  7. IP 주소 범위192.168.1.0/24로 입력합니다.

  8. 완료를 클릭한 후 만들기를 클릭합니다.

gcloud

  1. 프로젝트에서 새 커스텀 모드 VPC 네트워크를 만듭니다.

    gcloud compute networks create custom-network1 \
        --subnet-mode custom
  2. 첫 번째 지역의 서브넷 프리픽스를 지정합니다. 이 예시에서는 192.168.1.0/24를 리전 us-east4에 할당합니다.

    gcloud compute networks subnets create subnet-us-east-192 \
       --network custom-network1 \
       --region us-east4 \
       --range 192.168.1.0/24

2단계: 외부 IP 주소 없이 VM 인스턴스를 만들기

Console

  1. Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 인스턴스 만들기를 클릭합니다.

  3. 인스턴스에 대해 이름nat-test-1로 지정합니다.

  4. 리전us-east4로 설정합니다.

  5. 영역us-east4-c로 설정합니다.

  6. 관리, 보안, 디스크, 네트워킹, 단독 테넌시 링크를 클릭합니다.

  7. 네트워킹 탭을 클릭합니다.

  8. 네트워크 인터페이스에서 VM의 기본 인터페이스에 대해 수정을 클릭합니다.

    1. 네트워크custom-network1로 설정합니다.
    2. 서브네트워크subnet-us-east-192로 설정합니다.
    3. 외부 IPNone으로 설정합니다.
    4. 완료를 클릭합니다.
  9. 만들기를 클릭하여 인스턴스를 만들고 시작합니다.

gcloud

gcloud compute instances create nat-test-1 \
    --image-family debian-9 \
    --image-project debian-cloud \
    --network custom-network1 \
    --subnet subnet-us-east-192 \
    --zone us-east4-c \
    --no-address

3단계: SSH 연결을 허용하는 방화벽 규칙 만들기

Console

  1. Cloud Console에서 방화벽 페이지로 이동합니다.

    방화벽 페이지로 이동

  2. 방화벽 규칙 만들기를 클릭합니다.

  3. allow-ssh이름을 입력합니다.

  4. 네트워크custom-network1로 지정합니다.

  5. 트래픽 방향인그레스로 설정합니다.

  6. 일치 시 작업허용으로 설정합니다.

  7. 대상네트워크의 모든 인스턴스로 설정합니다.

  8. 소스 필터IP 범위로 설정합니다.

  9. 소스 IP 범위35.235.240.0/20으로 설정합니다.

  10. 프로토콜 및 포트지정된 프로토콜 및 포트로 설정합니다.

  11. tcp 체크박스를 선택하고 포트 22를 입력합니다.

  12. 만들기를 클릭합니다.

gcloud

gcloud compute firewall-rules create allow-ssh \
    --network custom-network1 \
    --source-ranges 35.235.240.0/20 \
    --allow tcp:22

4단계: 테스트 인스턴스에 대한 IAP SSH 권한 만들기

이후 단계에서 IAP를 사용하여 테스트 인스턴스에 연결합니다.

Console

  1. Cloud Console에서 IAP(Identity-Aware Proxy) 페이지로 이동합니다.

    Identity-Aware Proxy 페이지로 이동

  2. SSH 및 TCP 리소스 탭을 선택합니다.

  3. 리소스에 대한 구성원 권한을 업데이트하려면 모든 터널 리소스 > us-east4-c > nat-test-1 옆의 체크박스를 선택합니다.

  4. 오른쪽 창에서 구성원 추가를 클릭합니다.

  5. 사용자, 그룹, 서비스 계정에 리소스에 대한 액세스 권한을 부여하려면 새 구성원 필드에 해당 사용자의 이메일 주소를 지정합니다.

    이 기능을 테스트만 할 경우 자신의 이메일 주소를 입력할 수 있습니다.

  6. 구성원에게 Cloud IAP의 TCP 전달 기능을 통해 리소스에 대한 액세스 권한을 부여하려면 역할 드롭다운 목록에서 Cloud IAP > IAP 보안 터널 사용자을 선택합니다.

  7. 'Save(저장)'를 클릭합니다.

gcloud

이 단계에서는 Console 안내를 사용합니다.

5단계: nat-test-1에 로그인하고 인터넷에 연결할 수 없는지 확인

Console

  1. Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. nat-test-1의 경우 연결 열에서 SSH 드롭다운 화살표를 클릭한 다음 브라우저 창에서 열기를 선택합니다.

  3. VM의 명령어 프롬프트에서 curl example.com을 입력하고 Enter 키를 누릅니다.

    결과가 표시되지 않습니다. 결과가 표시되면 외부 IP 주소를 사용해서 nat-test-1을 만들었거나 다른 문제가 있을 수 있습니다. 문제를 해결하려면 VM이 Cloud NAT 없이 예기치 않게 인터넷에 연결할 수 있음을 참조하세요.

    명령어를 종료하려면 Ctrl+C를 입력해야 할 수 있습니다.

gcloud

  1. 로컬 호스트에 Compute Engine SSH 키를 추가합니다.

    ssh-add ~/.ssh/google_compute_engine
    
  2. nat-test-1에 연결하고 명령어를 실행합니다.

    gcloud compute ssh nat-test-1 \
        --zone us-east4-c \
        --command "curl example.com" \
        --tunnel-through-iap

    결과가 표시되지 않습니다. 결과가 표시되면 외부 IP 주소를 사용해서 nat-test-1을 만들었거나 다른 문제가 있을 수 있습니다. 문제를 해결하려면 VM이 Cloud NAT 없이 예기치 않게 인터넷에 연결할 수 있음을 참조하세요.

    명령어를 종료하려면 Ctrl+C를 입력해야 할 수 있습니다.

6단계: Cloud Router를 사용하여 NAT 구성 만들기

Cloud NAT를 사용하는 인스턴스와 동일한 리전에 Cloud Router를 만들어야 합니다. Cloud NAT는 VM에 NAT 정보를 배치하기 위해서만 사용됩니다. 실제 NAT 게이트웨이의 일부로는 사용되지 않습니다.

이 구성을 사용하면 리전 내 모든 인스턴스가 전체 기본 및 별칭 IP 범위에서 Cloud NAT를 사용할 수 있습니다. 또한 외부 IP 주소가 NAT 게이트웨이에 자동으로 할당됩니다. 더 많은 옵션은 gcloud 명령줄 인터페이스 문서를 참조하세요.

않습니다.

Console

  1. Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. 시작하기 또는 NAT 게이트웨이 만들기를 클릭합니다.

  3. 게이트웨이 이름nat-config로 입력합니다.

  4. VPC 네트워크custom-network1로 설정합니다.

  5. 리전us-east4로 설정합니다.

  6. Cloud Router에서 새 라우터 만들기를 선택합니다.

    1. nat-router이름을 입력합니다.
    2. 만들기를 클릭합니다.
  7. 만들기를 클릭합니다.

gcloud

  1. Cloud Router를 만듭니다.

    gcloud compute routers create nat-router \
        --network custom-network1 \
        --region us-east4
  2. 라우터에 구성을 추가합니다.

    gcloud compute routers nats create nat-config \
        --router-region us-east4 \
        --router nat-router \
        --nat-all-subnet-ip-ranges \
        --auto-allocate-nat-external-ips

7단계: 인터넷에 다시 연결 시도

NAT 구성이 VM에 적용되는 데 최대 3분이 걸릴 수 있으므로 최소 1분 정도 기다린 후 인터넷에 액세스를 다시 시도합니다.

Console

  1. Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. nat-test-1의 경우 연결 열에서 SSH 드롭다운 화살표를 클릭한 다음 브라우저 창에서 열기를 선택합니다.

  3. VM의 명령어 프롬프트에서 curl example.com을 입력하고 Enter 키를 누릅니다.

gcloud

nat-test-1에 연결하고 명령어를 실행합니다.

gcloud compute ssh nat-test-1 \
    --zone us-east4-c \
    --command "curl example.com" \
    --tunnel-through-iap

다음 콘텐츠가 포함된 출력이 표시됩니다.


<html>
<head>
<title>Example Domain</title>
...
...
...
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is established to be used for illustrative examples in documents. You can use this
    domain in examples without prior coordination or asking for permission.</p>
    <p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

다음 단계