본문 바로가기

DevOps/CircleCI

CircleCI + Git + NodeJS + AWS Elastic Beanstalk로 배포하기(3) - CircleCI와 EB 연동 :: DANIDANI

nodejs에서 작성한 express 애플리케이션을 git에 CircleCI에서 자동 빌드가 되고 nodejs에서 작성한 테스트 코드가 실행됩니다.

빌드에 성공하고 테스트 코드도 모두 통과가 되면 AWS elastic beanstalk에 자동 배포를 해주는 ci/cd 를 구축해봅니다.

 

➡️ 1편으로 바로가기

2020/11/05 - [DevOps/CircleCI] - CircleCI + Git + NodeJS + AWS Elastic Beanstalk로 배포하기(1) - CircleCI와 Git 연동

➡️ 2편으로 바로가기

2020/11/05 - [DevOps/CircleCI] - CircleCI + Git + NodeJS + AWS Elastic Beanstalk로 배포하기(2) - CircleCI Test Result

 

 


마지막 단계로 circleCI에서 빌드와 테스트 성공시 AWS elastic beanstalk로 자동 배포하는 작업을 해줍니다.

1. config.yml 파일 수정

  1. python3, pip3, awsebcli 설치

 - run:
      name: Installing deployment dependencies
      command: |
        sudo apt-get -y -qq update            
        sudo apt-get install python3-pip python3-dev build-essential
        sudo pip3 install awsebcli --upgrade

      2. EB에 배포하는 코드

- run:
    name: Deploying
    command: |
      git config --global core.autocrlf input
      eb deploy (EB 환경 이름)

 

 

 

완성된 config.yml

jobs:
  test:
    executor:
      name: node/default
      tag: '13.14'
    steps:
      - checkout
      - node/install-packages
      - run:
          name: Run Test Code
          command: npm run test
      - run:
          name: Installing deployment dependencies
          command: |
            sudo apt-get -y -qq update            
            sudo apt-get install python3-pip python3-dev build-essential
            sudo pip3 install awsebcli --upgrade
      - run:
          name: Deploying
          command: |
            git config --global core.autocrlf input
            eb deploy Mocha-practice-dev
      - store_test_results:
          path: ~/project/artifacts/test 
orbs:
  node: circleci/node@3.0.0
version: 2.1
workflows:
  test_my_app:
    jobs:
      - test

 

 

2. nodeJS 파일에 Procfile추가

프로젝트 루트에 Procfile를 만들어주고 다음 코드를 넣어줍니다.

web: npm start

 

3. AWS IAM 설정

AWS IAM - 사용자 - 사용자 추가

권한설정 - 기존 정책 직접 연결

AmazonS3FullAccessAWSElasticBeanstalkFullAccess를 찾아 선택합니다.

다음을 누른 후 생성된 csv 파일을 다운받아 줍니다.

 

 

4. AWS credential 설정

CircleCI Dashboard에서 프로젝트를 선택하고, 오른쪽 상단의 Project Settings 클릭합니다.

Envirionment Variables에서 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 추가를 줍니다.

value로는 방금 다운 받은 csv 파일에 있는 정보를 입력합니다.

 

5. push 후 EB 배포 확인


 

성공적! 이로써 nodejs에서 소스를 수정하고 git에 push를 하면 CircleCI에서 자동 빌드, 테스트 한 후 결과를 시각화 하여 알려주고, 성공 시 AWS Elastic Beanstalk로 자동 배포를 해주는 작업을 완료하였습니다. :)

 

 

728x90