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은 액세스 단위의 요금이므로 초기 릴리스에는 최적 꼭 시험해도
Reference
이 문제에 관하여(Cloud Run과 Python(Flask)으로 폭속 웹사이트 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/morita-toyscreation/items/4dfe282a18e0cddc592b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sh install.sh
$ gcloud version
Google Cloud SDK 321.0.0
bq 2.0.64
core 2020.12.11
gsutil 4.57
$ gcloud init
$ gcloud config set project [プロジェクト名]
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
$ 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
Reference
이 문제에 관하여(Cloud Run과 Python(Flask)으로 폭속 웹사이트 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/morita-toyscreation/items/4dfe282a18e0cddc592b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)