해리슨 블로그

[GCP] Cloud Run - 다중 리전 서비스 출시

  • 작성 언어: 한국어
  • 기준국가: 모든 국가country-flag
  • IT

작성: 2024-10-14

작성: 2024-10-14 22:01

GCP 에서 지난주 Cloud Run 을 한번의 실행으로 멀티리전에서 사용 가능하게 해주는 기능을 출시했다.

멀티리전에서의 서비스를 간단히 요약하자면, 예를들면 , 서울 - 런던 - 라스베가스 리전이 있다고 치자.

그런 경우에 기존에는 스크립트를 이용해서 여러개의 리전을 개별적으로 배포를 해야 했다면, 새로나온 기능은 한번의 스크립트로 여러개의 리전을 배포를 할 수 있게 해주는 기능이다.

사실 처음에 공개되기 전, 서비스가 나온다는 문서를 읽고 엄청 기대했던 기능이었는데, 사실 좀 실망 했다.

배포하는것은 기존에도 스크립트를 이용해서 하면 한번에 여러개를 하나, 하나씩 여러번 하나 어차피 병렬로 동작하기에 시간도 큰 차이 없고 해서 달라질게 없다 생각해서 그 부분은 큰 기대가 없었는데, 우선 이게 한번에 다 배포를 하는것이다 보니, 리전마다 환경 변수를 다르게 할 수 없다.

그래서, 개별 Cloud Run이 리전별로 다른 값을 이용해서 다른 DB 혹은 GCS에 연결하도록 하는 기능을 애용했는데, 그 기능을 쓰는데 문제가 생기는것이었다.

두번째 문제점은 배포를 계속 반복하다 보면, 기존의 내역을 삭제하고 싶은 경우가 있는데, 이게 또 개별로 컨트롤이 안된다. 읽기 전용으로 홀드 되어서 개별적으로 구 버전삭제가 안되는것이다.

여러가지 단점이 있는데, 장점으로는.. 여러개의 Cloud Run 을 하나로 "접을수" 있다는 점.

우리 서비스의 경우에는 Cloud Run도 많이 사용하고 리전도 많이 사용하다 보니 현재는 거의 약 50개, 지금 작업하는것들이 다 끝나면 100여개까지 늘어날 상황이었는데, 이걸 다중 리전 서비스를 이용하면 10개~20개 정도로 줄일 수 있다. ( 그냥 숨기기만 하는거다. )

우선 스크립트는 다음과 같다.


위의 스크립트를 실행하면 다음과 같이 배포 된다.

[GCP] Cloud Run - 다중 리전 서비스 출시

Cloud Run

우선 동일한 이름의 Cloud Run 이 리전마다 배포 되며, 최상위에는 동일한 이름으로 폴더(?)가 생긴다.

접은 화면은 다음과 같다.

[GCP] Cloud Run - 다중 리전 서비스 출시

Cloud Run -  접은 화면

사실, 갯수가 적은 경우에는 큰 도움이 되지 않는데, 만약에 저게 40개 리전에 전부 배포를 한다고 가정을 하면 엄청 큰 도움이 된다. ( 꼭 그정도는 아니더라도.. )

[GCP] Cloud Run - 다중 리전 서비스 출시

읽기 전용이라고 표시된다.

대부분의 기능의 경우 뭔가 수정을 할려 치면 대부분 읽기 전용이라고 표시된다. 문서에 보면 기능을 제공하긴 하는데, 아직 API 가 문제가 있는지 제대로 동작하지 않는다.

우선 관련 문서가 있는곳은 여기.

gcloud 관련 문서는 이곳이다. 아직은 알파/베타 버전만 지원하고 정식 버전은 지원하지 않는다. 게다가 위의 문서에 있는 --regions 옵션은 문서에 있지도 않다. ( 곧 업데이트 되겠지? )

우선 원하는 부분은. 사실 딴거 없고 환경변수에 지금 PORT 가 기본 환경 변수로 들어가는거 처럼 기본값으로 제공해주면 어떨까? 물론 meta data 서버를 통해서 현재도 다양한 정보를 제공해주는것은 알고 있지만, 사실 그건 Fetch 로 직접 가져와야 하는 불편함이 따른다. ( 게다가 그것도 다 리소스라.. )

아직은 프리뷰이니 만큼. 점점 나아지겠지? ( 오픈하자 마자 불만을 가지기에는 .. )

댓글0