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

구글 클라우드 런(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개의 호출에 대해서는 별도의 요금이 청구됩니다. 반면에 클라우드 런에서는 하나의 서비스가 두 개의 요청을 받은 경우, 첫 번째 요청을 처리하기 시작한 시점부터 두 요청을 모두 처리한 시간까지의 시간에 대해서 요금을 청구합니다.

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

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

44BITS 소식과 클라우드 뉴스를 전해드립니다. 지금 5,000명 이상의 구독자와 함께 하고 있습니다 📮

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

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

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

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

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

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

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

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

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

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

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

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

44BITS 로고

컨테이너란? 리눅스의 프로세스 격리 기능

🏷️ 키워드, 2020-01-23 - 리눅스 컨테이너는 운영체제 수준의 가상화 기술로 리눅스 커널을 공유하면서 프로세스를 격리된 환경에서 실행하는 기술을 의미합니다. 하드웨어를 가상화하는 가상 머신과 달리 커널을 공유하는 방식이기 때문에 실행 속도가 빠르고, 성능 상의 손실이 거의 없다는 장점이 있습니다.
도움이 되셨나요?
RSS 리더 피들리에서 최신 글을 구독할 수 있습니다.
트위터, 페이스북으로 44BITS의 새소식을 전해드립니다.
✔ 44BITS의 다른 활동도 확인해보세요. 다양한 채널에서 만나볼 수 있습니다.
✔ 따뜻한 댓글 하나와 피드백은 큰 힘이 됩니다.

AWS 멀티 리전 VPC 피어링 기능 추가, 2018년 7월부터 서울 리전 지원

🗞 새소식, 2018-08-08 - AWS에서는 VPC 간의 통신을 위한 VPC 피어링을 지원합니다. 이전에는 같은 리전의 VPC 간에만 VPC 피어링이 가능했지만, 2017년 11월부터 서로 다른 리전의 VPC 간에도 네트워크를 연결할 수 있는 VPC 피어링 기능이 새롭게 릴리즈 되었습니다. 또한 2018년 7월에는 서울 리전에서도 이 기능을 사용할 수 있게되었습니다

셸에서 멀티라인 명령어 편집하고 실행하기

🗒 기사, 2019-01-29 - 셸에서 긴 명령어를 다루는 일은 어려운 일입니다. 긴 명령어를 입력하다보면 실수를 하는 경우가 많습니다. 복사해서 붙여넣어봐도 이상하게 입력되는 경우가 많습니다. 이럴 때 에디터에서 긴 명령어를 편집하고 셸에서 바로 실행할 수 있다면 좀 더 편리하지 않을까요? Bash와 Zsh에는 이미 이 기능이 준비되어있습니다.

도커(Docker) 컴포즈를 활용하여 완벽한 개발 환경 구성하기

🗒 기사, 2019-03-20 - 개발 환경을 구축하기란 그리 쉬운 일이 아닙니다. 문서화를 해두어도 누군가 계속 신경쓰지 않으면 내용이 낡기 마련이고, 계속 신경 쓰자니 이 또한 쉽지 않죠. 어떻게 하면 손쉽게 개발 환경을 구성하고, 곧바로 개발 과정에 들어갈 수 있을까요? 이 글에서는 도커를 사용하여 개발 환경 구성을 손쉽게 해결하는 방법을 알아보겠습니다.