고정 내부 IP 주소 예약

가상 머신(VM) 인스턴스에 변경되지 않는 고정 내부 IP 주소가 필요한 경우 다음 옵션 중 하나를 사용하여 VM의 고정 내부 IP 주소를 가져올 수 있습니다.

보조 내부 IP 주소를 관리하는 방법을 알아보려면 별칭 IP 범위를 참조하세요.

Compute Engine에서 각 VM 인스턴스는 여러 네트워크 인터페이스를 가질 수 있습니다. 각 인터페이스는 외부 IP 주소 1개, 기본 내부 IP 주소 1개, 1개 이상의 보조 내부 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 주소 수는 프로젝트 할당량을 초과할 수 없습니다. 자세한 내용은 VPC 문서의 프로젝트별 할당량을 참조하세요.

  • 한 번에 하나의 리소스만 고정 내부 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 주소 리소스를 만듭니다. 또한 이 단계에서는 Google Cloud가 해당 주소를 임시 주소로 자동 할당하지 않도록 합니다.

  3. VM 또는 부하 분산기 리소스를 만들 때 예약된 내부 IP 주소를 VM 인스턴스 또는 내부 부하 분산기와 연결하여 사용합니다.

임시 내부 IP 주소를 리소스에 지정한 후 주소 승격

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

  1. 서브넷을 만듭니다.

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

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

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

내부 IP 예약

새 고정 내부 IP 주소 예약

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

자동으로 할당되거나 기존 서브넷에서 사용되지 않는 새 고정 내부 IP 주소를 예약하는 데 Google Cloud Console, gcloud 도구 또는 API를 사용할 수 있습니다.

Console

  1. Cloud Console에서 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

addresses.insert 메서드를 호출합니다.

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

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

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

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

POST https://compute.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

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

Console

콘솔에서 임시 내부 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_1IP_ADDRESS_1에 해당하고 ADDRESS_NAME_2IP_ADDRESS_2에 해당합니다.
  • IP_ADDRESS_1,[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

addresses.insert 메서드를 호출합니다.

POST https://compute.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/SUBNETWORK"
}

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

POST https://compute.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 인스턴스 만들기

인스턴스를 만들 때 인스턴스에 할당할 특정 내부 IP 주소를 선택할 수 있습니다. IP 주소는 인스턴스의 서브넷에서 적합한 IP 주소여야 하며, 아직 사용 중이 아니어야 합니다. IP 주소는 사용자가 인스턴스를 삭제하여 IP 주소가 풀로 다시 해제될 때까지 인스턴스에 연결된 상태로 유지됩니다. 인스턴스를 중지하고 다시 시작해도 인스턴스에 내부 IP 주소가 동일하게 유지됩니다.

IP 주소를 지정하지 않으면 Compute Engine이 서브넷 또는 네트워크에서 IP 주소를 자동으로 할당합니다. Google Cloud Console, gcloud 도구 또는 Compute Engine API를 사용하여 내부 IP 주소를 지정할 수 있습니다.

Console

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

    VM 인스턴스 페이지로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. 새 인스턴스 만들기 페이지에서 인스턴스의 속성을 입력합니다.
  4. 관리, 보안, 디스크, 네트워킹, 단독 테넌시 섹션을 펼칩니다.
  5. 네트워킹을 클릭합니다.
  6. 네트워크 인터페이스에서 기본 네트워크 인터페이스를 클릭하여 수정합니다.
  7. 원하는 경우 네트워크서브네트워크에서 사용할 네트워크와 서브네트워크를 선택합니다.
  8. 기본 내부 IP의 드롭다운 목록에서 내부 IP 주소 옵션을 선택합니다.
  9. 완료를 클릭하여 네트워크 인터페이스 수정을 완료합니다.
  10. 만들기를 클릭하여 인스턴스를 만듭니다.

gcloud

인스턴스를 만들 때 유효한 IP 주소를 지정하세요.

gcloud compute instances create INSTANCE_NAME
     --private-network-ip IP_ADDRESS

다음을 바꿉니다.

  • INSTANCE_NAME: 만들려는 인스턴스의 이름입니다.
  • IP_ADDRESS: 할당하려는 IP 주소입니다.

커스텀 서브넷 모드 네트워크를 사용 중인 경우 --subnet SUBNET 매개변수를 사용해서 서브넷도 지정해야 합니다.

API

고정 내부 IP 주소를 사용해 인스턴스를 만들려면 Compute Engine API를 사용하세요. 일반적인 방법에 따라 새 인스턴스 만들기 요청을 실행하되, 사용할 내부 IP를 networkInterfaces[].networkIP 속성에 명시적으로 제공합니다. 예를 들면 다음과 같습니다.

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/us-central1-f/machineTypes/f1-micro",
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT",
     }],
    "network": "global/networks/default",
    "networkIP": "IP_ADDRESS"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "initializeParams": {
        "sourceImage": "projects/debian-cloud/global/images/v20150818"
     }
   }]
 }

다음을 바꿉니다.

  • INSTANCE_NAME: 인스턴스 이름입니다.
  • IP_ADDRESS: 인스턴스에 할당할 IP 주소입니다.

지정된 IP 주소가 포함된 인스턴스를 삭제할 경우, 해당 주소는 할당되지 않은 주소 풀로 되돌아갑니다. 인스턴스 수명이 종료된 후에도 내부 IP 주소를 계속 사용해야 하면 고정 내부 IP 주소를 예약하면 됩니다.

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

고정 내부 IP 주소를 사용하는 내부 부하 분산기를 만들려면 다음 지침을 따르세요.

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

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

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

  1. 먼저 고정 내부 IP 주소를 예약합니다. 예를 들어 다음 예시에서는 us-central1 리전에 my-second-ip-address라는 주소를 예약합니다. 이 명령어에는 --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

addresses.delete 메서드를 호출합니다.

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

예를 들어 us-west1 리전의 주소를 삭제하려면 다음을 실행합니다.

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

다음 단계