Fork me on GitHub

デプロイメント

デプロイはWebアプリケーションをパッケージングし、アプリケーションを動かすための本番環境に配置することです。

なぜデプロイが必要?

Webアプリケーションを作ったのであれば、あなたのデスクトップやラップトップで動かしているだけではいけません。本番環境に置くことで、あなたのアプリケーションは正式なバージョンを持ち、データと交信することになります。

デプロイに関するテーマのマップ

PythonのWebアプリケーション開発は、それぞれ設定が必要な部品で構成されています。以下の図はデプロイの各テーマの関係を図式化したものです。クリックするとPDF版を見ることができます。

Full Stack Python site map.

デプロイホスティングの選択肢

Webアプリケーションをデプロイしホスティングするには4つの選択肢があります。

  1. ベアメタルサーバ

  2. 仮想化サーバ

  3. IaaS(Infrastructure as a Service)

  4. PaaS(Platform as a Service)

1~3の選択肢は似たような特徴を持っています。Webアプリケーションを配置するために一つ以上のLinuxディストリビューションサーバを準備します。システムパッケージ、Webサーバ、WSGIサーバ、データベース、Pythonの実行環境をインストールします。最後にアプリケーションのソースを配置し、サーバに配置します。

また、PythonのWebアプリケーションをサーバに配置する方法として、システム特有のパッケージ管理システムを利用する方法もありますが、応用的な方法のため触れません。

デプロイのリソース

  • Practical continuous deploymentは、アプリケーションの配信とデプロイを比較し、継続的開発のワークフローについて解説しています。
  • Flaskを使っているのであればUbuntuへのデプロイが、デプロイのプロセスに関する良いリソースとなります。

デプロイについて学ぶためのチェックリスト

時間が限られた状況ならばPaaSの利用を検討してください。アクセスの少ないプロジェクトであれば無料、あるいは安く運用できます。伝統的なサーバーと比べ、OSやWebサーバをセットアップする手間を省くことができます。PaaSでホスティングすることで、素早くアプリケーションをWebで公開することができるでしょう。

伝統的なサーバを使うことは、PythonのWebスタックが動作する仕組みを学ぶのに最適な選択肢です。スケールアップしたPaaSを使うよりVPSを使うほうが経済的なケースが多いです。

サーバ、OSWebサーバWSGIサーバの章を読み、各コンポーネントがPythonのWebアプリケーションを動作させるために何の役割を持っているかを理解してください。

どの方法でWebアプリケショーンをデプロイしますか?

ベアメタルサーバ、仮想化サーバ、IaaS(Infrastructure as a Service)毎のオプションを知りたい。

PaaS(Platform as a Service)にPythonアプリケーションをデプロイする方法は?

サーバを持っているので、OSをセットアップする方法を知りたい。


Interested in a complete Full Stack Python book with detailed tutorials and example code? Sign up here and you'll get an alert email if a book is created. No other emails will be sent other than sign up confirmation.