본문 바로가기
CSP (Cloud Service Provider)/GCP

조직 내 커스텀 이미지 공유

by BTC_.tf 2023. 7. 6.

베하! 엄팀입니다.

즐거운 주말 준비 잘 하고 계신가요? 유난히 덥고 습한 요즘, 기력 보충이 시급하니 오늘의 포스팅 시작하겠습니다.

 

오늘 포스팅의 주제는 GCP의 같은 조직 내에서 타 프로젝트의 이미지 공유입니다.

같은 조직에서 분리된 프로젝트가 소유한 이미지를 사용할 때, 필요한 권한과 이미지를 공유하는 법에 대해 알아보겠습니다.

 

우선 프로젝트를 공유받는 사용자에게 필요한 최소 권한은 'Compute 이미지 사용자(roles/compute.imageUser)'입니다.

gcloud compute images add-iam-policy-binding IMAGE_NAME \
    --member='MEMBER' \
    --role=roles/compute.imageUser

위 명령어에서 'MEMBER'에는 user, group, serviceAccount 등의 계정을 기입해주면 됩니다.

 

다음은 테스트에 필요한 이미지를 생성해야겠죠?

 

이미지를 생성하기 전, 제가 미리 생성해둔 'test-instance'에 접속하여 증빙(?) 파일을 생성해줍니다.

해당 VM으로 뜬 이미지로 다른 VM을 생성한다면, 그 VM에도 'test_file'이 존재할 것입니다.

 

gcloud compute images create IMAGE_NAME \
    --source-disk=SOURCE_DISK \
    --source-disk-zone=ZONE

'커스텀 이미지'를 생성하는 명령어입니다.

 

1번 프로젝트에서 실제로 이미지를 생성해보겠습니다.

'test-instance' VM의 Disk를 기반으로 이미지를 생성하였습니다.

콘솔에서도 다음과 같이 확인이 가능합니다.

 

여기서 주의할 점은 VM이 가동중일 땐 VM이 사용중인 Disk의 이미지를 생성할 수 없다는 것!

가동중인 VM의 Disk로 이미지를 생성하려 할 경우, 다음과 같은 에러가 발생한다는 점 기억해주세요.

 

 gcloud compute instances create VM_NAME \
        --image=IMAGE \
        --image-project=IMAGE_PROJECT

이미지를 이용하여 VM을 생성하는 명령어입니다.

 

실제로 이미지를 이용한 VM 생성 명령어를 사용해보겠습니다.

이젠 2번 프로젝트로 gcloud config를 set 해주겠습니다.

그 후, 1번 프로젝트에서 생성한 이미지를 이용하여 VM을 생성해보겠습니다.

VM 생성 명령어를 실행한 상태입니다.

콘솔에서도 확인해보겠습니다.

'test-instance-2'라는 VM이 생성되었습니다.

 

접속하여 'test-instance'에서 만든 'test-file'이 존재하는지 확인해볼까요?

짜잔. 해당 파일이 존재하는 것을 확인할 수 있었습니다.

 

오늘의 포스팅, 어떠셨나요.

조금 러프하게 느껴질 수도 있는 실습이었지만, 다른 프로젝트에서 생성한 이미지를 사용하는 법. 알아두면 도움이 될 것 같아 오늘의 주제를 이렇게 정해보았습니다.

 

다들 즐거운 금요일과 주말 보내시길 바라며, 오늘의 포스팅은 여기서 마치겠습니다. 그럼 베바!

 

 

 

 

 

 

 

댓글