[Django] Elastic BeanstalkにPillowをインストールした際のメモ

2016年1月11日

結構はまったのでメモ


Elastic Beanstalkにデプロイする前段階の知識

Elastic Beanstalkは.ebexteionsディレクトリ以下にインストールパッケージの設定などを配置する
forAWS/
    .elasticbeanstalk/  # "eb init"で自動生成される
    .ebextentions/      # 環境に必要な設定を配置する
    requirements.txt    # 使用するモジュール一覧
    django-app/         # Djangoのプロジェクト

デプロイ実践

デプロイの仕方など細かい操作は本記事では端折る
参考(amazonの公式ページが非常に丁寧)

Djangoアプリで画像関連を扱うにはPillowモジュールを多用すると思う。
通常はrequirements.txtにPillowを指定しておけばうまくいきそうに思える。

requirements.txt

Pillow==3.0.0
しかしこれだけだとダメで、deploy時にエラーになってしまう。
そこで以下の設定が必要

.ebextentions/00_pkg.config

package:
    yum:
        libjpeg-turbo-devel: []
以上で"eb deploy"で無事デプロイが通った

おまけ

“eb deploy"で失敗時など、ログを見たくてすぐに"eb logs"とやると失敗することが多い
 $ eb logs
ERROR: Environment named YourDev is in an invalid state for this operation. Must be Ready.
そんな時は慌てずに、しばらくしてからアクセスすること