LoginSignup
2
4

More than 5 years have passed since last update.

Cloud Runを試してみる

Last updated at Posted at 2019-04-14

Cloud Runとは

Google Cloud Next '19 San Francisco で発表された、GCPの新サービス、
Cloud Runを試してみる。
コンテナを作成しデプロイするだけで、サーバレスで実行できるようになるらしい。
コンテナ上でアプリケーションが動くため、どんな言語で作成されたものでも実行可能。

公式チュートリアル

Dockerイメージを作成する

以下の3ファイルを作成

requirements.txt
Flask==1.0.2
gunicorn==19.9.0
Dockerfile
FROM python:3.7

ENV PORT=8080
WORKDIR /usr/src/app

COPY requirements.txt ./
COPY app.py ./
RUN pip install --no-cache-dir -r requirements.txt

CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 app:app
app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
@app.route('/<id>')
def hello(word=World):
    return f'Hello {word}!!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 8080)))

ビルドして、GCRにプッシュ

PROJECT_ID=<YOUR_PROJECT>
IMAGE=cloud-run-sample

docker build -t gcr.io/${PROJECT_ID}/${IMAGE} .

gcloud docker -- push gcr.io/${PROJECT_ID}/${IMAGE}

デプロイ

GCPコンソールからCloud Runを選択、「CREATE SERVICE」を選択
先程ビルドしたコンテナイメージを選択し、サービス名、ロケーションを入力。
「未認証の呼び出しを許可」にチェックを入れ、作成。
デプロイが終わると、URLが割り当てられるので、ブラウザでアクセスし、
アプリケーションが動いていることが確認できる。

まとめ

コンテナさえあれば簡単にデプロイできる。
初めてアクセスするときは5~10秒くらいかかる。コンテナ起動の時間なのか?
Cloud Functionsとどう使い分けるべきか検証したい。

2
4
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
2
4