メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

Python 開発環境をセットアップする

AWS Elastic Beanstalk では、Python アプリケーションをデプロイするための一貫性のあるインターフェイスを提供しているため、使用するアプリケーションフレームワークに関係なく、またアプリケーションフレームワークを使用しているかどうかに関係なく、共通の手順を使用できます。

一般的な前提条件

Elastic Beanstalk を使用してデプロイするすべての Python アプリケーションについて、以下の前提条件は共通しています。

  1. Python 2.7 または 3.4

  2. ご使用の Python のバージョンに応じた pip ユーティリティ。これは、アプリケーション環境のセットアップ方法を Elastic Beanstalk が判断できるように、プロジェクトの依存関係をインストールし一覧表示するために使用されます。

  3. virtualenv パッケージ。これは、アプリケーションの開発とテストに使用する環境を作成するために使用されます。これにより、アプリケーションに必要ない余分なパッケージをインストールすることなく、その環境を Elastic Beanstalk がレプリケートできます。

  4. awsebcli パッケージ。Elastic Beanstalk によるデプロイに必要なファイルを使用して、アプリケーションを初期化するのに使用されます。

  5. 正常に機能する ssh インストール。これは、デプロイの調査またはデバッグが必要なときに、実行中のインスタンスに接続するために使用されます。

Python、pip、EB CLI のインストール手順については、「Elastic Beanstalk コマンドラインインターフェイス(EB CLI)のインストール」を参照してください。

仮想 Python 環境の設定

前提条件をインストールしたら、virtualenv を使用して仮想環境をセットアップし、アプリケーションの依存関係をインストールします。仮想環境を使用することで、アプリケーションで必要なパッケージを正確に識別し、アプリケーションを実行する EC2 インスタンスにそれらの必要なパッケージをインストールすることができます。

仮想環境をセットアップするには

  1. コマンドラインウィンドウを開き、次のように入力します。

    virtualenv -p python2.7 /tmp/eb_python_app

    eb_python_app を、アプリケーションに対応するわかりやすい名前に置き換えます(アプリケーション名やディレクトリ名を使用することをお勧めします)。virtualenv コマンドによって仮想環境が作成され、アクションの結果が出力されます。

    Running virtualenv with interpreter /usr/bin/python2.7
    New python executable in /tmp/eb_python_app/bin/python2.7
    Also creating executable in /tmp/eb_python_app/bin/python
    Installing setuptools, pip...done.
  2. 仮想環境の準備が整ったら、環境の bin ディレクトリにある activate スクリプトを実行して起動します。たとえば、前のステップで作成した eb_python_app 環境を開始するには、次のように入力します。

    . /tmp/eb_python_app/bin/activate

    コマンドプロンプトの冒頭には毎回、仮想環境の名前(例: (eb_python_app))が出力され、仮想 Python 環境を使用していることがわかるようになっています。

注記

仮想環境の作成後は、activate スクリプトを再び実行することで、いつでも再起動できます。

Elastic Beanstalk 用に Python プロジェクトを設定する

Elastic Beanstalk CLI を使用して、Elastic Beanstalk を使用した Python アプリケーションのデプロイを準備できます。

Elastic Beanstalk でのデプロイ用に Python アプリケーションを設定するには

  1. 仮想環境で、プロジェクトのディレクトリツリーの最上位(python_eb_app)に戻り、次のように入力します。

    pip freeze >requirements.txt

    このコマンドは、仮想環境にインストールされているパッケージの名前とバージョンを requirements.txt にコピーします。たとえば、PyYAML パッケージ、バージョン 3.11 が仮想環境にインストールされている場合、このファイルには次の行が含まれます。

    PyYAML==3.11

    これにより、Elastic Beanstalk は、アプリケーションの開発とテストに使用されたのと同じパッケージとバージョンを使用して、アプリケーションの Python 環境をレプリケートすることができます。

  2. eb init コマンドで EB CLI リポジトリを設定します。画面の指示に従ってリージョン、プラットフォーム、その他のオプションを選択します。詳細な手順については、「EB CLI による Elastic Beanstalk 環境の管理」を参照してください。

デフォルトでは、Elastic Beanstalk は、アプリケーションを開始するために application.py というファイルを探します。作成した Python プロジェクトにこのファイルが存在しない場合は、アプリケーション環境の調整が必要になります。また、アプリケーションのモジュールをロードできるように、環境変数を設定する必要があります。詳細については、「AWS Elastic Beanstalk Python プラットフォームを使用する」を参照してください。