CircleCI経由でElasticBeanstalkにデプロイする方法

  • 29
    Like
  • 0
    Comment
More than 1 year has passed since last update.

circle.ymlを定義する

まずはcircle.ymlにデプロイ方法を記述していきます。
なお、ここではstagingブランチをステージング環境、masterブランチをプロダクション環境としていますので、プロジェクトによって適宜変更してください。

circle.yml

machine:
  python:
    version: 2.7.6

dependencies:
  pre:
    - pip install awsebcli

deployment:
  staging:
    branch: staging
    commands:
      - eb deploy env-name-of-staging
  production:
    branch: master
    commands:
      - eb deploy env-name-of-production

まず、ElasticBeanstalkのデプロイに必要なebコマンドをインストールします。
そして、デプロイ時はebコマンドから環境を指定してやれば、その環境にデプロイされます。
また、後述の設定ファイルでデプロイ先の環境を指定することもできます。

Pythonのバージョンを指定しているのは、それによってvirtualenv環境が設定されてキャッシュが効くようになるからです。

eb用の設定ファイルを定義する

続いて、ebコマンド用の設定ファイルを用意します。
ファイル名はconfig.global.ymlconfig.ymlのどちらかにする必要があります。

.elasticbeanstalk/config.global.yml

global:
  application_name: app-name
  default_region: someweher

最低限必要なのはapplication_nameだけですが、ここでdefault_regionを定義しない場合はeb --region=somewhereの形式で都度指定する必要があります。
また、branch_default以下にブランチごとの設定を書くことも可能です。

.gitignoreに追記する

最後に、.gitignoreに追記していきます。

まず、ebコマンドは.elasticbeanstalk以下に色々とファイルを生成するので、これをバージョン管理しないようにします。

しかし、先ほど設定した設定ファイルはデプロイ時に必要なため、例外にします。

.gitignore

.elasticbeanstalk/*
!.elasticbeanstalk/config.global.yml

これで準備は完了です。
gitのブランチに変更があった際に、CircleCIでビルドが走り、デプロイが反映されれば成功です。