はじめに
本記事では、Elastic Beanstalk DockerベースのGoプラットフォームを利用しているアプリを、Circle CIを用いてデプロイする方法を記載します。
初期環境の構築
AWSのチュートリアルを参考に初期構築を行い、ローカルからElastic Beanstalk (以下、EB)へデプロイする。
これを行うことで、アプリ配置ディレクトリ配下に elasticbeanstalk/config.ymlが作成される。
ローカルからデプロイを実施する際はこのままconfig.ymlを活用できるが、circle CIからデプロイするため、yamlファイルの
profile: eb-cli
を削除
Circle CIの設定
管理コンソール上での設定
対象プロジェクトのBUILD SETTING -> Enviroment Variablesにて以下の項目を設定
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
circleci/config.yamlの追加
「アプリケーションソースバンドルを作成する」を参考にyamlファイルを作成
version: 2
jobs:
build:
machine: true
working_directory: ~/project/{{ORG_NAME}}/{{REPO_NAME}}
steps:
- checkout
- run:
name: Archive
command: |
pip install awsebcli --upgrade
mv ./eb-go-sample/Dockerfile ./eb-go-sample/Dockerfile.local
zip ./eb-go-sample/go-sample.zip ./eb-go-sample/*
- deploy:
name: Deploy to EB
command: cd ~/project/{{ORG_NAME}}/{{REPO_NAME}}/eb-go-sample/ && eb deploy
最終的なディレクトリ構成は以下の通りとなる
C:.
├─.circleci
│ config.yml
│
└─eb-go-sample
│ .gitignore
│ Dockerfile
│ server.go
│
└─.elasticbeanstalk
config.yml
上記内容でGitHubへPush!
その他参考にしたサイト
https://blog.guildworks.jp/2015/12/15/circleci-beanstalk/
https://qiita.com/hardreggaecafe/items/995ad9a278e80c903e42