고정 내부 IP 주소 예약

이 페이지에서는 다음과 같은 고정 기본 내부 IP 주소의 구성 및 관리 방법에 대해 설명합니다.

  • 고정 내부 IP 주소 예약 및 할당
  • 임시 내부 IP 주소를 고정 내부 IP 주소로 승격

보조 내부 IP 주소를 관리하는 방법은 별칭 IP 범위를 참조하세요.

Compute Engine에서 각 VM 인스턴스는 여러 네트워크 인터페이스를 가질 수 있습니다. 각 인터페이스는 외부 IP 주소 하나, 기본 내부 IP 주소 하나, 하나 이상의 보조 내부 IP 주소를 보유할 수 있습니다. 전달 규칙은 외부 부하 분산용 외부 IP 주소나 내부 부하 분산용 내부 주소를 가질 수 있습니다. IP 주소에 대해 자세히 알고 싶다면 IP 주소 문서를 읽어보세요.

고정 내부 IP는 서브넷에 구성된 비공개 RFC 1918 IP 범위에서 내부 IP 주소를 예약한 다음 필요에 따라 예약한 내부 주소를 리소스에 할당하는 기능을 제공합니다. 내부 IP 주소를 예약하면 해당 주소는 동적 할당 풀에서 제거되며 자동 할당에 사용되지 않습니다. 고정 내부 IP 주소를 예약하려면 승인된 사용자만 고정 내부 IP 주소를 예약할 수 있도록 특정한 IAM 권한을 사용해야 합니다.

고정 내부 IP 주소를 예약하는 기능을 이용하면 언제나 같은 리소스에 같은 IP 주소를 사용할 수 있습니다. 리소스를 삭제하고 다시 만들어야 하는 경우도 마찬가지입니다.

이 문서에서는 외부 IP 주소를 예약하고 관리하는 방법은 설명하지 않습니다. 자세히 알아보려면 고정 외부 IP 주소 예약을 읽어보세요.

시작하기 전에

권한

고정 내부 IP 주소를 예약하고 관리하려면 compute.networkAdmin 역할을 부여받아야 합니다. 역할에 대한 자세한 내용은 Compute Engine IAM 역할을 참조하세요.

제한사항

  • 기존 리소스의 내부 IP 주소는 변경할 수 없습니다. 예를 들어 실행 중인 VM 인스턴스에 새 고정 내부 IP 주소를 할당할 수는 없습니다. 하지만 리소스의 임시 내부 IP 주소를 고정 내부 IP로 승격해 리소스를 삭제해도 주소가 계속 예약되도록 할 수는 있습니다.

  • 기본적으로 고정 내부 IP 주소는 영역당 200개까지 예약할 수 있습니다.

  • 한 번에 하나의 리소스만 고정 내부 IP 주소를 사용할 수 있습니다.

  • IP 주소가 리소스에 할당되면 해당 주소가 고정인지 임시인지 구분할 수 없으며, IP 주소를 프로젝트에 예약된 고정 내부 IP 주소 목록과 비교할 수만 있습니다. 프로젝트에서 사용 가능한 고정 내부 IP 주소의 목록을 확인하려면 addresses list 하위 명령어를 사용하세요.

  • 고정 내부 IP 주소 예약은 VPC 네트워크에서만 지원됩니다. 이전 모드 네트워크에서는 지원되지 않습니다.

  • 리소스를 삭제해도 고정 내부 IP 주소는 자동으로 해제되지 않습니다. 더 이상 필요하지 않은 고정 내부 IP 주소는 수동으로 해제해야 합니다.

고정 내부 IP 주소를 예약하는 방법

연결된 리소스를 만들기 전에 고정 내부 IP 주소를 예약하거나, 임시 내부 IP 주소로 리소스를 만든 후 해당 임시 IP 주소를 고정 내부 IP 주소로 승격할 수 있습니다.

