이번글에서는 Cloud Run에 대해서 소개합니다.
구글 클라우드의 'Cloud Run'이란 무엇일까?
구글 클라우드 플랫폼(GCP)에는 다양한 서비스가 있지만, 그중에서도 특히 'Cloud Run'이라는 서비스가 많은 주목을 받고 있습니다. Cloud Run은 간단히 말해, 애플리케이션이나 웹서비스를 서버를 직접 운영하지 않고도 빠르게 실행할 수 있도록 도와주는 서비스입니다.
예를 들어, 기존에는 웹사이트나 앱을 만들 때 서버를 직접 빌리거나, 서버를 관리해야 했습니다. 서버 운영은 복잡하고 시간도 많이 들며, 비용도 꾸준히 발생합니다. 그런데 Cloud Run을 사용하면, 구글이 대신 서버를 관리해주기 때문에 사용자는 코드만 준비해서 쉽게 앱을 배포할 수 있게 됩니다.
Cloud Run의 장점
Cloud Run의 가장 큰 장점은 서버를 관리하지 않아도 된다는 것입니다. 다음과 같은 이점들이 있습니다.
- 간편한 배포: 코드를 준비해서 올리기만 하면 바로 앱이 작동합니다.
- 자동 확장: 사용자가 많아지면 자동으로 서버가 늘어나서 사용량에 따라 빠르게 반응합니다.
- 비용 절감: 서버가 작동할 때만 비용을 내기 때문에 비용이 효율적입니다.
어디에 활용할 수 있을까?
Cloud Run은 다양한 곳에서 활용될 수 있습니다.
- 간단한 웹사이트나 API 서비스
- 모바일 앱의 백엔드 서버
- 배치 작업이나 자동화된 작업 처리
간단한 사용 예시
간단한 예시를 통해 Cloud Run의 동작 방식을 알아보겠습니다.
예를 들어, "안녕하세요!"라는 문장을 출력하는 간단한 웹 애플리케이션을 만든다고 가정해봅시다.
먼저 사용자는 애플리케이션 코드(파일 이름은 app.py입니다.)를 작성합니다. (Python의 Flask 프레임워크를 활용) 작성된 코드는 구글 클라우드 콘솔 터미널의 업로드 기능을 이용하여 업로드합니다.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "안녕하세요! Cloud Run에서 서비스 중입니다."
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
2. 작성한 코드를 컨테이너 이미지로 만듭니다. Docker를 이용하여 이미지를 만들 수 있습니다.
먼저 Dockerfile을 다음과 같이 작성합니다.
# 베이스 이미지
FROM python:3.10-slim
# 작업 디렉토리 설정
WORKDIR /app
# 필요 패키지 설치
COPY requirements.txt .
RUN pip install -r requirements.txt
# 소스 코드 복사
COPY . .
# 컨테이너 실행 시 사용할 명령어
CMD ["python", "app.py"]
requirements.txt 파일에는 Flask를 추가합니다.
flask
위의 두 파일들 (Dockerfile과 requirements.txt) 모두 콘솔 터미널을 이용하여 업로드 합니다.
이제 터미널 상에서 Docker 명령어를 이용해 이미지를 빌드하고 Google Cloud Container Registry(GCR)에 업로드합니다.
docker build -t gcr.io/your-project-id/hello-cloudrun .
docker push gcr.io/your-project-id/hello-cloudrun
3. Cloud Run 콘솔메뉴에서 배포할 컨테이너 이미지를 선택하고 간단한 설정(사용자가 이 cloud run의 이름을 "hello-cloudrun"으로 정한다고 가정하겠습니다.) 후 배포 버튼을 누르면 자동으로 서비스가 작동합니다. 그럼 이제 "your-project-id"(<-사용자 지정 프로젝트 이름입니다.)라는 구글 클라우드 프로젝트의 "hello-cloudrun"이라는 이름의 cloud run이 구동합니다.
배포된 Cloud Run 사용하기
Cloud Run에서 애플리케이션을 배포하면 URL이 자동으로 생성됩니다. 이 URL을 사용해 간편하게 HTTP 요청을 통해 앱에 접근할 수 있습니다. 예를 들어 웹브라우저의 주소창에 Cloud Run에서 제공된 URL을 입력하고 엔터키를 누르면, 바로 애플리케이션이 작동하는 것을 확인할 수 있습니다. (즉, 브라우저가 cloud run 서버에 요청하여 “안녕하세요! Cloud Run에서 서비스 중입니다.”라는 문자열 읽어와서 화면에 보여줍니다. 브라우저의 주소창에 주소를 입력하고 엔터키를 치는 것은 HTTP의 GET 요청(원격 사이트에서 정보를 읽기)과 같습니다. 물론 HTTP의 POST 요청(원격 사이트에 정보를 쓰기) 등 다른 타입의 요청도 위의 python 스크립트로 구현이 가능합니다.) 또한 프로그래밍적으로 앱을 호출하고자 할 때는 curl 또는 다른 HTTP 클라이언트를 통해 다음과 같이 요청할 수 있습니다.
curl https://<YOUR_CLOUD_RUN_URL>/
이를 통해 앱이 정상적으로 작동하고 있는지 테스트할 수 있으며, 모바일 앱이나 다른 서비스에서도 HTTP 요청을 통해 데이터를 주고받을 수 있습니다.
'GreenTam의 생각' 카테고리의 다른 글
[공지] AWS 컨퍼런스 (0) | 2025.03.15 |
---|---|
클라우드 컴퓨팅: API 게이트웨이 (1) | 2025.03.14 |
클라우드 컴퓨팅: Storage의 종류 (0) | 2025.03.12 |
클라우드 컴퓨팅: Compute Engine (0) | 2025.03.12 |
클라우드 컴퓨팅: App Engine (1) | 2025.03.08 |