Briswell Tech Blog

ブリスウェルのテックブログです

GitLab CI Doker imageからAWS Elastic Beanstalkに更新をかける

  • GitLab CI Doker imageからAWS Elastic Beanstalkに更新をかける

だいぶ放置しました。

最近はGitLab CIから Circle CI に乗り換えたりしているのですが、載せます!

と言ったので、載せます!

 

  • 事前準備編

eb init

コマンドで作成される

.elasticbeanstalk/config.yml

があること

※開発と本番でglobal application_name が異なるため、僕は

.elasticbeanstalk/development/config-dev.yml

.elasticbeanstalk/production/config-prod.yml

 に分けて、後ほどCIで mv コマンドで入れてます。

 

.ebextensions/ の中にやりたい内容があること

僕がやってるのは

https の設定

nginx の設定

env の設定

くらいです。

https の設定で

SSLCertificateArns を間違えて開発と同じでデプロイしておかしくなったこともありました。

 

  • GitLab CI の中身

stages とか、test コマンドなどは省きます。

単純に ElasticBeanstalk に上がるとこらへんのみの Script を記載してます。

- mv .elasticbeanstalk/development/config-dev.yml .elasticbeanstalk/config.yml

これで開発環境のを持ってくる

- mv .ebextensions/development/env-dev.config .ebextensions/env.config

環境変数もついでに持ってくる

- mv .ebextensions/development/load-balancer-dev.config .ebextensions/load-balancer.config

SSLCertificateArnsが違うのでこれも持ってくる

 

- pip install awsebcli --upgrade --user

EB install

- git checkout develop

Git から持ってくる

- chmod +x .eb-config-dev.sh

- ./.eb-config-dev.sh

↑この中にAWS情報を記載しておく

- export PATH=~/.local/bin:$PATH

PATH通す

- eb --version

一応確認しておく

 

- eb use AdminConsoleDevelopment-env

deployしたい環境を記載しておく

- eb status

一応確認しておく

- eb deploy

でデプロイ

 

以上です。

 

これをdevelopブランチとmaster ブランチで分けて記載して環境分ければうまくいくのかなと...

 

個人的に悩んでいるところは、

eb use AdminConsoleDevelopment-env ← ここにdeployをし、稼働開始

その後、新しいソースを乗っけたサーバ

AdminConsoleDevelopment-env-1 ←を作成し、URLスワップを行うと

↑こいつが最新になる

とすると、次回deployする時、またCIの中身を

AdminConsoleDevelopment-env

など、違うアプリーケーション名にしないといけない状態...

これを解決したい...

 

何か誤り等ございましたらご指摘いただけますと幸いです...