고정 내부 IP 주소를 사용하려면 프로젝트에서 VPC 네트워크를 사용할 수 있어야 합니다. VPC 네트워크를 만드는 방법을 알아보려면 VPC 네트워크 사용을 읽어보세요.

특정 주소를 예약한 다음 특정 리소스에 연결하기

이 시나리오에서는 고정 내부 IP 주소를 별도로 예약한 다음 리소스에 할당합니다. 요약하면 다음과 같습니다.

  1. VPC 네트워크에서 서브넷을 만듭니다.

  2. 서브넷 IP 범위에서 내부 IP 주소를 예약합니다. 이 단계를 통해 특정 내부 IP 주소를 포함하는 내부 IP 주소 리소스를 만듭니다.

  3. 리소스를 만들고, VM 인스턴스나 내부 부하 분산기를 만들 때 여기에 예약된 내부 IP 주소를 연결해서 사용합니다.

임시 내부 IP 주소를 리소스에 지정한 다음 주소 승격하기

이 시나리오에서는 고정 내부 IP 주소로 리소스에 연결된 임시 내부 IP 주소를 승격합니다.

  1. 자동으로 할당된 임시 IP 주소나 특별히 선택한 IP 주소를 사용하는 VM 인스턴스 또는 내부 부하 분산기를 만듭니다.

  2. 서브넷을 만듭니다.

  3. 내부 IP 주소를 고정 내부 IP 주소로 승격합니다.

두 가지 방법은 아래 다이어그램에 요약되어 있습니다.

내부 IP 예약 다이어그램

새 고정 내부 IP 주소 예약

새 고정 내부 IP 주소를 예약하려면 먼저 VPC 네트워크와 서브넷을 만들어야 합니다.

자동으로 할당된 주소나 기존 서브넷에서 사용되지 않는 주소로 새 고정 내부 IP 주소를 예약하려면 콘솔, gcloud compute addresses create 명령어 또는 Compute Engine API의 addresses.insert 메소드를 사용하면 됩니다.

콘솔

  1. GCP 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크 페이지로 이동

  2. 인스턴스와 연결할 VPC 네트워크를 확인합니다.
  3. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  4. 프로젝트를 선택합니다.
  5. 인스턴스 만들기를 클릭하고 인스턴스의 이름을 지정합니다.
  6. VPC 네트워크가 위치한 지역을 선택합니다.
  7. 해당 영역 내의 영역을 선택합니다.
  8. 인스턴스에 대한 다른 필드를 완료합니다.
  9. 관리, 보안, 디스크, 네트워킹, 단독 임대 메뉴를 펼칩니다.
  10. 네트워킹을 클릭합니다.
  11. 수정할 네트워킹 인터페이스를 클릭합니다.
  12. 네트워크에서 먼저 만든 VPC 네트워크를 선택합니다.
  13. 서브넷을 선택합니다.
  14. 기본 내부 IP에서 고정 IP 주소 예약을 선택합니다.
  15. 나머지 네트워킹 옵션을 완료합니다.
  16. 완료를 클릭합니다.
  17. 인스턴스 요구사항을 완료합니다.
  18. 만들기를 클릭합니다.

gcloud

gcloud 도구를 사용해 compute addresses create 명령어를 실행하세요.

gcloud compute addresses create [ADDRESS_NAME] [[ADDRESS_NAME]..] \
    --region [REGION] --subnet [SUBNETWORK] \
    --addresses [IP_ADDRESS]

각 항목의 의미는 다음과 같습니다.

  • [ADDRESS_NAME]은 생성 대상인 하나 이상의 주소에 사용할 이름입니다.
  • [REGION]은 이 요청의 지역을 의미합니다.
  • [SUBNETWORK]는 이 내부 IP 주소의 서브넷입니다.
  • [IP_ADDRESS]는 예약할 IP 주소로 반드시 서브넷의 IP 범위 내에 있어야 합니다. 지정하지 않으면 서브넷에서 자동으로 할당됩니다.

예를 들어 서브넷에서 자동으로 할당된 내부 IP 주소를 예약하는 방법은 다음과 같습니다.

