컴퓨터/클라우드

[GCP Associate Cloud Engineer] 클라우드에서 애플리케이션 개발

sidedoor 2025. 1. 4. 22:42

Cloud Run

Cloud Run은 서버리스 컴퓨팅 플랫폼으로, 웹 요청 또는 Pub/Sub 이벤트에 의해 트리거되는 상태 비저장 컨테이너를 실행한다.

 

서버리스 → 인프라 관리 작업을 제거하여 애플리케이션 개발에 집중할 수 있다.

Knative 기반  → Kubernetes 위에서 실행되며, 오픈 API 및 런타임 환경을 제공한다.

그리고 Cloud Run은 Google Cloud, Google Kubernetes Engine(GKE), 또는 Knative를 지원하는 어디에서나 실행 가능하다.

 

Cloud Run은 빠르게 동작하여 요청 수에 따라 자동 확장 및 0부터 시작까지 거의 즉각적으로 수행되고 사용한 리소스에 대해서만 100밀리초 단위로 과금된다. 따라서 과도하게 프로비저닝된 리소스에 대해 비용을 지불하지 않는다. 이때 비용의 경우  CPU 및 메모리 리소스가 클수록 더 높은 비용 발생한다.

 

Cloud Run의 주요 기능

 

 - 자동 확장요청이 증가하면 컨테이너를 동적으로 추가하고, 요청이 감소하면 컨테이너를 제거하여 비용 효율성을 극대화한다.

 - 비용 효율성처리 중인 요청에 대해서만 비용 청구하고, 유휴 상태에서는 비용 발생이 없다.

 - 유연한 워크플로우컨테이너 기반 워크플로우를 통해 컨테이너 이미지를 직접 배포한다. 그리고 소스 기반 워크플로우이기 때문에 소스 코드를 업로드하면 Cloud Run이 빌드하고 배포한다.

 - 언어 및 런타임 지원Java, Python, Node.js, PHP, Go, C++와 같은 주요 언어를 지원하고, Cobol, Haskell, Perl 등 비주류 언어도 지원한다. , Linux 64-bit용으로 별도의 컴파일 필요하다.

 - HTTPS 자동 지원Cloud RunHTTPS를 자동으로 구성하여 보안을 강화한다. 따라서 개발자는 웹 요청 처리에만 집중할 수 있다.

 - Buildpacks: 오픈 소스 프로젝트를 사용해 소스 코드를 컨테이너 이미지로 빌드 및 패키징한다.

 

Cloud Run의 워크플로우

 

애플리케이션 작성사용자가 선호하는 프로그래밍 언어로 웹 요청을 수신하는 서버를 개발한다.

컨테이너 이미지 빌드 및 배포: 애플리케이션을 컨테이너 이미지로 빌드하고, 컨테이너 이미지를 Artifact Registry에 푸시한다.

Cloud Run 배포: Cloud Run이 컨테이너 이미지를 배포하면 고유한 HTTPS URL을 얻는다. 그 후 요청에 따라 컨테이너가 시작되며, 요청이 완료되면 종료된다.

Cloud Run Functions

많은 애플리케이션에는 이벤트가 발생함에 따라 동작하는 부분이 포함되어 있다.

예를 들어, 사용자가 이미지를 업로드할 수 있는 애플리케이션이 있다고 할 때, 해당 이벤트가 발생하면 이미지를 표준 형식으로 변환하고, 크기를 변환하고, 파일을 리포지토리에 저장하는 등 여러 가지 방법으로 처리를 해야한다.
Cloud Run Functions
는 이러한 경우 단일 목적의 작은 함수를 작성하여 이벤트에 반응하도록 구성하는 서비스이다.

Cloud Run Functions은 서버리스이기 때문에 서버나 런타임 환경을 직접 관리할 필요 없이 함수 작성에만 집중 가능하고, 특정 비즈니스 로직이나 단일 작업을 수행하는 작은 함수로 구성되어 경량화가 가능하다는 특징을 가지고 있다.

 

주요 기능 및 장점

 

 - 이벤트 기반 실행Cloud Storage, Pub/Sub 이벤트를 통해 비동기로 트리거되고, HTTP 호출을 통해 동기 실행도 지원한다.

 - 단일 목적 함수각 함수는 특정 작업을 수행하도록 설계되어 있다.

 - 비용 효율성함수가 실행되는 동안만 100밀리초 단위로 비용이 청구되고 사용하지 않는 동안 비용이 발생하지 않는다.

 - 다양한 프로그래밍 언어 지원Node.js, Python, Go, Java, .Net Core, Ruby, PHP 등의 언어를 지원한다.

 - 클라우드 서비스 확장다른 클라우드 서비스와 연결하여 애플리케이션 워크플로우를 확장 가능하다.