LoginSignup
5
2

More than 5 years have passed since last update.

Circle CIを用いてGoアプリをAWS Elastic Beanstalkへ自動Deployする

Posted at

はじめに

本記事では、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ファイルを作成

config.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!

実行結果
ci-deploypng.png

その他参考にしたサイト

https://blog.guildworks.jp/2015/12/15/circleci-beanstalk/
https://qiita.com/hardreggaecafe/items/995ad9a278e80c903e42

5
2
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
2