gcloud compute addresses create example-address-1 \
    --region us-central1 --subnet subnet-1

서브넷에서 특정 내부 IP 주소를 예약하는 방법은 다음과 같습니다.

gcloud compute addresses create example-address-1 \
    --region us-central1 --subnet subnet-1 --addresses 10.128.0.12

2개 이상의 주소 이름을 전달하면 여러 개의 주소를 만들 수 있습니다. 하지만 모든 주소는 동일한 서브넷에 예약됩니다. 예를 들면 다음과 같습니다.

gcloud compute addresses create example-address-1 example-address-2 \
    --region us-central1 --subnet subnet-1 \
    --addresses 10.128.0.12,10.128.0.13

API

API에서 다음 URL로 POST 요청을 합니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses

요청 본문에는 addressType(INTERNAL이어야 함), 주소의 name, IP 주소가 속하는 subnetwork가 있어야 합니다. 시스템이 자동으로 서브넷에 IP 주소를 할당하게 하거나 특정 IP 주소에 address를 지정할 수도 있습니다.

{
    "addressType": "INTERNAL",
    "name": "[ADDRESS_NAME]",
    "subnetwork": "regions/[REGION]/subnetworks/[SUBNET]",
    "address": "[IP_ADDRESS]"
}

예를 들면 다음과 같습니다.

POST https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses

{
 "name": "example-address-1",
 "addressType": "INTERNAL",
 "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet",
 "address": "10.128.0.12"
}

사용 중인 임시 내부 IP 주소를 고정 주소로 승격

현재 사용 중인 임시 IP 주소가 있다면 해당 주소를 고정 내부 IP 주소로 승격해 직접 삭제하지 않는 한 프로젝트에 남아 있게 할 수 있습니다.

기존 IP 주소를 예약하려면 승격할 IP 주소의 값을 알아야 합니다. 리소스에 describe 요청을 해 IP 주소를 가져오세요. 예를 들어 현재 VM 인스턴스가 사용 중인 IP 주소를 승격하는 경우 다음과 같습니다.

gcloud compute instances describe [INSTANCE_NAME] --zone [ZONE] | grep "networkIP"

gcloud 도구는 리소스에서 사용 중인 내부 IP인 networkIP 값을 반환합니다. 예를 들면 다음과 같습니다.

networkIP: 10.240.0.2

그런 다음 주소를 승격합니다.

콘솔

콘솔에서 임시 내부 IP 주소를 고정 IP 주소로 승격하는 방법은 다음과 같습니다.

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 프로젝트를 선택합니다.
  3. 변경하려는 인스턴스를 선택합니다.
  4. 페이지 상단의 수정 도구를 클릭합니다.
  5. 네트워크 인터페이스의 수정 도구를 클릭합니다.
  6. 내부 IP 유형에서 고정을 선택합니다.
  7. 고정 IP 주소에 대한 정보를 모두 지정합니다.
  8. 완료를 클릭하여 변경사항을 저장합니다.
  9. 저장을 클릭하여 인스턴스를 업데이트합니다.

gcloud

하나 이상의 기존 IP 주소를 승격하려면 compute addresses create 명령어를 사용하고 --addresses 플래그에 승격할 명시적 내부 IP를 입력하세요.

gcloud compute addresses create [ADDRESS_NAME_1] [[ADDRESS_NAME_2]..] \
    --addresses [IP_ADDRESS_1],[[IP_ADDRESS_2],..] \
    --region [REGION] \
    --subnet [SUBNETWORK]

각 항목의 의미는 다음과 같습니다.

  • [ADDRESS_NAME]은 주소에 사용할 이름입니다. IP 주소 선언과 동일한 순서로 이름을 선언하세요. 이 예시에서는 [ADDRESS_NAME_1][IP_ADDRESS_1]에 대응하고 [ADDRESS_NAME_2][IP_ADDRESS_2]에 대응합니다.
  • [IP_ADDRESS],[[IP_ADDRESS_2],...]는 승격할 IP 주소입니다. 예 : 10.128.1.9.
  • [REGION]은 이 주소를 예약할 지역입니다.
  • [SUBNETWORK]는 이 요청의 하위 네트워크입니다.

