GitLab CiからAWS Elastic Beanstalk へ更新をかけてみた。
ソース直下に
.elasticbeanstalk
フォルダを追加し、config.ymlを作成
内容は公式ドキュメント参照
続いて、GitLabCIからAWSにアクセスできるように、ソース直下に
.eb-config.sh
ファイルを追加
内容は
--
#!/usr/bin/env bash
set -x
set -e
{
AWS_CONFIG_FILE=~/.aws/config
mkdir ~/.aws
touch $AWS_CONFIG_FILE
chmod 600 $AWS_CONFIG_FILE
echo "[profile bw_package]" >> $AWS_CONFIG_FILE
echo "aws_access_key_id=${AWS_ACCESS_KEY_ID}" >> $AWS_CONFIG_FILE
echo "aws_secret_access_key=${AWS_SECRET_ACCESS_KEY}" >> $AWS_CONFIG_FILE
} &> /dev/null
--
こんな感じで、GitLab CIの環境変数にIAMのアクセスキーとシークレットアクセスキーを設定しておく。
後は.gitlab-ci.ymlの設定
今回は下記のような感じにしてみている。
--
stages:
- test
- deploy
test:
image: node:latest
stage: test
script:
- npm install
- npm run build
deploy_aws:
stage: deploy
image: python:3.6-stretch
before_script:
- pip install awsebcli --upgrade --user
- git checkout master
- chmod +x .eb-config.sh
- ./.eb-config.sh
- export PATH=~/.local/bin:$PATH
- eb --version
script:
- eb deploy
--
後は便利なところとして、.ebextensions
を同じくソース直下にフォルダ作成して、色々設定してあげるとenv設定とか、ロードバランサー設定とか、様々な設定系が管理できる。
万が一アプリケーション削除などを行ってしまっても、時間経過以外は問題がなくなる。
次はLambdaへの試してみた感じを書きます!
※様々な記事を参考にさせていただき、ここにたどり着きました。