Cloud Run과 Python(Flask)으로 폭속 웹사이트 구축

Cloud Run과 Python(Flask)으로 폭속 웹사이트 구축



#주말하카손 용 WEB 사이트를 작성했기 때문에 공개하기로 했다
AWS나 렌탈 서버 등 선택사항은 많이 있지만 이번에는 서버리스로 거의 무료로 운용 가능한 Cloud Run을 사용하기로 했다

Google Cloud SDK 설치



Google Cloud SDK 부터 다운로드

다운로드 디렉토리로 이동하여 sh 실행, 기본 y로 진행
설치 후 터미널 재부팅
$ sh install.sh

버전 확인
$ gcloud version
Google Cloud SDK 321.0.0
bq 2.0.64
core 2020.12.11
gsutil 4.57

SDK 설정



브라우저가 열리므로 조작 계정으로 로그인
그런 다음 조작 프로젝트 선택
$ gcloud init

프로젝트를 변경하려는 경우
$ gcloud config set project [プロジェクト名]

빌드



Cloud Build를 사용하여 Docker 이미지 빌드
Dockerfile 만들기
※ ./app 코드는 여기
FROM python:3.7.4

WORKDIR /app
ADD . /app

RUN apt-get update && apt-get clean;

RUN pip install -r requirements.txt

ENV TZ = "Asia/Tokyo"
ENV FLASK_APP /app/app.py
ENV PYTHONPATH $PYTHONPATH:/app

ENV PORT 8080
EXPOSE 8080

CMD ["python", "app.py"]

빌드 실행
$ gcloud builds submit --tag gcr.io/weekend-hackathon/weekend-hackathon



배포



Cloud Run을 사용하여 빌드된 컨테이너 배포
$ gcloud run deploy weekend-hackathon --project=weekend-hackathon --image=gcr.io/weekend-hackathon/weekend-hackathon --region=us-central1 --platform=managed --no-allow-unauthenticated

Deploying container to Cloud Run service [weekend-hackathon] in project [weekend-hackathon] region [us-central1]
✓ Deploying new service... Done.
  ✓ Creating Revision...
  ✓ Routing traffic...
Done.
Service [weekend-hackathon] revision [weekend-hackathon-00001-teq] has been deployed and is serving 100 percent of traffic.
Service URL: https://weekend-hackathon-leopsotyca-uc.a.run.app

권한 추가
$ gcloud run services add-iam-policy-binding weekend-hackathon --region=us-central1 --member="allUsers" --role="roles/run.invoker" --platform=managed
Updated IAM policy for service [weekend-hackathon].
bindings:
- members:
  - allUsers
  role: roles/run.invoker
etag: BwW5NtPWfrM=
version: 1

URL을 방문하여 사이트가 표시되면 완료
ぇtps://우ㅇ에켄d는 c인가 쵸-〇오 pty ty-우 c. 아. 응. 아 p



보충



운영에서는 deploy_run.sh를 만들고 일괄 배포 할 수 있습니다.
로컬 Docker 환경을 그대로 공개할 수 있으므로 폭속으로 공개가 가능
또, Cloud Run은 액세스 단위의 요금이므로 초기 릴리스에는 최적 꼭 시험해도

좋은 웹페이지 즐겨찾기