인스턴스에 동적 NIC 추가

이 페이지에서는 기존 VM 인스턴스에 동적 네트워크 인터페이스 (NIC)를 추가하는 방법을 설명합니다.

새 인스턴스 만들기에 관한 자세한 내용은 다중 네트워크 인터페이스가 있는 VM 만들기를 참고하세요.

시작하기 전에

인스턴스에 동적 NIC를 추가하기 전에 다음을 실행합니다.

동적 NIC 추가

이 섹션에서는 인스턴스에 동적 NIC를 추가하는 방법을 설명합니다.

동적 NIC를 추가하면 적용이 지연될 수 있습니다. 일반적으로 이러한 지연은 몇 초 정도 걸리지만, 드물게 최대 1분까지 걸릴 수 있습니다.

gcloud

기존 인스턴스에 동적 NIC를 추가하려면 gcloud beta compute instances network-interfaces add 명령어를 사용합니다.

gcloud beta compute instances network-interfaces add INSTANCE_NAME \
   --zone=ZONE \
   --vlan=VLAN_ID \
   --parent-nic-name=PARENT_VNIC_NAME \
   --network=NETWORK \
   --subnetwork=SUBNET

다음을 바꿉니다.

  • INSTANCE_NAME: 동적 NIC를 추가할 인스턴스의 이름입니다.
  • ZONE: 인스턴스의 영역
  • VLAN_ID: 동적 NIC의 VLAN ID입니다.
  • PARENT_VNIC_NAME: 상위 vNIC의 이름입니다(예: nic0).
  • NETWORK: 동적 NIC가 연결되는 네트워크입니다.
  • SUBNET: 동적 NIC가 연결되는 서브넷

또는 인스턴스 속성을 업데이트할 때 인스턴스에 동적 NIC를 추가할 수 있습니다. 자세한 내용은 인스턴스 속성 업데이트를 참조하세요.

관리형 인스턴스 그룹 (MIG)에 동적 NIC를 추가하려면 gcloud beta compute instance-groups managed set-instance-template 명령어를 참고하세요.

API

기존 인스턴스에 동적 NIC를 추가하려면 instances.addNetworkInterface 메서드를 사용합니다.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addNetworkInterface
{
  "subnetwork": "regions/REGION/subnetworks/SUBNET",
  "parentNicName": "PARENT_VNIC_NAME",
  "vlan": "VLAN_ID"
}

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스가 포함된 프로젝트의 ID입니다.
  • ZONE: 인스턴스를 포함하는 영역입니다.
  • INSTANCE_NAME: 동적 NIC를 추가할 인스턴스의 이름입니다.
  • REGION: 인스턴스가 포함된 리전
  • SUBNET: 동적 NIC가 연결되는 서브넷입니다.
  • PARENT_VNIC_NAME: 상위 vNIC의 이름입니다(예: nic0).
  • VLAN_ID: 동적 NIC의 VLAN ID입니다.

또는 인스턴스 속성을 업데이트할 때 인스턴스에 동적 NIC를 추가할 수 있습니다. 자세한 내용은 인스턴스 속성 업데이트를 참조하세요.

관리형 인스턴스 그룹 (MIG)에 동적 NIC를 추가하려면 instanceGroupManagers.setInstanceTemplate 메서드를 참고하세요.

동적 NIC용 게스트 OS 구성

이 섹션에서는 새 인스턴스 또는 기존 인스턴스에 동적 NIC를 추가할 때 필요한 추가 게스트 OS 구성을 완료하는 방법을 설명합니다.

다음 구성 옵션 중 하나를 선택합니다.

구성 옵션 설명
동적 NIC의 자동 관리 구성 (권장)

동적 NIC를 자동으로 관리하려면 Google 게스트 에이전트를 사용하세요.

게스트 환경에는 Google Cloud OS 이미지의 Linux 배포에서 루트 네임스페이스의 VLAN 인터페이스 설치 및 관리를 자동화하는 Google 게스트 에이전트가 포함됩니다. 이 기능은 Google 게스트 에이전트 버전 20250204.02 이상에서 지원됩니다.

게스트 OS 수동 구성

게스트 OS에서 명령어를 실행하여 동적 NIC를 설치합니다.

이 옵션을 사용하면 인스턴스를 다시 시작한 후 구성이 자동으로 유지되지 않습니다. 재시작 후에도 구성이 유지되도록 하려면 Linux 배포의 영구 네트워크 인터페이스를 구성하는 데 권장되는 방법을 사용하세요. 예를 들어 Debian의 경우 NetworkConfiguration을, Ubuntu의 경우 interfaces를 참고하세요.

동적 NIC의 자동 관리 구성

이 섹션에서는 Google 게스트 에이전트를 사용하여 동적 NIC의 자동 관리를 구성하는 방법을 설명합니다.

이 단계는 인스턴스당 한 번만 완료하면 됩니다. 이미 이 단계를 완료한 인스턴스에 동적 NIC를 추가한 경우 이 단계를 반복할 필요가 없습니다.