예를 들면 다음과 같습니다.

gcloud compute addresses create example-address-1 example-address-2 \
    --addresses 10.128.4.90,10.128.0.232 \
    --region us-central1 \
    --subnet subnet-1

API

API에서 다음 URL로 POST 요청을 합니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses

요청 본문에는 addressType(INTERNAL이어야 함), 주소의 name, 승격할 address, IP 주소가 속하는 subnetwork가 있어야 합니다.

{
    "addressType": "INTERNAL",
    "address": "[IP_ADDRESS]",
    "name": "[ADDRESS_NAME]",
    "subnetwork": "regions/[REGION]/subnetworks/[SUBNET]"
}

예를 들면 다음과 같습니다.

POST https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses

{
 "name": "example-address-1",
 "addressType": "INTERNAL",
 "address": "10.128.0.2",
 "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet"
}

고정 내부 IP 주소가 있는 VM 인스턴스 만들기

새 VM을 생성할 때 이전에 예약한 고정 내부 IP 주소를 할당할 수 있습니다.

콘솔

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

    VM 인스턴스 페이지로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. 새 인스턴스 만들기 페이지에서 원하는 인스턴스 속성을 입력합니다.
  4. 관리, 보안, 디스크, 네트워킹, 단독 임대 섹션을 펼칩니다.
  5. 네트워킹을 클릭합니다.
  6. 네트워크를 클릭하고 서브넷을 선택합니다.
  7. 네트워크 인터페이스 아래에 있는 수정 도구를 클릭합니다.
  8. 기본 내부 IP에서 고정 내부 IP 주소 예약을 선택합니다.
  9. 나머지 정보를 모두 지정하여 고정 내부 IP 주소를 예약합니다.
  10. 만들기를 클릭하여 인스턴스를 만듭니다.

gcloud

  1. 먼저 고정 내부 IP 주소를 예약합니다. 다음 예에서는 my-vm-ip-address라는 주소를 us-central1 지역에 예약합니다. 이 명령어에는 --addresses 플래그가 없기 때문에 Compute Engine이 임의의 IP 주소를 예약합니다.

    gcloud compute addresses create my-vm-ip-address \
        --region us-central1 --subnet my-subnet
    
  2. 그런 다음 인스턴스를 만들 때 해당 주소를 사용합니다. 예를 들면 다음과 같습니다.

    gcloud compute instances create my-instance \
        --image-family [IMAGE_FAMILY] \
        --image-project [IMAGE_PROJECT] \
        --private-network-ip my-vm-ip-address \
        --subnet my-subnet
    

고정 내부 IP 주소가 있는 내부 부하 분산기 만들기

고정 내부 IP 주소를 사용하는 내부 부하 분산기를 만들려면 내부 부하 분산 설정의 안내를 따르되 부하 분산기를 구성할 때 예약한 IP 주소를 지정해야 합니다.

  1. 먼저 새 고정 내부 IP 주소를 예약합니다. 예를 들어 다음 예시에서는 my-ilb-ip-address라는 주소를 us-central1 지역에 예약합니다. 이 명령어에는 --addresses 플래그가 없기 때문에 Compute Engine이 임의의 IP 주소를 예약합니다.

    gcloud compute addresses create my-ilb-ip-address \
        --region us-central1 --subnet my-subnet
    
  2. 그런 다음 전달 규칙을 만들 때 --address 플래그를 포함합니다. 예를 들면 다음과 같습니다.

    gcloud compute forwarding-rules create my-int-lb-forwarding-rule \
        --address my-ilb-ip-address \
        --load-balancing-scheme internal \
        --backend-service my-int-lb \
        --ports 80 \
        --region us-central1 \
        --subnet my-subnet
    

