이 튜토리얼에서는 서로 같지만 독립적인 고성능 컴퓨팅 (HPC) 가상 머신 (VM) 인스턴스를 여러 개 만드는 방법을 보여줍니다. 인스턴스는 H4D HPC 최적화 머신 유형을 사용하고 예약된 용량 블록에서 실행됩니다. 이 튜토리얼에서는 Cloud RDMA를 사용하도록 H4D 인스턴스를 구성하는 방법도 보여줍니다.
이 튜토리얼은 상호 연결된 HPC 인스턴스 클러스터를 만드는 데 관심이 있는 HPC 엔지니어, 플랫폼 관리자 및 운영자, 데이터 및 MPI 전문가를 대상으로 합니다. 결과 인스턴스는 인스턴스 관리 또는 작업 예약에 오케스트레이터를 사용하지 않습니다.
목표
- 배포를 위해 용량 블록을 예약합니다.
- 선택사항: 동일한 블록 또는 하위 블록에 VM을 만들지 않는 경우 배치 정책을 만듭니다.
- 가상 프라이빗 클라우드 네트워크를 만듭니다.
- RDMA 지원 인스턴스를 일괄 생성합니다.
- 삭제
비용
이 튜토리얼에서는 비용이 청구될 수 있는 Google Cloud구성요소를 사용합니다.
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the required API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
Install the Google Cloud CLI.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the required API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/compute.instanceAdmin.v1,roles/compute.networkAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
- 비밀집 배포: Compute Engine 인스턴스 프로비저닝 모델
- 집중 배포: 소비 옵션 선택 및 용량 확보
계정팀에 문의하여 Google에서 미래용 예약 요청 초안을 만들 수 있도록 다음 정보를 제공하세요.
프로젝트 번호: 계정 팀에서 요청을 생성하고 Compute Engine에서 용량을 프로비저닝하는 프로젝트의 번호입니다. 프로젝트 번호를 찾는 방법은 Resource Manager 문서의 프로젝트 이름, 번호, ID 찾기를 참고하세요.
머신 유형: H4D HPC 최적화 머신 유형 중 하나
총 개수: 예약할 총 VM 수입니다. VM은 2의 배수로만 예약할 수 있습니다. 블록 크기와 블록당 VM 수는 머신 유형과 가용성에 따라 다릅니다. 계정팀에서 요청에 관한 자세한 내용을 제공해 드릴 수 있습니다.
영역: 용량을 예약하려는 영역입니다. H4D 머신 시리즈에 사용 가능한 리전 및 영역을 검토하려면 사용 가능한 리전 및 영역을 참고하고 머신 시리즈 선택 목록에서
H4D
를 선택하세요.시작 시간: 예약 기간의 시작 시간입니다. 시작 시간을 RFC 3339 타임스탬프로 지정합니다.
YYYY-MM-DDTHH:MM:SSOFFSET
다음을 바꿉니다.
YYYY-MM-DD
: 4자리 연도, 2자리 월, 2자리 일이 하이픈 (-
)으로 구분된 형식의 날짜입니다.HH:MM:SS
: 24시간제의 2자리 시간, 2자리 분, 2자리 초가 콜론 (:
)으로 구분된 형식의 시간입니다.OFFSET
: 협정 세계시(UTC)의 오프셋 형식으로 지정된 시간대입니다. 예를 들어 태평양 표준시 (PST)를 사용하려면-08:00
을 지정합니다. 오프셋을 사용하지 않으려면Z
를 지정합니다.
종료 시간: 예약 기간의 종료 시간입니다. RFC 3339 타임스탬프로 형식을 지정합니다.
공유 유형: 내 프로젝트만 자동 생성된 예약을 사용할 수 있는지 (
LOCAL
) 또는 다른 프로젝트도 예약을 사용할 수 있는지(SPECIFIC_PROJECTS
)를 나타냅니다.조직 내 다른 프로젝트와 예약된 용량을 공유하려면 다음 단계를 따르세요.
아직 확인하지 않았다면 Google에서 요청을 만드는 프로젝트가 공유 예약을 만들 수 있는지 확인하세요.
예약된 용량을 공유할 프로젝트의 번호를 제공합니다. 조직에서 최대 100개의 프로젝트를 지정할 수 있습니다.
예약 이름: Compute Engine에서 예약된 용량을 제공하기 위해 자동으로 만드는 예약의 이름입니다. Compute Engine은 구체적으로 타겟팅된 예약만 만듭니다.
약정 이름: 예약 기간이 1년 이상인 경우 예약된 리소스에 리소스 기반 약정을 구매하여 연결해야 합니다. 1년 또는 3년 요금제로 약정을 구매할 수 있습니다. 예약된 용량을 다른 프로젝트와 공유하는 경우 해당 프로젝트는 용량을 예약한 프로젝트와 동일한 Cloud Billing 계정을 사용하는 경우에만 할인을 받을 수 있습니다. 자세한 내용은 리소스 기반 약정에 CUD 공유 사용 설정을 참고하세요.
Google에서 미래용 예약 요청 초안을 만들고 계정팀에서 연락합니다.
초안 요청을 검토합니다. 예약 요청을 검토할 때 다음 사항에 유의하세요.
- 지정된 시작 날짜와 시간 이후에만 예약된 용량을 사용할 수 있습니다.
지정된 종료 시간에 도달하면 Compute Engine에서 다음을 수행합니다.
- 자동 생성된 예약을 삭제합니다.
- 예약을 사용하는 VM을 중지하거나 삭제합니다. 취해지는 작업은 VM을 만들 때 지정한 종료 작업을 기반으로 합니다.
예약 요청을 제출한 후에는 예약된 용량이 공유되는지 여부를 변경할 수 없습니다.
미래용 예약 요청 초안을 검토하려면 다음 옵션 중 하나를 선택합니다.
콘솔
Google Cloud 콘솔에서 예약 페이지로 이동합니다.
미래용 예약 탭을 클릭합니다. 미래용 예약 표에는 프로젝트의 각 미래용 예약 요청이 나열되고 각 표 열에는 속성이 설명되어 있습니다.
이름 열에서 Google이 생성한 임시 요청의 이름을 클릭합니다. 미래용 예약 요청에 대한 세부정보가 포함된 페이지가 열립니다.
기본 정보 섹션에서 날짜, 공유 유형과 같은 요청 세부정보가 올바른지 확인합니다. 또한 약정을 요청한 경우 약정이 지정되어 있는지 확인합니다.
이러한 세부정보 중 잘못된 부분이 있으면 계정팀에 문의하세요.
gcloud
프로젝트에서 미래용 예약 요청 목록을 보려면
--filter
플래그가PROCUREMENT_STATUS=DRAFTING
로 설정된gcloud beta compute future-reservations list
명령어를 사용합니다.gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
명령어 출력에서 계정팀에 제공한 이름이 있는 예약 요청을 찾습니다.
임시 요청의 세부정보를 보려면
gcloud beta compute future-reservations describe
명령어를 사용합니다.gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \ --zone=ZONE
다음을 바꿉니다.
FUTURE_RESERVATION_NAME
: 미래용 예약 요청 초안의 이름ZONE
: Google에서 요청을 생성한 영역입니다.
출력은 다음과 비슷합니다.
autoCreatedReservationsDeleteTime: '2026-02-10T19:20:00Z' creationTimestamp: '2025-11-27T11:14:58.305-08:00' deploymentType: DENSE id: '7979651787097007552' kind: compute#futureReservation name: example-draft-request planningStatus: DRAFT reservationName: example-reservation schedulingType: INDEPENDENT selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552 specificReservationRequired: true specificSkuProperties: instanceProperties: localSsds: - diskSizeGb: '375' interface: NVME ... machineType: h4d-highmem-192-lssd totalCount: '2' status: autoCreatedReservations: - https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/reservations/example-reservation fulfilledCount: '2' lockTime: '2026-01-27T19:15:00Z' procurementStatus: DRAFTING timeWindow: endTime: '2026-02-10T19:20:00Z' startTime: '2026-01-27T19:20:00Z' zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b
명령어 출력에서 예약 기간, 공유 유형과 같은 요청 세부정보가 올바른지 확인합니다. 또한 약정을 구매한 경우 약정이 지정되어 있는지 확인합니다.
세부정보가 잘못된 경우 계정팀에 문의하세요.
REST
프로젝트에서 미래용 예약 요청 목록을 보려면 베타
futureReservations.list
메서드에 대해GET
요청을 수행합니다. 요청 URL에filter
쿼리 매개변수를 포함하고status.procurementStatus=DRAFTING
로 설정합니다.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations?filter=status.procurementStatus=DRAFTING
다음을 바꿉니다.
PROJECT_ID
: Google에서 초안 미래용 예약 요청을 만든 프로젝트의 ID입니다.ZONE
: 요청이 있는 영역입니다.
요청 출력에서 계정팀에 제공한 이름이 있는 예약 요청을 찾습니다.
초안 요청의 세부정보를 보려면 베타
futureReservations.get
메서드에GET
요청을 수행합니다.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME
FUTURE_RESERVATION_NAME
을 초안 미래용 예약 요청의 이름으로 바꿉니다.출력은 다음과 비슷합니다.
{ "specificSkuProperties": { "instanceProperties": { "machineType": "h4d-highmem-192-lssd", "localSsds": [ { "diskSizeGb": "375", "interface": "NVME" }, ... ] }, "totalCount": "2" }, "kind": "compute#futureReservation", "id": "7979651787097007552", "creationTimestamp": "2025-11-27T11:14:58.305-08:00", "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request", "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552", "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b", "name": "example-draft-request", "timeWindow": { "startTime": "2026-01-27T19:20:00Z", "endTime": "2026-02-10T19:20:00Z" }, "status": { "procurementStatus": "DRAFTING", "lockTime": "2026-01-27T19:15:00Z" }, "planningStatus": "DRAFT", "specificReservationRequired": true, "reservationName": "example-reservation", "deploymentType": "DENSE", "schedulingType": "INDEPENDENT", "autoCreatedReservationsDeleteTime": "2026-02-10T19:20:00Z" }
출력에서 예약 기간, 공유 유형과 같은 요청 세부정보가 올바른지 확인합니다. 또한 약정을 요청한 경우 약정이 지정되어 있는지 확인합니다.
세부정보가 잘못된 경우 계정팀에 문의하세요.
모든 정보가 올바르면 예약 요청을 제출합니다. 요청 시작 시간 전에 요청을 제출해야 합니다.
미래용 예약 요청 초안을 제출하려면 다음 옵션 중 하나를 선택합니다.
콘솔
Google Cloud 콘솔에서 예약 페이지로 이동합니다.
미래용 예약 탭을 클릭합니다.
이름 열에서 Google이 생성한 임시 요청의 이름을 클릭합니다.
제출을 클릭합니다.
gcloud
검토를 위해 초안 요청을 제출하려면
--planning-status
플래그가SUBMITTED
로 설정된gcloud beta compute future-reservations update
명령어를 사용합니다.gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \ --planning-status=SUBMITTED \ --zone=ZONE
REST
검토를 위해 초안 요청을 제출하려면 베타
futureReservations.update
메서드에PATCH
요청을 실행합니다. 요청 URL에updateMask
쿼리 매개변수를 포함하고planningStatus
으로 설정합니다.PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus { "name": "FUTURE_RESERVATION_NAME", "planningStatus": "SUBMITTED" }
Google Cloud 에서 제출된 요청을 즉시 승인합니다.
Compute Engine이 요청된 리소스로 빈 예약을 만듭니다.
예약을 확인하려면 AI 하이퍼컴퓨터 문서의 예약된 용량 보기를 참고하세요.
POLICY_NAME
: 압축 배치 정책의 이름입니다.MAX_DISTANCE
: VM 인스턴스의 최대 구성 간격입니다.3
를 지정하여 VM을 인접한 블록에 배치하고2
를 지정하여 VM을 동일한 블록에 배치합니다. VM 배치는 최선을 다해 수행됩니다.REGION
: 배치 정책을 만들려는 리전입니다. 사용할 머신 유형이 제공되는 리전을 지정합니다. 사용 가능한 리전에 대한 자세한 내용은 사용 가능한 리전 및 영역을 참고하세요.PROJECT_ID
: 프로젝트 ID입니다.REGION
: 배치 정책을 만들려는 리전입니다. 사용할 머신 유형이 제공되는 리전을 지정합니다. 사용 가능한 리전에 대한 자세한 내용은 사용 가능한 리전 및 영역을 참고하세요.POLICY_NAME
: 압축 배치 정책의 이름입니다.MAX_DISTANCE
: VM 인스턴스의 최대 구성 간격입니다. VM을 인접한 블록에 배치하려면3
를 지정하고 VM을 동일한 블록에 배치하려면2
를 지정합니다. VM 배치는 최선을 다해 수행됩니다.- NIC 유형
GVNIC
: 일반 VM-VM 및 VM-인터넷 통신을 위해 TCP/IP 및 인터넷 트래픽에gve
드라이버를 사용합니다. - NIC 유형
IRDMA
: 인스턴스 간 RDMA 네트워크 통신에 IDPF/iRDMA 드라이버를 사용합니다. - 각 네트워크 인터페이스는 서로 다른 Virtual Private Cloud 네트워크에 연결되어야 합니다.
- IRDMA 네트워크 인터페이스를 구성하려면 먼저 인스턴스와 동일한 리전 및 영역에 Falcon RDMA 네트워크 프로필이 있는 VPC 네트워크를 만들어야 합니다.
- GVNIC 네트워크 인터페이스의 경우 네트워크나 서브넷을 지정하지 않으면 Compute Engine은 기본 VPC 네트워크 및 인스턴스와 동일한 리전에 있는 자동 서브넷을 사용합니다.
- 서브넷을 지정했지만 네트워크를 지정하지 않으면 Compute Engine은 지정된 서브넷에서 네트워크를 추론합니다.
- 네트워크를 지정하는 경우 서브넷을 지정해야 하며 서브넷은 동일한 네트워크에 속해야 합니다. 그렇지 않으면 인스턴스 생성에 실패합니다.
GVNIC
네트워크 인터페이스의 호스트 네트워크를 만들려면 VPC 네트워크 만들기 및 관리를 참고하세요.GVNIC
네트워크 인터페이스를 하나만 구성하는 경우 기본 VPC 네트워크와 인스턴스와 동일한 리전에 있는 자동 서브넷을 사용할 수 있습니다.IRDMA
네트워크 인터페이스용 네트워크를 만들려면 RDMA 네트워크 프로필이 있는 VPC 네트워크 만들기를 참고하세요. RDMA 네트워크의 최대 전송 단위 (MTU)의 기본값인8896
를 사용합니다.선택사항: 스크립트를 실행하기 전에 Falcon VPC 네트워크 프로필을 나열하여 사용 가능한 프로필이 있는지 확인합니다. 일부 영역에서는 Falcon VPC 네트워크 프로필을 사용할 수 없습니다.
gcloud beta compute network-profiles list --filter=falcon
다음 코드를 복사하여 Linux 셸 창에서 실행합니다.
GVNIC_NAME_PREFIX
: GVNIC NIC 유형을 사용하는 표준 VPC 네트워크 및 서브넷에 사용할 이름 프리픽스로 바꿉니다.REGION
: 네트워크를 만들려는 리전 이는 Falcon VPC를 만들 때--network-profile
플래그에 지정된 영역과 일치해야 합니다. 예를 들어 영역을europe-west4-b
로 지정하면 리전은europe-west4
입니다.IP_RANGE
: SSH 방화벽 규칙에 사용할 VPC 네트워크 외부의 IP 주소 범위입니다. 권장사항으로는 모든 IPv4 또는 IPv6 소스 대신 액세스를 허용해야 하는 특정 IP 주소 범위를 지정하는 것이 좋습니다.0.0.0.0/0
또는::/0
을 소스 범위로 사용하지 마세요.Google Cloud외부 소스를 포함한 모든 IPv4 또는 IPv6 소스의 트래픽이 허용되기 때문입니다.RDMA_NAME_PREFIX
: IRDMA NIC 유형을 사용하는 VPC 네트워크 및 서브넷에 사용할 이름 프리픽스로 바꿉니다.ZONE
: 네트워크와 컴퓨팅 인스턴스를 만들 영역입니다.us-central1-a
또는europe-west4-b
를 사용합니다.- Cloud RDMA 네트워크 인터페이스가 있는 인스턴스의 호스트 유지보수 이벤트 중에는 라이브 마이그레이션을 사용할 수 없습니다. 유지보수 이벤트 중에 종료되도록 인스턴스를 구성해야 합니다.
- RDMA 네트워크 인터페이스와 Falcon RDMA 네트워크 프로필이 있는 VPC 네트워크에서는 IPv4 주소만 사용할 수 있습니다.
- H4D 머신 시리즈만 사용하여 Cloud RDMA로 HPC에 최적화된 인스턴스를 만들 수 있습니다.
NAME_PATTERN
: 인스턴스 이름 패턴입니다. 예를 들어 이름 패턴에vm-#
을 사용하면vm-1
,vm-2
등의 이름으로 인스턴스가 생성되므로--count
플래그로 지정하는 최대 인스턴스 수는 이름 패턴에서 허용하는 인스턴스 수보다 작거나 같아야 합니다.COUNT
: 만들 인스턴스 수입니다.MACHINE_TYPE
: 인스턴스에 사용할 머신 유형입니다. H4D 머신 유형 중 하나를 사용합니다(예:h4d-highmem-192-lssd
).IMAGE_FAMILY
: 사용할 OS 이미지의 이미지 계열입니다(예:rocky-linux-9-optimized-gcp
). 지원되는 OS 이미지 목록은 지원되는 운영체제를 참고하세요. IRDMA 인터페이스를 지원하는 OS 이미지 버전을 선택합니다.IMAGE_PROJECT
: OS 이미지의 프로젝트 ID입니다(예:rocky-linux-cloud
).RESERVATION
: 이 값의 경우 다음 중 하나를 지정할 수 있습니다.- 배치 정책을 사용 중이거나 VM을 예약 블록의 어느 곳에나 배치할 수 있는 경우 예약 이름을 지정합니다(예:
h4d-highmem-exfr-prod
). - 인스턴스를 특정 블록에 배치하고 압축 배치 정책을 사용하지 않으려면
RESERVATION_NAME/reservationBlocks/
RESERVATION_BLOCK_NAME, for example,
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1` 형식으로 예약 블록 이름을 지정합니다.
예약 이름 또는 사용 가능한 예약 블록을 보려면 용량 보기를 참고하세요.
- 배치 정책을 사용 중이거나 VM을 예약 블록의 어느 곳에나 배치할 수 있는 경우 예약 이름을 지정합니다(예:
REGION
: 사용할 머신 유형이 제공되는 리전을 지정합니다(예:europe-west1
). 사용 가능한 리전에 대한 자세한 내용은 사용 가능한 리전 및 영역을 참고하세요.DISK_SIZE
: 선택사항: 부팅 디스크의 크기(GiB)입니다. 값은 정수여야 합니다.GVNIC_NAME_PREFIX
: GVNIC 인터페이스의 VPC 네트워크 및 서브넷을 만들 때 사용한 이름 접두사입니다.GVNIC 네트워크 인터페이스의 경우
network
및subnet
플래그를 생략하여default
네트워크를 대신 사용할 수 있습니다.STACK_TYPE
: 선택사항: GVNIC 네트워크 인터페이스의 스택 유형입니다.STACK_TYPE
는IPV4_ONLY
또는IPV4_IPV6
중 하나여야 합니다. 기본값은IPV4_ONLY
입니다.EXTERNAL_IPV4_ADDRESS
: 선택사항: 네트워크 인터페이스에 사용할 고정 외부 IPv4 주소입니다. 이전에 외부 IPv4 주소를 예약했어야 합니다. 다음 중 하나를 수행합니다.- 서브넷에서 유효한 IPv4 주소를 지정합니다.
- 네트워크 인터페이스에 외부 IP 주소를 갖지 않도록 하려면 대신
no-address
플래그를 사용하세요. - 인터페이스에 임시 외부 IP 주소가 수신되도록 하려면
address=''
를 지정합니다.
외부 IPv6 주소를 지정하려면
--external-ipv6-address
플래그를 대신 사용하세요.RDMA_NAME_PREFIX
: IRDMA 인터페이스의 VPC 네트워크 및 서브넷을 만들 때 사용한 이름 프리픽스로 바꿉니다.- gVNIC 네트워크 인터페이스용 네트워크 구성 하나와 RDMA 네트워크 인터페이스용 네트워크 구성 하나 등 네트워크 구성이 두 개 이상인
networkInterfaces
객체를 포함합니다. - 압축 배치 정책을 사용하기로 선택한 경우 요청 본문에
resourcePolicies
객체도 추가합니다. - 인스턴스를 만들 때 예약된 용량 블록을 사용하려면
provisioningModel
를RESERVATION_BOUND
로 설정합니다. - 필요에 따라 나머지 인스턴스 속성을 맞춤설정할 수 있습니다.
요청 본문에서 다음을 바꿉니다.
PROJECT_ID
: 인스턴스를 만들 프로젝트의 프로젝트 ID입니다.ZONE
: 사용할 머신 유형이 제공되는 영역을 지정합니다. 압축 배치 정책을 사용하는 경우 압축 배치 정책과 동일한 리전의 영역을 사용합니다. H4D 머신 유형을 사용할 수 있는 리전에 대한 자세한 내용은 사용 가능한 리전 및 영역을 참고하세요.NAME_PATTERN
: 인스턴스의 이름 패턴입니다. 예를 들어 이름 패턴에vm-#
을 사용하면vm-1
,vm-2
등의 이름으로 인스턴스가 생성되므로count
필드로 지정하는 최대 인스턴스 수는 이름 패턴에서 허용하는 인스턴스 수보다 작거나 같아야 합니다.COUNT
: 만들 인스턴스 수입니다.MACHINE_TYPE
: 인스턴스에 사용할 머신 유형입니다. H4D 머신 유형 중 하나를 사용합니다(예:h4d-highmem-192-lssd
).DISK_SIZE
: 부팅 디스크의 크기(GiB)입니다.IMAGE_PROJECT
: OS 이미지의 프로젝트 ID입니다(예:debian-cloud
).IMAGE_FAMILY
: 사용할 OS 이미지의 이미지 계열입니다(예:rocky-linux-9-optimized-gcp
). 지원되는 OS 이미지 목록은 지원되는 운영체제를 참고하세요. IRDMA 인터페이스를 지원하는 OS 이미지 버전을 선택합니다.GVNIC_NAME_PREFIX
: GVNIC 인터페이스의 VPC 네트워크 및 서브넷을 만들 때 사용한 이름 접두사GVNIC 네트워크 인터페이스의 경우
network
및subnetwork
필드를 생략하여default
네트워크를 대신 사용할 수 있습니다.EXTERNAL_IPV4_ADDRESS
: 선택사항: 네트워크 인터페이스에 사용할 고정 외부 IPv4 주소입니다. 이전에 외부 IPv4 주소를 예약했어야 합니다.RDMA_NAME_PREFIX
: IRDMA 인터페이스의 VPC 네트워크 및 서브넷을 만들 때 사용한 이름 프리픽스로 바꿉니다.RESERVATION
: 이 값의 경우 다음 중 하나를 지정할 수 있습니다.- 배치 정책을 사용 중이거나 VM을 예약 블록의 어느 곳에나 배치할 수 있는 경우 예약 이름을 지정합니다(예:
h4d-highmem-exfr-prod
). - 인스턴스를 특정 블록에 배치하고 압축 배치 정책을 사용하지 않으려면 예약 블록 이름을
RESERVATION_NAME/reservationBlocks/
RESERVATION_BLOCK_NAME, for example,
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`로 지정합니다.
예약 이름 또는 사용 가능한 예약 블록을 보려면 용량 보기를 참고하세요.
- 배치 정책을 사용 중이거나 VM을 예약 블록의 어느 곳에나 배치할 수 있는 경우 예약 이름을 지정합니다(예:
선택사항: 압축 배치 정책을 사용하는 경우 요청 본문의
...
을 다음 필드로 바꿉니다."resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ],
다음을 바꿉니다.
PROJECT_ID
: 압축 배치 정책의 프로젝트 ID입니다.REGION
: 압축 배치 정책의 리전입니다.POLICY_NAME
: 압축 배치 정책의 이름입니다.
요청을 제출합니다.
Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.
이 튜토리얼에서 만든 VM 인스턴스가 포함된 행을 선택합니다.
삭제를 클릭하고 한 번 더 삭제를 클릭하여 확인합니다.
배치 정책을 삭제하려면
gcloud compute resource-policies delete
명령어를 사용합니다.gcloud compute resource-policies delete POLICY_NAME \ --region=REGION
다음을 바꿉니다.
POLICY_NAME
: 배치 정책의 이름REGION
: 배치 정책이 있는 리전
- VM 일괄 생성 정보에 대해 자세히 알아보세요.
- Linux VM에 연결
- Cloud RDMA를 사용하여 H4D VM에서 MPI 애플리케이션 설정 및 확장
배포를 위해 용량 블록 예약
이 문서에서는 계정팀에 미래용 예약 요청을 만들어 달라고 요청하여 용량 블록을 예약하는 방법을 설명합니다. 이 예약 유형을 사용하여 VM 인스턴스의 집중 배포를 위한 용량을 확보합니다. 모든 소비 옵션에 대한 개요는 다음을 참고하세요.
이 작업을 사용하면 선택한 특정 날짜와 시간부터 시작하여 정의된 기간 동안 용량 블록을 예약할 수 있습니다. 요청에 따라 Google에서 미래용 예약 요청 초안을 만듭니다. 이 초안 요청을 검토하고 제출한 후 Google Cloud 에서 승인하면 Compute Engine에서 빈 예약을 자동으로 만듭니다 (자동 생성). 그런 다음 선택한 시작 시간에 Compute Engine이 자동 생성된 예약에 요청된 용량을 프로비저닝합니다. 그런 다음 예약을 사용하여 예약 기간이 끝날 때까지 가상 머신 (VM) 인스턴스를 만들 수 있습니다.
미래용 예약 요청 절차의 일환으로 Google에서 예약된 리소스의 할당량을 관리합니다. 할당량을 요청할 필요가 없습니다. 승인된 미래 예약의 시작 시간에 예약된 리소스에 대한 할당량이 부족한 경우 Google에서 할당량을 늘립니다.
용량 블록을 예약하려면 다음 단계를 완료하세요.
선택사항: 배치 정책 만들기
VM을 최대한 서로 가깝게 배치하려면 배치 정책을 사용하세요. 하지만 VM이 특정 블록에 있어야 하는 경우 이 단계를 건너뛰고 VM을 일괄 생성하는 동안 필요한 블록의 이름을 제공하세요.
Cloud RDMA를 사용하여 통신하는 인스턴스는 단일 영역에 있어야 하며, 더 엄격하게는 단일 클러스터 패브릭 내에 있어야 합니다. 압축 배치 정책을 만들고 최대 거리 값을 지정하여 영역 내 최소 압축을 설정할 수 있습니다. 최대 거리 값을 지정할 때 압축 배치 정책을 할당할 수 있는 인스턴스 수에는 제한이 있으며, 선택한 값에 따라 제한이 달라집니다.
압축 배치 정책을 만들려면 다음 옵션 중 하나를 선택합니다.
gcloud
압축 배치 정책을 만들려면 gcloud beta compute resource-policies create group-placement
명령어를 사용합니다.
gcloud beta compute resource-policies create group-placement POLICY_NAME \
--collocation=collocated \
--max-distance=MAX_DISTANCE \
--region=REGION
다음을 바꿉니다.
REST
압축 배치 정책을 만들려면 beta.resourcePolicies.insert
메서드에 POST
요청을 수행합니다.
요청 본문에 COLLOCATED
로 설정된 collocation
필드와 maxDistance
필드를 포함합니다.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "POLICY_NAME",
"groupPlacementPolicy": {
"collocation": "COLLOCATED",
"maxDistance": "MAX_DISTANCE"
}
}
다음을 바꿉니다.
가상 프라이빗 클라우드 네트워크 만들기
RDMA 지원 인스턴스에는 최소 2개의 네트워크 인터페이스 (NIC)가 필요합니다.
Cloud RDMA를 사용하는 인스턴스는 IRDMA
인터페이스를 하나만 가질 수 있습니다. GVNIC
네트워크 인터페이스를 최대 8개까지 추가하여 인스턴스당 총 10개의 NIC를 사용할 수 있습니다.
인스턴스의 네트워크 인터페이스 구성에 관한 다음 규칙을 검토하세요.
인스턴스에서 사용할 Falcon Virtual Private Cloud (VPC) 네트워크를 설정하려면 문서화된 안내를 따르거나 제공된 스크립트를 사용하면 됩니다.
안내 가이드
네트워크를 만들려면 다음 안내를 수행하면 됩니다.
스크립트
인스턴스당 최대 9개의 GVNIC
네트워크 인터페이스와 1개의 IRDMA
네트워크 인터페이스를 만들 수 있습니다. 각 네트워크 인터페이스는 별도의 네트워크에 연결되어야 합니다. 네트워크를 만들려면 다음 스크립트를 사용하면 됩니다. 이 스크립트는 GVNIC
용 네트워크 2개와 Falcon VPC 네트워크 프로필을 사용하는 IRDMA
용 네트워크 1개를 만듭니다.
#!/bin/bash
# Create standard VPC (networks and subnets) for the two GVNIC interfaces
for N in $(seq 0 1); do
gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
--subnet-mode=custom
gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
--network=GVNIC_NAME_PREFIX-net-$N \
--region=<var>REGION</var> \
--range=10.$N.0.0/16
gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
--network=GVNIC_NAME_PREFIX-net-$N \
--action=ALLOW \
--rules=tcp:0-65535,udp:0-65535,icmp \
--source-ranges=10.0.0.0/8
done
# Create SSH firewall rules
gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
--network=GVNIC_NAME_PREFIX-net-0 \
--action=ALLOW \
--rules=tcp:22 \
--source-ranges=IP_RANGE
# Optional: Create a firewall rule for the external IP address for the
# first GVNIC network interface
gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
--network=GVNIC_NAME_PREFIX-net-0 \
--action=ALLOW \
--rules=icmp \
--source-ranges=IP_RANGE
# Create a network for the RDMA over Falcon network interface
gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \
--network-profile=ZONE-vpc-falcon \
--subnet-mode custom
# Create a subnet for the RDMA network
gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
--network=RDMA_NAME_PREFIX-irdma \
--region=REGION \
--range=10.2.0.0/16
# offset to avoid overlap with GVNIC subnet ranges
다음을 바꿉니다.
RDMA 지원 인스턴스 일괄 생성
Cloud RDMA로 H4D 인스턴스를 만들기 전에 다음 제한사항을 검토하세요.
다음 단계에서는 처음 두 네트워크 인터페이스가 gVNIC 인터페이스로 구성되고 세 번째 네트워크 인터페이스가 IRDMA 네트워크 인터페이스로 구성된 RDMA 지원 인스턴스를 일괄적으로 만드는 방법을 보여줍니다.
gcloud
--network-interface
플래그 3개(GVNIC 인터페이스용 2개, IRDMA 인터페이스용 1개)와 함께 gcloud compute instances create
명령어를 사용합니다. 압축 배치 정책을 사용하기로 선택한 경우 --resource-policies=POLICY_NAME
플래그도 추가합니다.
POLICY_NAME
을 압축 배치 정책의 이름으로 바꿉니다. 필요에 따라 나머지 인스턴스 옵션을 맞춤설정할 수 있습니다.
gcloud compute instances bulk create \
--name-pattern=NAME_PATTERN \
--count=COUNT \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image=project= IMAGE_PROJECT \
--reservation-affinity=specific \
--reservation=RESERVATION \
--provisioning-model=RESERVATION_BOUND \
--instance-termination=action=DELETE \
--maintenance-policy=TERMINATE \
--region=REGION \
--boot-disk-type=hyperdisk-balanced \
--boot-disk-size=DISK_SIZE \
--scopes=cloud-platform \
--network-interface=nic-type=GVNIC, \
network=GVNIC_NAME_PREFIX-net-0, \
subnet=GVNIC_NAME_PREFIX-sub-0, \
stack-type=STACK_TYPE, \
address=EXTERNAL_IPV4_ADDRESS \
--network-interface=nic-type=GVNIC, \
network=GVNIC_NAME_PREFIX-net-1, \
subnet=GVNIC_NAME_PREFIX-sub-1, no-address \
--network-interface=nic-type=IRDMA, \
network=RDMA_NAME_PREFIX-irdma, \
subnet=RDMA_NAME_PREFIX-irdma-sub, \
stack-type=IPV4_ONLY, no-address
다음을 바꿉니다.
REST
RDMA 지원 인스턴스를 일괄로 만들려면 다음 설정으로 beta instances.bulkInsert
메서드에 POST
요청을 보냅니다.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
"namePattern":"NAME_PATTERN",
"count":"COUNT",
"instanceProperties":{
"machineType":"MACHINE_TYPE",
"disks":[
{
"boot":true,
"initializeParams":{
"diskSizeGb":"DISK_SIZE",
"diskType":"hyperdisk-balanced",
"sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"mode":"READ_WRITE",
"type":"PERSISTENT"
}
],
"networkInterfaces": [
{
"network": "GVNIC_NAME_PREFIX-net-0",
"subnetwork": "GVNIC_NAME_PREFIX-sub-0",
"accessConfigs": [
{
"type": "ONE_TO_ONE_NAT",
"name": "External IP",
"natIP": "EXTERNAL_IPV4_ADDRESS"
}
],
"stackType": "IPV4_ONLY",
"nicType": "GVNIC",
},
{
"network": "GVNIC_NAME_PREFIX-net-1",
"subnetwork": "GVNIC_NAME_PREFIX-sub-1",
"stackType": "IPV4_ONLY",
"nicType": "GVNIC",
},
{
"network": "RDMA_NAME_PREFIX-irdma",
"subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
"stackType": "IPV4_ONLY",
"nicType": "IRDMA",
}
],
"reservationAffinity":{
"consumeReservationType":"SPECIFIC_RESERVATION",
"key":"compute.googleapis.com/reservation-name",
"values":[
"RESERVATION"
],
"scheduling":{
"provisioningModel":"RESERVATION_BOUND",
"instanceTerminationAction":"DELETE",
"onHostMaintenance": "TERMINATE",
"automaticRestart":true
}
},
...
}
}
다음 단계를 완료합니다.
삭제
이 튜토리얼에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.
프로젝트 삭제
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID