CircleCI から Elastic Beanstalk にデプロイする

こんにちは、ギルドワークスの上野です。

ギルドワークスでは、開発したアプリケーションを Elastic Beanstalk を利用してデプロイ、運用しています。

EB CLI を入れることで、コマンドラインからデプロイすることもできますが、
自動化したいってなりますよね。
そこで自動化のやり方を調べたので、ブログにも書いておきます。

ちなみに自分のローカル環境に構築する際は、以下のコマンドで簡単にインストールできます。(python や pip がインストールされている前提)

pip install awsebcli

ですが、僕の環境ではどうもアップデートが上手くできなくて、いろいろいじってたらぶっ壊れて動かなくなったりしましたw
brew で入れたら今のところ安定しています。

brew install awsebcli

1. circle.yml の設定


machine:
  python:
    version: 2.7.6

dependencies:
  pre:
    - pip install awsebcli

deployment:
  staging:
    branch: master
    commands:
      - eb deploy [env環境名]
  production:
    branch: production
    commands:
      - eb deploy [env環境名]

staging、production や branch の指定は任意です。
CircleCI の設定はこれだけです。

参考までに

CircleCI は結構いろんな指定ができるので以下の内容も確認してみてください。
https://circleci.com/docs/configuration

2.config.global.yml の設定

.elasticbeanstalk の下に config.global.yml を作成します。


global:
  application_name: [アプリケーション名]
  default_region: ap-northeast-1

application_name は Beanstalk を作成する際のアプリケーション名です。

3. CircleCI の設定

最後に CircleCI の設定に AWSのアクセスキー等を設定します。

Project Settings の AWS Permissions の中です。

スクリーンショット 2015-12-15 18.57.41

あとは、指定したブランチにマージされるとデプロイされます。
めっちゃ便利ですね。

ギルドワークスではデプロイの徹底的な見直しを通じて、「正しいものを正しくつくる」を実現しようとしています。コーチや開発など、お手伝いできることがあればぜひ、お問い合わせください

 

DevLOVE現場甲子園2014 東日本大会に参加してきました

先週土曜日(2014/08/23)に行われた DevLOVE現場甲子園2014 東日本大会 で発表してきました。

発表内容としましては、機能や仕様を実現する際にインフラも設計対象として考えようということです。
結果は同じでも利用するサービスの違いや使い方を変えることで、コストまで含めて変わってくるのです。
WebサービスならEC2とRDSといった固定概念に囚われずに設計してみると新しい世界が見えてくるかもしれません。

まとめ

ギルドワークスでは、ただ実現可能なシステムではなく、運用コストまで見据えたシステムの開発を行っております。
この記事を読んでギルドワークスに依頼したいといったことがありましたら、お気軽にご相談ください。