• Home
  • About
    • Pieces for Studying photo

      Pieces for Studying

      Moon is a minimal, one column jekyll theme.

    • Learn More
    • Email
    • LinkedIn
    • Github
  • Posts
    • All Posts
    • Baekjoon
    • CS231N
    • Study
  • Projects

GCP Cloud Run에서 컨테이너 배포하기

12 Jan 2021

Reading time ~1 minute

1. Cloud Run 이란

Google Cloud 에서 제공하는 Serverless 서비스 중 하나이다.

구글에서 제공하는 Serverless 서비스는 Cloud Functions 과 Cloud Run 이 있는데, 전자는 이름에서도 알 수 있듯이 코드를 서비스 해주는 Faas 이다. 반대로 Cloud Run 은 컨테이너를 배포할 수 있는 플랫폼이다.

이런 서버리스 서비스들은 필요 시(요청이 들어올 시) 에만 코드를 실행하여 사용한 리소스만큼만 비용이 발생하고, 트래픽에 따라 자동적으로 스케일링이 되는 등 서버 관리가 필요 없다는 장점이 있다.

2. 이미지 빌드 및 배포하기

Cloud Run을 이용해 컨테이너를 구동하기 위해서는 먼저 GCR(Google Cloud Registiry)에 이미지를 배포해야 한다.

먼저 Dockerfile을 작성해 준다.

FROM node:12-slim

WORKDIR /app

COPY ./package.json /app
RUN npm install

COPY . .

RUN npm run build
CMD ["npm", "start"]

여기서는 gcloud CLI를 이용해서 GCR에 배포했다.

gcloud builds submit --tag [HOST]/[PROJECT_ID]/[IMAGE_NAME]

여기서 HOST는 다음과 같다.

  • gcr.io는 이미지를 미국의 데이터 센터에서 호스팅하지만 나중에 위치가 변경될 수 있습니다.
  • us.gcr.io는 이미지를 미국의 데이터 센터에서, gcr.io에서 호스팅하는 이미지와 별도의 스토리지 버킷에 호스팅합니다.
  • eu.gcr.io는 유럽 연합 내 이미지를 호스팅합니다.
  • asia.gcr.io는 이미지를 아시아의 데이터 센터에서 호스팅합니다.

PROJECT_ID 는 GCP 프로젝트 ID 이다.

이제 이미지 빌드 후 Cloud Registiry에 올라간 것을 볼 수 있다.

3. Cloud Run에 배포하기

마찬가지로 gcloud CLI 를 이용해서 진행하였다.

2에서 진행한 이미지를 이용하여 배포한다.

gcloud run deploy --image [HOST]/[PROJECT_ID]/[IMAGE_NAME]

서비스 입력을 입력하고 리전을 선택한 뒤, 인증되지 않은 호출 허용 한 뒤 기다리면 배포가 완료된다. 성공 시 해당 서비스를 호출할 수 있는 URL을 확인할 수 있다.



studydockercloud Share Tweet +1