Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
全⽇本ビルドインサーバ 本番環境利⽤禁⽌協会〜〜 (Flaskフレームワークの場合)
Search
Tatsunobu.
November 16, 2024
32
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
全⽇本ビルドインサーバ 本番環境利⽤禁⽌協会〜〜 (Flaskフレームワークの場合)
Tatsunobu.
November 16, 2024
More Decks by Tatsunobu.
See All by Tatsunobu.
ヘキサゴナルアーキテクチャをFastAPIで考える
5656systems
0
22
ESP-EYEによるAI非依存の 入退場人数カウント手法
5656systems
0
32
DXの道も一歩から ~業務作業短縮の一例~
5656systems
0
110
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
Designing for humans not robots
tammielis
254
26k
WCS-LA-2024
lcolladotor
0
890
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Transcript
全 日 本 ビ ル ド イ ン サ ー
バ 本 番 環 境 利 用 禁 止 協 会 ~ ~ ~ ( F l a s k フ レ ー ム ワ ー ク の 場 合 )
た つ の ぶ T a t s u n
o b u about 〇1996年生まれ 〇屋号「ゴロゴロシステムズ」代表 〇ソフトウェアエンジにゃー 😸 〇社会人学生(心理学) プ ロ フ ィ ー ル
目 次 ビ ル ド イ ン サ ー バ
と は ? 01 ビ ル ド イ ン サ ー バ の メ リ ッ ト ・ デ メ リ ッ ト 02 W S G I サ ー バ ・ プ ロ キ シ サ ー バ の ス ス メ 03 本 番 環 境 へ の f l a s k 構 築 例 04 ま と め 05 全日本ビルドインサーバ 本番環境利用禁止協会
01 ビ ル ド イ ン サ ー バ と
は ? ①FlaskなどWEBアプリケーションの開発中 に使う簡易的なウェブサーバ。 ②通常フレームワークをインストールした ときに、開発者がすぐにアプリケーション を実行できるように内蔵されている。 ③flaskだとflask run コマンドで簡単にサ ーバを立ち上げることが可能。 ④flaskだとデバッグモードが有効になって いるため、開発中のエラーの詳細が コンソールに表示される!
02 ビ ル ド イ ン サ ー バ の
メ リ ッ ト ・ デ メ リ ッ ト 立ち上げが容易 デバッグメッセージ コマンド一発 メリット パフォーマンスが低い ×大量リクエストの効率処理 スケーラビリティの欠如 ×負荷分散対応 長期実行での低信頼性 開発向きのため長時間利用時に メモリリーク・異常終了の可能性↑ ロードバランシング不可 デメリット
〇Web Server Gateway Interface 〇ウェブアプリケーション(FlaskやDjangoなど)とウェブサーバ(Nginx/Apache) との間でリクエストをやり取りするためのインターフェース EX)Gunicorn・uWSGI・Waitress etc... W S G
I サ ー バ プロキシサーバは、クライアントとサーバの間に立ち、リクエストを中継するサーバ リバースプロキシサーバは、クライアントから受け取ったリクエストをバックエンド のサーバ(WSGIサーバなど)に転送するサーバ EX) Nginx・Apache etc... プ ロ キ シ サ ー バ 04 W S G I サ ー バ ・ プ ロ キ シ サ ー バ の ス ス メ
03 # プロジェクトディレクトリを作成 mkdir flask_project cd flask_project # 仮想環境を作成 python3
-m venv venv # 仮想環境を有効化 source venv/bin/activate # macOS/Linux # Flaskをインストール pip install Flask # Flaskアプリケーションの作成 app.py # Gunicorn(WSGIサーバ)インストール pip install gunicorn # Nginxのインストール ## Ubuntu/Debianの場合 sudo apt update sudo apt install nginx ## CentOSの場合 sudo yum install nginx ## macOSの場合(Homebrewを使用) brew install nginx # nginxリバースプロキシ設定ファイルを編集 sudo vi /etc/nginx/sites-available/flask_project # 設定ファイルを有効化(シンボリックリンク作成) sudo ln -s /etc/nginx/sites-available/flask_project /etc/nginx/sites-enabled/ # 設定ファイルにエラーがないかテスト sudo nginx -t # Nginxを再起動 sudo systemctl restart nginx # Gunicornを起動(8000番ポートで実行) gunicorn -w 4 -b 127.0.0.1:8000 app:app #ブラウザで確認 http://<ローカルIP> ※Hello, World!と表示されればOK! ※Gunicornをプロセス管理ツール(例えばsystemd)でサービスとして登録し、 再起動しても自動的に起動するように設定するとなおよし 👍 本 番 環 境 へ の f l a s k 構 築 例
ま と め 05 テストはビルドイン、 本番はWSGIとプロキシなどを つかうべし!
お ま け 同期(WSGI)と非同期(ASGI) WSGI 主にHTTPリクエスト に対応。リクエストと レスポンスが同期的に やり取り ASGI
HTTPだけでなく WebSocketや他の プロトコルもサポート。 リアルタイム通信などの 非同期処理が可能 EX) Gunicorn EX) Uvicorn
2024年流行した 猫ミームで締めたいと思います
ありがとうございました!! ちぴちぴちゃぱちゃぱ~~ ✋