이 페이지에서는 VM 유형, 홈 디스크 크기, 기본 컨테이너 이미지 등 Cloud Workstations 환경을 맞춤설정할 수 있는 워크스테이션 구성 매개변수를 설명합니다. API에서 이러한 워크스테이션 구성 매개변수를 총체적으로 WorkstationConfig
라고 부릅니다.
이러한 워크스테이션 구성 매개변수를 사용하기 전에 다음 사항을 숙지하세요.
Google Cloud 콘솔에서 초기 워크스테이션 구성을 만듭니다.
사전 구성된 기본 이미지의 목록을 검토하세요.
기본 이미지 맞춤설정 및 컨테이너 이미지 다시 빌드 자동화 방법 알아봅니다.
- 리소스: WorkstationConfig
- 호스트
- GceInstance
- GceShieldedInstanceConfig
- GceConfidentialInstanceConfig
- 가속기
- PersistentDirectory
- GceRegionalPersistentDisk
- ReclaimPolicy
- EphemeralDirectory
- GcePersistentDisk
- 컨테이너
- CustomerEncryptionKey
- ReadinessCheck
- 메서드
리소스: WorkstationConfig
Cloud Workstations API의 워크스테이션 구성 리소스입니다.
워크스테이션 구성은 워크스테이션의 템플릿으로 작동합니다. 워크스테이션 구성은 워크스테이션 가상 머신(VM) 인스턴스 유형, 영구 스토리지, 컨테이너 이미지 정의 환경, 사용할 IDE 또는 코드 편집기 등의 세부정보를 정의합니다. 관리자와 플랫폼팀은 Identity and Access Management(IAM) 규칙을 사용하여 팀 또는 개별 개발자에게 액세스 권한을 부여할 수도 있습니다.
JSON 표현 |
---|
{ "name": string, "displayName": string, "uid": string, "reconciling": boolean, "annotations": { string: string, ... }, "labels": { string: string, ... }, "createTime": string, "updateTime": string, "deleteTime": string, "etag": string, "idleTimeout": string, "runningTimeout": string, "host": { object ( |
필드 | |
---|---|
name |
식별자. 워크스테이션 구성의 전체 이름입니다. |
displayName |
(선택사항) 이 워크스테이션 구성에 대해 인간이 읽을 수 있는 이름입니다. |
uid |
(출력 전용) 이 워크스테이션 구성에 대해 시스템에서 할당된 고유 식별자입니다. |
reconciling |
(출력 전용) 이 워크스테이션 구성이 현재 의도한 상태와 일치하도록 업데이트 중인지 여부를 나타냅니다. |
annotations |
(선택사항) 클라이언트에서 지정된 주석입니다.
|
labels |
(선택사항) 워크스테이션 구성에 적용되었고 기본 Compute Engine 리소스에 전파된 라벨입니다.
|
createTime |
(출력 전용) 이 워크스테이션 구성이 생성된 시간입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
updateTime |
(출력 전용) 이 워크스테이션 구성이 최근에 업데이트된 시간입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
deleteTime |
(출력 전용) 이 워크스테이션 구성이 소프트 삭제된 시간입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
etag |
(선택사항) 서버에서 계산된 체크섬입니다. 계속하기 전 클라이언트에 최신 값이 포함되었는지 확인하기 위해 업데이트 및 삭제 요청 시에 전송될 수 있습니다. |
idleTimeout |
(선택사항) 마지막으로 사용자 트래픽을 수신한 이후 워크스테이션을 자동으로 중지하기 전까지 기다려야 하는 시간(초)입니다.
소수점 아래가 최대 9자리까지이고 ' |
runningTimeout |
(선택사항) 자동으로 종료되기 전까지 워크스테이션이 실행될 수 있는 기간(초)입니다. 비용을 줄이고 다시 시작할 때 보안 업데이트를 적용할 수 있도록 워크스테이션을 매일 종료하는 것이 좋습니다.
경고: 소수점 아래가 최대 9자리까지이고 ' |
host |
(선택사항) 워크스테이션의 런타임 호스트입니다. |
persistentDirectories[] |
(선택사항) 워크스테이션 세션 간에 지속할 디렉터리입니다. |
ephemeralDirectories[] |
(선택사항) 워크스테이션 세션 간에 유지되지 않는 임시 디렉터리입니다. |
container |
(선택사항) 이 워크스테이션 구성을 사용하여 각 워크스테이션에 대해 시작 시 실행되는 컨테이너입니다. |
encryptionKey |
변경할 수 없습니다. 고객 관리 암호화 키(CMEK)를 사용하여 이 워크스테이션 구성의 리소스를 암호화합니다. 지정된 경우 Compute Engine 인스턴스 및 영구 디스크의 부팅 디스크가 이 암호화 키를 사용해서 암호화됩니다. 이 필드를 설정하지 않으면 생성된 키를 사용해서 디스크가 암호화됩니다. 고객 관리 암호화 키는 디스크 메타데이터를 보호하지 않습니다. 고객 관리 암호화 키가 순환되는 경우 워크스테이션 인스턴스가 중지될 때 시스템이 새로운 키 버전을 사용해서 영구 디스크를 다시 만들려고 시도합니다. 영구 디스크가 다시 생성될 때까지 이전 키 버전을 유지해야 합니다. 그렇지 않으면 영구 디스크의 데이터가 손실될 수 있습니다. 암호화 키가 취소되었으면 워크스테이션 세션이 7시간 내에 자동으로 중지됩니다. 워크스테이션 구성이 생성된 후에는 변경할 수 없습니다. |
readinessChecks[] |
(선택사항) 이 워크스테이션 구성을 사용하여 워크스테이션을 시작할 때 수행할 준비 검사입니다. 모든 지정된 준비 검사가 200 상태 코드를 반환한 후에만 워크스테이션을 실행 중으로 표시합니다. |
replicaZones[] |
(선택사항) 변경할 수 없습니다. 리전 내에서 VM 및 디스크 리소스를 복제하는 데 사용되는 영역을 지정합니다. 설정된 경우 워크스테이션 클러스터의 리전 내에 정확히 영역 2개를 지정해야 합니다(예: 워크스테이션 구성이 생성된 후에는 변경할 수 없습니다. |
degraded |
(출력 전용) 이 리소스가 성능 저하되었는지 여부이며, 전체 기능을 복원하는 사용자 작업이 필요할 수 있습니다. 또한 |
conditions[] |
(출력 전용) 현재 리소스 상태를 설명하는 상태 조건입니다. |
enableAuditAgent |
(선택사항) 워크스테이션에서 Linux |
disableTcpConnections |
(선택사항) 워크스테이션에서 일반 TCP 연결에 대한 지원을 사용 중지합니다. 기본적으로 서비스에서 웹소켓 릴레이를 통해 TCP 연결이 지원됩니다. 이 옵션을 true로 설정하면 릴레이가 사용 중지되어 SSH와 같이 일반 TCP 연결이 필요한 서비스 사용이 방지됩니다. 사용 설정하면 모든 통신이 HTTPS 또는 WSS를 통해 수행되어야 합니다. |
호스트
워크스테이션의 런타임 호스트입니다.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
통합 필드 config . 워크스테이션 런타임에 사용되는 호스트 유형입니다. config 은 다음 중 하나여야 합니다. |
|
gceInstance |
Compute Engine 인스턴스를 호스트로 지정합니다. |
GceInstance
Compute Engine 인스턴스를 사용하는 런타임입니다.
JSON 표현 |
---|
{ "machineType": string, "serviceAccount": string, "serviceAccountScopes": [ string ], "tags": [ string ], "poolSize": integer, "pooledInstances": integer, "disablePublicIpAddresses": boolean, "enableNestedVirtualization": boolean, "shieldedInstanceConfig": { object ( |
필드 | |
---|---|
machineType |
(선택사항) VM 인스턴스에 사용할 머신 유형입니다. 예를 들면 |
serviceAccount |
(선택사항) 이 구성으로 생성된 Cloud Workstations VM에 대한 서비스 계정의 이메일 주소입니다. 지정된 경우 Cloud Logging에 로그를 기록할 수 있도록 서비스 계정에 프로젝트에 대해 관리자 권한으로 기본 VM에 설정하지 않으면 Cloud Workstations 서비스에서 제공되는 서비스 계정을 사용하여 VM이 실행되고 이미지가 공개적으로 액세스할 수 있어야 합니다. |
serviceAccountScopes[] |
(선택사항) |
tags[] |
(선택사항) 워크스테이션을 지원하는 Compute Engine VM에 추가할 네트워크 태그입니다. 이 옵션은 이 구성으로 생성된 VM에 네트워크 태그를 적용합니다. 이러한 네트워크 태그를 사용하면 방화벽 규칙을 만들 수 있습니다. |
poolSize |
(선택사항) 새 사용자에 대해 새 워크스테이션을 빠르게 시작할 수 있도록 시스템이 유휴 상태로 유지해야 하는 VM 수입니다. API에서 기본적으로 |
pooledInstances |
(출력 전용) 빠른 워크스테이션 시작을 위해 풀에서 현재 사용 가능한 인스턴스 수입니다. |
disablePublicIpAddresses |
(선택사항) true로 설정된 경우 VM에 대해 공개 IP 주소를 사용 중지합니다. 공개 IP 주소를 사용 중지하는 경우 네트워크에서 비공개 Google 액세스 또는 Cloud NAT를 설정해야 합니다. 비공개 Google 액세스를 사용하고 Container Registry 및 Artifact Registry에 |
enableNestedVirtualization |
(선택사항) 이 워크스테이션 구성을 사용하여 생성된 Cloud Workstations VM에서 중첩된 가상화를 사용 설정할지 여부입니다. 중첩된 가상화를 사용하면 워크스테이션 내에서 가상 머신(VM) 인스턴스를 실행할 수 있습니다. 중첩된 가상화를 사용 설정하기 전에 다음 중요 사항을 고려하세요. Cloud Workstations 인스턴스에는 Compute Engine 인스턴스와 동일한 제한사항이 적용됩니다.
|
shieldedInstanceConfig |
(선택사항) Compute Engine 보안 인스턴스 옵션 집합입니다. |
confidentialInstanceConfig |
(선택사항) Compute Engine 컨피덴셜 VM 인스턴스 옵션 집합입니다. |
bootDiskSizeGb |
(선택사항) VM의 부팅 디스크 크기(GB)입니다. 최소 부팅 디스크 크기는 |
accelerators[] |
(선택사항) 인스턴스에 연결된 가속기 카드의 유형과 개수 목록입니다. |
disableSsh |
(선택사항) VM에 대한 SSH 액세스를 중지할지 여부입니다. |
GceShieldedInstanceConfig
Compute Engine 보안 인스턴스 옵션 집합입니다.
JSON 표현 |
---|
{ "enableSecureBoot": boolean, "enableVtpm": boolean, "enableIntegrityMonitoring": boolean } |
필드 | |
---|---|
enableSecureBoot |
(선택사항) 인스턴스에 보안 부팅이 사용 설정되었는지 여부입니다. |
enableVtpm |
(선택사항) 인스턴스에 vTPM이 사용 설정되었는지 여부입니다. |
enableIntegrityMonitoring |
(선택사항) 인스턴스에 무결성 모니터링이 사용 설정되었는지 여부입니다. |
GceConfidentialInstanceConfig
Compute Engine 컨피덴셜 VM 인스턴스 옵션 집합입니다.
JSON 표현 |
---|
{ "enableConfidentialCompute": boolean } |
필드 | |
---|---|
enableConfidentialCompute |
(선택사항) 인스턴스에 컨피덴셜 컴퓨팅이 사용 설정되었는지 여부입니다. |
가속기
인스턴스에 연결된 가속기 카드입니다.
JSON 표현 |
---|
{ "type": string, "count": integer } |
필드 | |
---|---|
type |
(선택사항) 인스턴스에 연결할 가속기 리소스의 유형입니다(예: |
count |
(선택사항) 인스턴스에 노출된 가속기 카드 수입니다. |
PersistentDirectory
워크스테이션 세션 간에 지속할 디렉터리입니다.
JSON 표현 |
---|
{ "mountPath": string, // Union field |
필드 | |
---|---|
mountPath |
(선택사항) 실행 중인 워크스테이션에서 이 디렉터리의 위치입니다. |
통합 필드 directory_type . 영구 디렉터리의 구현 방법입니다. directory_type 은 다음 중 하나여야 합니다. |
|
gcePd |
Compute Engine 영구 디스크에서 지원되는 PersistentDirectory입니다. |
GceRegionalPersistentDisk
Compute Engine 리전별 영구 디스크에서 지원되는 영구 디렉터리입니다. persistentDirectories
필드는 반복되지만 항목을 하나만 포함할 수 있습니다. 세션이 시작될 때 /home
에서 워크스테이션 VM에 마운트되고 세션이 종료될 때 분리되는 영구 디스크를 만듭니다. 이 필드가 비어 있으면 이 구성으로 만든 워크스테이션에 영구적인 홈 디렉터리가 포함되지 않습니다.
JSON 표현 |
---|
{
"sizeGb": integer,
"fsType": string,
"diskType": string,
"sourceSnapshot": string,
"reclaimPolicy": enum ( |
필드 | |
---|---|
sizeGb |
(선택사항) 이 구성으로 만든 각 워크스테이션에 대한 영구 홈 디렉터리의 GB 용량입니다. 유효한 값은 |
fsType |
(선택사항) 디스크를 포맷할 파일 시스템의 유형입니다. 워크스테이션 이미지가 이 파일 시스템 유형을 지원해야 합니다. |
diskType |
(선택사항) 홈 디렉터리의 영구 디스크 유형입니다. 기본값은 |
sourceSnapshot |
(선택사항) 디스크의 소스로 사용할 스냅샷의 이름입니다. 설정된 경우 |
reclaimPolicy |
(선택사항) 워크스테이션이 삭제될 때 영구 디스크를 삭제할지 여부입니다. 유효한 값은 |
ReclaimPolicy
워크스테이션이 삭제된 후 디스크에 수행될 작업을 나타내는 값입니다.
열거형 | |
---|---|
RECLAIM_POLICY_UNSPECIFIED |
사용하지 않습니다. |
DELETE |
워크스테이션을 삭제할 때 영구 디스크를 삭제합니다. |
RETAIN |
워크스테이션을 삭제할 때 영구 디스크를 유지합니다. 관리자가 디스크를 수동으로 삭제해야 합니다. |
EphemeralDirectory
워크스테이션 세션 간에 유지되지 않는 임시 디렉터리입니다. 워크스테이션 시작 작업마다 새로 생성됩니다.
JSON 표현 |
---|
{ "mountPath": string, // Union field |
필드 | |
---|---|
mountPath |
(필수) 실행 중인 워크스테이션에서 이 디렉터리의 위치입니다. |
통합 필드 directory_type . 임시 디렉터리가 구현되는 방식입니다. directory_type 은 다음 중 하나여야 합니다. |
|
gcePd |
Compute Engine 영구 디스크에서 지원하는 EphemeralDirectory입니다. |
GcePersistentDisk
EphemeralDirectory는 Compute Engine 영구 디스크에서 지원됩니다.
JSON 표현 |
---|
{ "diskType": string, "sourceSnapshot": string, "sourceImage": string, "readOnly": boolean } |
필드 | |
---|---|
diskType |
(선택사항) 사용할 디스크 유형입니다. 기본값은 |
sourceSnapshot |
(선택사항) 디스크의 소스로 사용할 스냅샷의 이름입니다. |
sourceImage |
(선택사항) 디스크의 소스로 사용할 디스크 이미지의 이름입니다. |
readOnly |
(선택사항) 디스크가 읽기 전용인지 여부입니다. true이면 VM 여러 개에서 디스크를 공유할 수 있으며 |
컨테이너
Docker 컨테이너입니다.
JSON 표현 |
---|
{ "image": string, "command": [ string ], "args": [ string ], "env": { string: string, ... }, "workingDir": string, "runAsUser": integer } |
필드 | |
---|---|
image |
(선택사항) 커스텀 환경을 정의하는 Docker 컨테이너 이미지입니다. Cloud Workstations는 많은 사전 구성된 이미지를 제공하지만 자체 커스텀 컨테이너 이미지를 만들 수 있습니다. 비공개 이미지를 사용할 경우 워크스테이션 구성에 |
command[] |
(선택사항) 설정된 경우 이미지로 지정된 기본 ENTRYPOINT를 재정의합니다. |
args[] |
(선택사항) 진입점에 전달된 인수입니다. |
env |
(선택사항) 컨테이너의 진입점에 전달된 환경 변수입니다.
|
workingDir |
(선택사항) 설정된 경우 이미지로 지정된 기본 DIR을 재정의합니다. |
runAsUser |
(선택사항) 설정된 경우 제공된 UID를 사용해서 이미지에 지정된 USER를 재정의합니다. |
CustomerEncryptionKey
연결된 워크스테이션 구성의 Compute Engine 리소스에 대한 고객 관리 암호화 키(CMEK)입니다. Cloud KMS 암호화 키의 이름과 기본 서비스 계정을 지정합니다. 개별 서비스 계정을 사용하고 Cloud KMS 권장사항을 따르는 것이 좋습니다.
JSON 표현 |
---|
{ "kmsKey": string, "kmsKeyServiceAccount": string } |
필드 | |
---|---|
kmsKey |
변경할 수 없습니다. Google Cloud KMS 암호화 키의 이름입니다. 예를 들면 |
kmsKeyServiceAccount |
변경할 수 없습니다. 지정된 KMS 키에 사용할 서비스 계정입니다. 개별 서비스 계정을 사용하고 KMS 권장사항을 따르는 것이 좋습니다. 자세한 내용은 업무분장 및 |
ReadinessCheck
워크스테이션에서 수행할 준비 검사입니다.
JSON 표현 |
---|
{ "path": string, "port": integer } |
필드 | |
---|---|
path |
(선택사항) 요청을 전송할 경로입니다. |
port |
(선택사항) 요청을 전송할 포트입니다. |
메서드 |
|
---|---|
|
새 워크스테이션 구성을 만듭니다. |
|
지정된 워크스테이션 구성을 삭제합니다. |
|
요청된 워크스테이션 구성을 반환합니다. |
|
리소스의 액세스 제어 정책을 가져옵니다. |
|
지정된 클러스터의 모든 워크스테이션 구성을 반환합니다. |
|
호출자에게 'workstations.workstation.create' 권한이 있는 지정된 클러스터의 모든 워크스테이션 구성을 반환합니다. |
|
기존 워크스테이션 구성을 업데이트합니다. |
|
지정된 리소스의 액세스 제어 정책을 설정합니다. |
|
지정된 리소스에 대해 호출자가 보유한 권한을 반환합니다. |