Balanced PD Capacity의 비용이 나온다면 이렇게 대처하라

홍석주·2024년 11월 30일
0

Kwitch

목록 보기
4/6

비용표

크위치 프로젝트에서 비용이 발생했다. E2 Instance는 프리티어 기준을 만족했기 때문에 비용이 적혀는 있지만 합계되진 않았다. 하지만 Balanced PD Capacity라는 항목에서 비용이 발생했고, 세금과 Cloud DNS을 더해 총 4,640원이 발생했다. 이전에는 초기 사용자 크래딧을 사용했지만 이젠 직접 결제해야하기 때문에 왜 비용이 나오게 되었는지 확인해보자.

Balanced PD Capacity?

Balanced PD Capacity

스택오버플로우의 글에 따르면 Balanced PD Capacity는 저장소 중 pd-balanced에 해당하는 부분이라고 한다.
이는 한국어로 균형 잡힌 영구 디스크에 해당하는데, 크위치를 실행하는 인스턴스가 해당 디스크로 설정되어 있어 비용표에 등록된 것이였다.

Compute Engine Free Tier
Compute Engine을 만들 때, 디스크에 30GB에 한도가 있다는 것만 인식하고 표준 영구 디스크 부분을 놓쳤다. 따라서 부팅 디스크의 유형을 변경해야 했다.

두 유형의 차이는 HDD, SSD 차이 인듯 합니다.

부팅 디스크 유형을 변경해보자

예상되겠지만 부팅 디스크 유형을 단지 인스턴스를 멈추고 클릭 몇번에 변경할 수는 없다. 크위치같은 경우에는 도커를 이용해 데이터베이스를 로컬에 연결해놓았기 때문에 해당 데이터를 그대로 옮기면서 디스크를 교체해야 했다.

기존에 gcloud CLI를 사용하고 있었기 때문에 해당 기능을 사용했다. Google Console에서도 똑같은 과정을 진행할 수 있다.

  1. 먼저 서비스를 중단했다.
    Stop Service

  2. 이후 인스턴스를 중단했다.
    Stop Instance

  3. 현재 연결되어 있는 부팅 디스크의 스냅샷을 생성한다.
    Create Snapshot

스냅샷은 사진을 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 별도로 보관하는 기술을 말합니다. 데이터 복제, 복원이나 분석에 사용됩니다.

디스크의 이름이 이상한건 지금 처음알았습니다...

  1. 해당 스냅샷을 이용해 새로운 디스크를 생성한다.
    Create pd-standard disk

  2. 기존 부팅 디스크를 분리한다.
    Detach Disk

  3. 새로 만든 디스크를 연결한다. (부팅 디스크를 해제했을때 이미 새 디스크로 설정된 것 같았다.)
    Attach Disk

Kwitch disk
이후 기존의 디스크를 삭제하고 새 디스크로 잘 연결되었는지 확인하면 된다.

Restart Service
문제없이 디스크를 교체하고 서비스를 다시 시작했다!

가용성을 생각했다면

디스크 교체를 진행하면서 실제 서비스라면 인스턴스를 중단해야하는 상황에서 어떻게 서비스의 다운타임 없이 과정을 마쳤을까? 라는 의문이 생겼다.

  • 인스턴스의 중단이 불가피하기 때문에 두개 이상의 인스턴스를 사용해야 한다.
  • 트래픽을 과정 중 유연하게 전환하기 위해 로드 밸런서를 사용해야 한다.

가장 간단하게 생각해보면 블루/그린 배포 전략을 생각해서 새로운 그린 환경을 디스크를 변경하여 생성해서 점진적으로 트래픽을 전환한 뒤 기존 블루 환경을 제거하거나 재사용하는 방법을 떠올렸다.
또는 이미 여러 인스턴스를 사용하여 분산 환경을 구성했다면 해당 인스턴스로 가는 트래픽을 비활성화 하고 작업을 진행하면 될 것이다.

큰 시스템에서 인스턴스 정책이 바뀌었다면 꽤나 골치아픈 상황일 것 같습니다..

profile
이거이 니 정주영이고 이병철이야

0개의 댓글

관련 채용 정보