Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

本記事では、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

Shin-27
インフラエンジニアです。 SREやセキュリティ業務に特に興味があります。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした