Fork me on GitHub

オペレーティングシステム

サーバや仮想サーバ上で動作するオペレーティングシステムは、コンピュータのリソースへのアクセスを管理しています。また、オペレーティングシステムはPythonのWebアプリケーションを動作させるために必要なプログラムをインストールする方法も提供します。

なぜオペレーティングシステムが必要?

オペレーティングシステムは様々な演算処理を簡単に行えるようにしてくれます。例えば、ファイルへの書き込みやネットワーク越しの通信、一度に複数のプログラムを実行といったことです。さもなければ、あなた自身がCPU、メモリ、ネットワーク、グラフィックカードなどの低レベルな実装を行わなければなりません。

LinuxやMac OS X、Windowsのような既存のオペレーティングシステムを使う場合を除けば、Webアプリケーションの一部として、新しいオペレーティングシステムを書かなくてはなりません。これではPythonのWebアプリケーションの処理を書くことは不可能です。アセンブラのコードのメモリリークを探すのに忙しくそんな暇はありません。

幸運にも、Pythonの世界にはオープンソースのコミュニティによって、Webアプリケーションを動かすために使用することができるLinuxが提供されています。

お勧めのオペレーティングシステム

本番環境でPythonのWebアプリケーションを動かすためのオペレーティングシステムとしておすすめするのはLinuxです。Linuxにはいくつかのディストリビューションがあり、本番サーバを稼働するのに一般的に使われています。Ubuntu Long Term Support(LTS)リリースや、Red Hat Enterprise Linux、CentOSが良い選択肢でしょう。

Mac OS Xは開発環境に向いています。Linuxではなく、WindowsやMac OS Xを使わなければならない明確な理由が無い限り、本番環境にはLinuxを利用すことをお勧めします。

Ubuntu

UbuntuはCanonical Ltd社によって開発されているLinuxディストリビューションです。Ubuntuはaptitude package managerを含むDebianディストリビューションのパッケージをベースに使用しています。

Ubuntu LTSは開発向けにお勧めのバージョンです。LTS版はCanonicalによるポストリリース更新が5年間続きます。2年毎にCanonicalは新しいLTSをリリースし、簡単にアップグレードが行え、また必要であれば更新をスキップすることも柔軟にできます。2014年11月時点で14.04 Trusty Tahrが最新のUbuntu LTSです。

Ubuntu Pythonパッケージ

LinuxsサーバでPythonアプリケーションを運用するには複数のAptitudeパッケージがあります。

  • python-devはPythonのためのヘッダファイルとスタティックライブラリです。
  • python-virtualenvは、ライブラリの依存関係を独立して管理するためのPythonのvirtualenvsを作ったり管理するためのパッケージです。

Red HatとCentOS

Red Hat Enterprise Linux (RHEL)とCommunity ENTerprise Operating System (CentOS)は同じディストリビューションです。大きな違いはCentOSはオープンソースでRed Hatの派生物を無償で利用します。

Red HatとCentOSはDebianベースのLinuxディストリビューションとは異なるパッケージマネージャとコマンドラインインタフェースを利用します。RPMパッケージマネージャとYellowdog Updater, Modified(YUM)です。RPMは.rpmファイルを使ってパッケージングの管理とライブラリやアプリケーションのインストールを行います。YUMはRPMシステムをコマンドラインで利用するためのツールです。

オペレーティングシステムのリソース

* What is a Linux distribution and how do I choose the right one?

オペレーティングシステムを学ぶためのチェックリスト

UbuntuのようなDebianベースか、CentOSのようなFedoraベースのLinuxディストリビューションのいずれかを選択します。

基本的なセキュリティを固めましょう。fail2banや、それに類似する基本セキュリティパッケージをインストールします。sudo権限を持つ新しいユーザを作成し、ルートでのログインは禁止します。パスワードでのログインを禁止し、公開鍵・非公開鍵の鍵交換方式によるログインを設定します。システムのセキュリティに関しての詳細は以下も読んでください。

Pythonアプリケーションを動作させるために必要な環境を用意します。これは選択したディストリビューションによって必要なパッケージは異なります。

Webサーバの章を読み、インストールを行ったら開発プロセスの次のステップに進みます。

続いて何を学びますか?

LinuxをOSとして採用したら、どのWebサーバを使えば良いですか?

新しいOSにPythonのライブラリをインストールする方法は?

サーバはやめて、PaaSについて知りたい。


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.