동적 NIC의 자동 관리를 구성하려면 다음 단계를 따르세요.

  1. SSH를 사용하여 인스턴스에 연결합니다.

  2. 인스턴스에서 Google 게스트 에이전트 버전 20250204.02 이상을 실행하는지 확인합니다.

    1. 인스턴스에서 Google 게스트 에이전트를 실행 중인지 확인하려면 게스트 환경에 설치된 패키지에 나열된 적절한 명령어를 실행합니다.

      1. 인스턴스가 Google 게스트 에이전트를 실행하지 않는 경우 게스트 환경을 설치합니다.

      2. 인스턴스에서 Google 게스트 에이전트를 실행하는 경우 게스트 환경을 업데이트합니다.

      게스트 환경을 설치하거나 업데이트하면 최신 버전의 Google 게스트 에이전트를 사용할 수 있습니다. 게스트 환경 검증의 단계에 따라 버전을 확인할 수 있습니다.

  3. 동적 NIC를 관리하도록 Google 게스트 에이전트를 구성합니다.

    1. 게스트 환경 구성 파일을 열거나 만듭니다.

      edit /etc/default/instance_configs.cfg
      
    2. 구성 파일에 다음을 추가한 후 변경사항을 저장하고 편집기를 종료합니다.

      [NetworkInterfaces]
      vlan_setup_enabled = true
      manage_primary_nic = true
      

      이러한 설정에 대한 자세한 내용은 다음을 참고하세요.

      • vlan_setup_enabled = true: 동적 NIC를 설치하고 관리하도록 Google 게스트 에이전트를 구성합니다.
      • manage_primary_nic = true: Google 게스트 상담사가 nic0 아래에서 생성된 동적 NIC를 관리하는 데 필요한 추가 설정입니다.

      게스트 에이전트 구성 파일 수정에 관한 자세한 내용은 Google 게스트 에이전트 문서의 구성을 참고하세요.

    3. 다음 명령어를 실행하여 게스트 에이전트를 다시 시작합니다. 또는 인스턴스를 다시 시작할 수 있습니다.

      sudo systemctl restart google-guest-agent.service
      
  4. 인스턴스의 네트워크 인터페이스를 나열하여 Google 게스트 에이전트가 동적 NIC를 설치했는지 확인합니다.

    예를 들어 다음 명령어는 ens4 인터페이스의 하위 요소로 생성된 VLAN ID가 11인 동적 NIC의 이름(예: a-gcp.ens4.11)을 표시합니다.

    sudo ip -d addr
    

게스트 OS 수동 구성

인스턴스의 게스트 OS에서 동적 NIC를 수동으로 구성하려면 다음 단계를 따르세요.

  1. SSH를 사용하여 인스턴스에 연결합니다.

  2. 인스턴스에서 Google 게스트 에이전트를 실행하는 경우 동적 NIC의 자동 관리를 사용 중지합니다. 게스트 환경에 설치된 패키지에 나열된 적절한 명령어를 사용하여 인스턴스가 Google 게스트 에이전트를 실행 중인지 확인할 수 있습니다.

    동적 NIC의 자동 관리를 사용 중지하려면 다음 단계를 따르세요.

    1. 게스트 환경 구성 파일을 열거나 만듭니다.

        edit /etc/default/instance_configs.cfg
        

    2. 구성 파일에 다음을 추가한 후 변경사항을 저장하고 편집기를 종료합니다.

      [NetworkInterfaces]
      vlan_setup_enabled = false
      manage_primary_nic = false
      

      게스트 에이전트 구성 파일 수정에 관한 자세한 내용은 Google 게스트 에이전트 문서의 구성을 참고하세요.

    3. 다음 명령어를 실행하여 게스트 에이전트를 다시 시작합니다. 또는 인스턴스를 다시 시작할 수 있습니다.

      sudo systemctl restart google-guest-agent.service
      
  3. 만든 각 동적 NIC에 대해 다음을 실행합니다.

    1. 상위 vNIC의 MAC 주소를 가져옵니다. MAC 주소를 찾으려면 다음 명령어를 실행하여 메타데이터 서버를 쿼리합니다.

      curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/VNIC_NUMBER/mac -H "Metadata-Flavor: Google"
      

      VNIC_NUMBER을 상위 vNIC 번호로 바꿉니다. 예를 들어 nic0의 경우 0, nic1의 경우 1입니다.

    2. 인스턴스의 게스트 OS에서 하위 인터페이스를 구성합니다. 예를 들어 Debian VM에서 다음 명령어를 실행합니다.

      sudo modprobe 8021q
      sudo ip link add link VNIC_NAME name VNIC_NAME.VLAN_ID type vlan id VLAN_ID
      sudo ip addr add IP_ADDRESS dev VNIC_NAME.VLAN_ID
      sudo ip link set dev VNIC_NAME.VLAN_ID address MAC_ADDRESS
      sudo ip link set up VNIC_NAME.VLAN_ID
      

      다음을 바꿉니다.

      • VNIC_NAME: 운영체제에서 할당한 상위 vNIC의 이름입니다(예: eth1 또는 ens4).
      • IP_ADDRESS: 만든 동적 NIC의 IP 주소입니다.
      • VLAN_ID: 동적 NIC에 할당한 VLAN ID입니다.
      • MAC_ADDRESS: 이전 단계에서 가져온 MAC 주소입니다.