Canvas 1 Layer 1

구글, 도커 컨테이너 기반 서버리스 서비스인 클라우드 런 발표

구글 클라우드 런(Cloud Run) 소개

구글 클라우드 플랫폼Google Cloud Platform은 지난 4월 11일, 구글 클라우드 넥스트 2019Google Cloud Next 2019에서 도커Docker 컨테이너를 서버리스 환경에서 운영할 수 있는 클라우드 런Cloud Run 서비스를 발표했습니다.

클라우드 런은 쿠버네티스Kubernetes 위에서 케이네이티브Knative 기반으로 동작합니다. 도커 이미지만 있다면 외부에 노출된 서버 애플리케이션을 손쉽게 실행하는 것이 가능합니다. 또한 케이네이티브 기반이기 때문에 구글 클라우드에 종속되지 않고 높은 이식성을 가지고 있습니다.

클라우드 런은 기존 서버리스 서비스들과는 조금 다른 과금 정책을 가지고 있습니다. AWS 람다AWS Lambda의 경우 함수가 호출되고 실행된 시간에 비례해서 요금이 계산됩니다. 이와 달리 AWS 파게이트AWS Fargate의 경우 컨테이너가 실행되는 시간에 비례해서 요금이 부과됩니다. 클라우드 런의 서비스는 기본적으로 서버 리퀘스트를 가정하고 있습니다. 리퀘스트를 받으면 컨테이너가 실행되고 요청을 처리합니다. 기본적으로 이 요청을 처리하는 시간만큼 요금이 계산됩니다. 이는 얼핏 AWS 람다와 비슷해보이지만, 하나의 이상의 요청을 동시에 처리하는 경우 계산 방식이 다릅니다.

클라우드 런의 사용 시간 계산 방식
클라우드 런의 사용 시간 계산 방식

예를 들어 AWS 람다의 경우 2개의 호출에 대해서는 별도의 요금이 청구됩니다. 반면에 클라우드 런에서는 하나의 서비스가 두 개의 요청을 받은 경우, 첫 번째 요청을 처리하기 시작한 시점부터 두 요청을 모두 처리한 시간까지의 시간에 대해서 요금을 청구합니다.

또한 매월 아래만큼의 무료 사용량을 제공합니다.

더 자세한 내용은 클라우드 런 요금 페이지를 참고해주시기 바랍니다.

예제 이미지로 클라우드 런 시작하기

클라우드 플랫폼 계정이 있다면 별도의 설정 과정 없이도 곧바로 클라우드 런으로 도커 컨테이너를 실행할 수 있습니다. 여기서는 웹 콘솔에서 데모 컨테이너를 실행하는 방법을 소개하겠습니다. 먼저 클라우드 런 웹 콘솔에 접속합니다. 아직 아무런 서비스도 보이지 않습니다. 위쪽에 보이는 ‘서비스 만들기’ 버튼을 클릭합니다.

클라우드 런 웹 콘솔 화면
클라우드 런 웹 콘솔 화면

서비스를 만들기 위해서는 몇 가지 항목을 입력해야 합니다.

클라우드 런 서비스 생성 과정
클라우드 런 서비스 생성 과정

컨테이너 이미지에는 사용하려는 도커 이미지 URL을 입력합니다. 단, 클라우드 런에서는 컨테이너 레지스트리gcr.io, Google Container Registry에 업로드된 이미지만을 사용할 수 있습니다. 여기서는 미리 업로드되어 있는 gcr.io/cloudrun/hello 이미지를 사용해보겠습니다. 서비스 이름은 hello로 지정합니다. 현재 시점(2019년 4월)에 위치는 us-central1만 선택할 수 있습니다. ‘인증되지 않은 호출 허용’ 체크박스를 선택해줍니다. 이제 ‘만들기’ 버튼을 클릭합니다.

클라우드 런 hello 서비스가 생성중입니다
클라우드 런 hello 서비스가 생성중입니다

서비스를 생성하고 있습니다. 1분 이내에 hello 서비스가 만들어지고, 서비스 이름 오른쪽에서 접근 가능한 URL을 확인할 수 있습니다. 이 주소를 사용하면 방금 클라우드 런으로 실행한 컨테이너에 곧바로 접속할 수 있습니다.

서비스가 생성되면 URL을 확인할 수 있습니다
서비스가 생성되면 URL을 확인할 수 있습니다

서비스의 URL에 접속해봅니다.

클라우드 런으로 실행한 서비스가 정상적으로 동작하고 있습니다
클라우드 런으로 실행한 서비스가 정상적으로 동작하고 있습니다

예제 서버가 정상적으로 실행 중인 것을 확인할 수 있습니다. 도커 이미지만 준비되면 클라우드 런을 활용해 이처럼 간단하게 서비스를 실행하는 것이 가능합니다.