030 AI屋さんの LLMにトークン全文入力 Flask+Gunicorn+Cloud RUN+Gemini 実践編
無事にデプロイはできましたので、
今度は、実際にdockerイメージを作成してみましょう。
設定ファイルなので、一度コピーして動けば完成です。
何度でも同じように動きます。
が、急に gunicorn なるものが出てきます。
本番環境向けに、Flaskと連携するwebサーバーです。
Gunicorn と Flask の連携について
Gunicorn (Green Unicorn) は、Python で書かれた WSGI (Web Server Gateway Interface) HTTP サーバーです。Flask のような Web アプリケーションフレームワークで作成したアプリケーションを、本番環境で動かすための重要な役割を担います。
Flask : アプリサーバー
Gunicorn : ウェブサーバー
1、Gunicorn の役割
Flask アプリケーションは、開発時には Flask の組み込み開発サーバーで簡単に実行できますが、これはあくまで開発用であり、本番環境での利用には適していません。Gunicorn は、以下のような役割を担い、Flask アプリケーションを本番環境で安全かつ効率的に動作させるために使用されます。
同時リクエスト処理: Gunicorn は、複数のワーカープロセスまたはスレッドを起動し、同時並行で複数のリクエストを処理できます。これにより、単一リクエストの処理中に他のリクエストが待たされることを防ぎ、高負荷環境でも安定した動作を実現します。
堅牢性と信頼性: Gunicorn は、エラーが発生した場合にワーカープロセスを自動的に再起動するなど、堅牢で信頼性の高い運用をサポートします。
設定の柔軟性: Gunicorn は、ポート番号、ワーカー数、ログ設定など、様々な設定を柔軟に変更できます。これにより、環境に合わせて最適なパフォーマンスを発揮できます。
WSGI 準拠: Gunicorn は WSGI に準拠しているため、Flask だけでなく、他の WSGI 対応の Web アプリケーションフレームワークでも利用できます。
2、なぜ Gunicorn が必要なのか?
Flaskは、開発中は手軽に動かせるWebサーバーを内蔵しています。しかし、これはあくまで開発用で、本格的なWebサイトを公開するには不十分です。なぜなら、
同時接続に弱い: 多くの人が同時にアクセスすると、処理が追いつかずにWebサイトが表示されなくなってしまうことがあります。
セキュリティが低い: 開発用のサーバーはセキュリティ対策が十分ではありません。
安定性に欠ける: 開発用のサーバーは、長時間の運用には向いていません。
Gunicornはこれらの問題を解決し、安定したWebサイト運営を可能にします。
3、Gunicorn の役割
Gunicornは、具体的に以下のような役割を担います。
リクエストの受付: Webブラウザからのアクセス要求(リクエスト)を受け付けます。
処理の分配: 受け付けたリクエストを、Flaskアプリケーションに渡します。
応答の返信: Flaskアプリケーションから処理結果を受け取り、Webブラウザに返信します。
同時接続の処理: 複数のリクエストを同時に処理できます。
プロセスの管理: アプリケーションが動くためのプロセスを管理し、安定した運用をサポートします。
ソースコードは こちら、
webapiの中身は、案件ごとに修正が必要です。
雛形をベースに肉を盛っていきます。
app.py の中で、Geminiのプロンプトに全文入力できれば完成です。
目次
今回も無事に dockerイメージを作成できました。
030 AI屋さんの LLMにトークン全文入力 Flask+Gunicorn+Cloud RUN+Gemini 実践編
完成です。おめでとうございます。
ー続くー