5
5

More than 5 years have passed since last update.

OpsWorks Chef12に対応して色々便利になりました: Djangoのdeployも簡単!

Posted at

はじめに

2015年12月にリリースされたOpsWorksのChef12対応(OpsWorks Chef 12 for Linux)、とても便利になりました。chef.ioのblog記事にて紹介されていたDjangoのdeployを早速試してみました。

Chef Community Cookbooks with AWS OpsWorks Chef 12

便利になった点

まず、何が嬉しいのか、便利になった点をまとめます。
- OpsWorks内部で使用しているCookBookとの、Namespaceの衝突が発生しない
- Chef12以降でないと動作しないCommunity Cookbookが使えるようになった
- Chef searchを用いてAWSのリソース(Stack、Layer、インスタンス、ELB、RDSなど)を取得できるようになった

なお、従来から利用できるChef11 Stackではbuilt-in LayerとしてRails、Node.js、PHP、Java等やMySQL、HAProxy等が提供されていましたが、Chef12 for Linuxでは提供が無くなりました。そのかわりに、SupermarketなどのCommunity Cookbookを使う形で様々なアプリをDeployできるようになったので、Chefの一般的な使い方により近づいたと言えます。

今回は、Namespaceの衝突が発生しなくなった点を体感するべく、blog記事にある Django + dpaste のdeployを試してみます。

Djangoのアプリをdeployしてみる

sample wrapper Cookbook をSupermarketからダウンロードする

git clone git@github.com:chef-cookbooks/opsworks-linux-demo-cookbook-django.git

Recipeの中身を確認

opsworks-linux-demo-cookbook-django.git の中身を確認すると、次のCookbookがCommunity Cookbook として依存(depend)していることが分かります。

  • application_python
  • build-essential
  • poise-python

実際にOpsWorksを用いてdeployする

OpsWorksを用いたdeployはとても簡単にできますが、注意点としては、Community Cookbookを含んだ形のCookbookアーカイブを事前にberkshelfにて作成した上でCookbookのRepositoryにアップロードする必要があります。

  1. berks package コマンドを実行します
  2. ファイル(cookbooks-(timestamp).tar.gz)が生成されるので、S3またはgithubのCookbookのRepositoryにアップロードします
  3. OpsWorksのStackをCustom Cookbookを有効にして作成します
  4. Custom Layerを作成します
  5. recipe(opsworks-linux-demo-cookbook-django)をSetupに追加します
  6. appを作成します。ソースコードに、https://github.com/bartTC/dpaste.git を指定します
  7. インスタンスを追加し、起動します
  8. http://(Public IP of your instance)/ にアクセスし、dpaste が動作していることを確認します

application_pythonを使うことで、とても簡単にDjangoのアプリをインストールすることができました。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5