LoginSignup
5
5

More than 3 years have passed since last update.

Cloud RunとPython(Flask)で爆速WEBサイト構築

Last updated at Posted at 2021-01-19

Cloud RunとPython(Flask)で爆速WEBサイト構築

#週末ハッカソン用の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

screencapture-console-cloud-google-cloud-build-builds-2021-01-19-10_01_43.png

デプロイ

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にアクセスしサイトが表示されれば完了
https://weekend-hackathon-leopsotyca-uc.a.run.app

screencapture-localhost-8080-2021-01-15-2021-01-18-2021-01-19-10_36_10.png

補足

運用ではdeploy_run.shを作り一括してデプロイできるようにする
ローカルのDocker環境がそのまま公開できるので爆速で公開が可能
また Cloud Runはアクセス単位の料金なので初期リリースには最適是非お試しあれ

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5