LoginSignup
10
10

Renderで簡単なwebアプリをデプロイしてみた

Posted at

はじめに

Pythonでウェブアプリを作成しており、デプロイのやり方を調べていたのですが最近Herokuが有料化になったと知りました。

そこで、調べていく中で無料でデプロイできるRenderというものを知ったので備忘録を兼ねてやり方をメモしていこうと思います。

1. 今回デプロイするもの

PythonのフレームワークであるFlaskを使った簡単なWebアプリを作成してそれをデプロイします。

URLにアクセスすると、ブラウザ上にHello World!というテキストが表示されるというものです。

app.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

使用したライブラリの依存関係をrequirements.txtに明記しておきます。

requirements.txt
Flask
Gunicorn

GunicornはFlaskやDjangoなどのPythonのフレームワークで開発されたアプリケーションを実行する際に使用します。また、Pythonのフレームワークの一つであるFastAPIではuvicornがよく使われます。

ローカル環境で動作確認をしておきます。

$ FLASK_APP=app.py flask run

スクリーンショット 2023-10-03 16.12.19(2).png

Hello World!と表示されているのでwebアプリはきちんと動くことがわかりました。

最終的にデプロイしたものがこのように表示させることができればデプロイ成功となります。

2. GitHubアカウントの作成

Renderを使用する際にGitHubアカウントが必要になるので事前にアカウント登録をしておきます。

3. GitHubにアプリのレポジトリを作成

Renderで作成したアプリケーションをデプロイするにはGitリポジトリが必要になります。なので、先ほど作成したファイルのリポジトリをここで作成します。

4. Renderアカウントの作成

RenderのHPにアクセスし、自分のアカウントを作成します。

5. デプロイに関する設定

まずDashboard画面の右上にある「New +」と記載されているボタンをクリックし、「New Web Service」を選択します。

次に、下のような画面が出るので「Build and deploy from a Git repository」を選択します。

スクリーンショット 2023-10-03 16.18.54.png

すると、GitHub上にある自分のレポジトリが表示されるので、今回デプロイしたいレポジトリを選択します。

最後に細かな設定があるのでそれを設定していきます。

Name:デプロイするサービス名を決定します。URLの一部に名前が入ります。

Region:一番日本から近いSingaporeを選択しました。

Branch:デプロイしたいファイルがあるGitのBranchを選択します。

Runtime:使用している言語を選択します。

Build Command:

$ pip install -r requirements.txt

とします。

Start Command:
これはwebアプリを起動するためのコマンドになります。
Flaskでwebアプリを作成していれば

$ gunicorn app:app

と設定します。
FastAPIで作成していればここが

$ uvicorn main:app --host 0.0.0.0 --port $PORT

となります。詳細についてはrenderのドキュメントに記載されています。

最後に「Create Web Service」をクリックしてデプロイされるのを待ちます。

無事にデプロイ完了したらURLが表示されるので、そこにアクセスしてローカルで動かした時と同じ動作をしていればデプロイ完成です。

まとめ

簡単なwebアプリですが、実装からデプロイまで無事に行うことができました。

簡単なものでしたが自分が作ったwebアプリがURLとなって公開されるのはとても嬉しいものですね。感動しました。

デプロイは初めてだったのですが、renderの操作も簡単ですぐにデプロイすることができました。

今回はPythonのFlaskによるアプリのデプロイ方法を整理しましたが、他のフレームワークで作ったものをデプロイする際にStartCommandはどのように設定したらいいのか詳しくは理解できていないのでこれから使いながら学んでいきたいと思います。

10
10
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
10
10