보조 네트워크 인터페이스에 고정 내부 IP 주소 사용

여러 네트워크 인터페이스가 있는 VM 인스턴스를 만들 때 기본 및 보조 네트워크 인터페이스 모두에 예약 고정 내부 IP 주소를 사용할 수 있습니다.

고정 내부 IP 주소를 보조 네트워크 인터페이스에 할당하려면 다음 작업을 수행하세요.

  1. 먼저 고정 내부 IP 주소를 예약합니다. 예를 들어 다음 예시에서는 my-second-ip-address라는 주소를 us-central1 지역에 예약합니다. 이 명령어에는 --addresses 플래그가 없기 때문에 Compute Engine이 임의의 IP 주소를 예약합니다.

    gcloud compute addresses create my-second-ip-address \
        --region us-central1 --subnet subnet-b
    
  2. VM 인스턴스를 만들 때 이 주소를 보조 인터페이스의 IP 주소로 사용합니다. 예를 들면 다음과 같습니다.

    gcloud compute instances create my-instance \
        --image-family [IMAGE_FAMILY] \
        --image-project [IMAGE_PROJECT] \
        --network-interface subnet=subnet-a,no-address \
        --network-interface \
          subnet=subnet-b,private-network-ip=my-second-ip-address,no-address
    

고정 내부 IP를 공유 VPC와 함께 사용

공유 VPC 네트워크의 공유 서브넷에 예약 고정 내부 IP를 만들 수 있습니다. IP 주소 객체 자체는 이를 사용하는 리소스와 동일한 서비스 프로젝트에서 생성되며, 객체 값을 공유 VPC 네트워크의 선택된 공유 서브넷에서 사용 가능한 IP 범위에서 가져오더라도 마찬가지입니다. 이 사용 사례에 대한 자세한 내용은 다음 페이지를 참조하세요.

고정 내부 IP 주소 삭제

더 이상 필요 없는 고정 내부 IP 주소는 삭제해도 됩니다. 다른 리소스에서 사용 중인 주소도 삭제할 수 있습니다. 리소스에서 사용하는 주소는 해당 리소스를 삭제할 때까지 리소스에 연결된 상태로 유지됩니다. 리소스를 삭제하면 사용되던 주소는 다른 프로젝트의 사용 가능 주소 풀로 반환됩니다.

콘솔

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 프로젝트를 선택합니다.
  3. 프로젝트 목록에서 VM 인스턴스를 선택합니다.
  4. 페이지 상단의 수정 도구를 선택합니다.
  5. 네트워크 인터페이스의 수정 도구를 클릭합니다.
  6. 내부 IP 유형고정에서 임시로 변경합니다.
  7. 해제를 선택하여 고정 IP 주소를 해제합니다.
  8. 완료를 클릭하여 변경사항을 저장합니다.

    인스턴스는 삭제되거나 다시 시작되기 전까지는 기존의 고정 IP 주소를 계속 사용하며, 그 후에는 해당 IP 주소가 서브넷의 사용 가능한 내부 IP 주소를 포함하는 기본 풀로 반환됩니다.

gcloud

gcloud 도구를 사용해 compute addresses delete 명령어를 실행하세요.

gcloud compute addresses delete [ADDRESS_NAME] \
    --region [REGION]

각 항목의 의미는 다음과 같습니다.

  • [ADDRESS_NAME]은 삭제할 주소의 이름입니다.
  • [REGION]은 주소가 속한 지역입니다.

예를 들면 다음과 같습니다.

gcloud compute addresses delete example-address-to-delete \
    --region us-west1

API

API에서 다음 URL로 DELETE 요청을 합니다.

DELETE https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses/[ADDRESS_NAME]

예를 들어 us-west1 지역의 주소를 삭제하는 방법은 다음과 같습니다.

DELETE https://www.googleapis.com/compute/v1/projects/myproject/regions/us-west1/addresses/example-address-to-delete

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서