IT

【Flask】render.comが最高にデプロイしやすかった話

趣味で個人開発を始めたいなと思ってデプロイしやすいサービスを探していました。

renderがいい感じだったので記事にします。

やりたいこと

  • Docekrコンテナで作成したFlask製のアプリケーションを「無料」でデプロイしたい
  • ローカルで開発しているディレクトリと構成を変えたくない。(Dockerfileだけで構成したい)
  • 作成したアプリケーションはGitHubに配置して、更新された度に自動デプロイされたい
  • 取得しているドメインを利用したい
  • 無償利用している時は、クレジットカード登録はしたくない

サービス選定の話

少し前のブログや技術書ではHerokuが第一候補になっていましたが、2024/05/01現在は無料プランがなくなっています。

最近のQitaやZENNを見ているとCloudflareやVerselも選択肢に上がりましたが、初学者の私にはうまくいきませんでした。

調べてみると、上記のHerokuの変化で空いたスペースをrender.com等の新進気鋭のサービスが狙っているとのことで、選定しました。

無料版だと以下スペックのインスタンスが利用できます。

  • CPU:0.1
  • RAM:512MB

動的なビジネスサービスでは、厳しいスペックですが趣味レベルで問題ないですね。

デプロイについて

前提

  • GitHubのリポジトリに作成したDockerfile&アプリが配置されている。
  • ディレクトリ構造
.
├── app
│   ├── app.py
│   ├── static
│   │   ├── images
│   │   │   └── favicon.ico
│   │   ├── main.js
│   │   └── style.css
│   └── templates
│       └── index.html
├── dockerfile
└── requirements.txt
  • dockerfile
FROM python:3.11

WORKDIR /app

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

COPY ./app .

CMD ["gunicorn", "app:app", "--bind", "0.0.0.0:8000"]

手順

1:render.comにアカウントを作成する際に、GitHubアカウントを利用してアカウント作成

2:ダッシュボードから「Web Service」を選択

3:「Build and deploy from a Git repository」から「Connect a repository」にて、対象リポジトリを選択

4:デプロイ設定を以下のように設定し、「Create Web Service」を押下

項目
Name任意
RegionSingapole(日本から一番近いため)
Branchmaster
Root Directory-
RuntimeDocker
Instance TypeFree
Environment Variables-
シンプルなアプリなので、環境変数等は利用しません。

5:数分待つと、問題がなければデプロイが完了します。

safariだとデプロイ等の操作をすると、ブラウザがホワイトアウトしますが、更新すれば問題ありません。

6:デプロイが正常に完了すると以下のような画面になります。

カスタムドメインを指定していない場合は、システムから付与されたURLが表示されます。

カスタムドメイン付与

1:Settigs>Custom Domainsにて、利用したいドメインを入力

私はenishiblog.orgというドメインをConoHaで取得しているので、今回はmosaic.enishiblog.orgを利用する想定です。

2:DNSサービスで上記ドメインをCNAMEで登録。
 登録が進行すると以下のように状態が遷移します。

  • Renderのダッシュボード
  • ConoHaのダッシュボード

以上。

上記手順で以下カスタムドメインが利用できます。

上記URLにアクセスするとアップロードした画像にモザイクをかけるだけシステムにアクセスできます。

最後に

renderはすごいですね。

Versel等の複雑さに挫折した人、これから個人開発を始めたい人には最適だと思います。

以上、どなたかのお役に立てば幸いです。

  • この記事を書いた人

緑川縁

ニートからシステムエンジニアになった人
クラウド案件をメインにやっています。
保持資格:CCNA,AWS SAA&SAP,秘書検定2級
趣味でボカロ曲作り始めました。

-IT
-