CircleCi 2.1 및 TravisCI를 통해 Elastic Beanstalk에 애플리케이션 배포

CircleCi 2.1을 통해 Amazon Elastic Beanstalk에 테스트 및 배포




circleCI를 통해 내 애플리케이션을 Elastic beanstalk에 배포하는 간단한 방법을 찾기 위해 인터넷을 샅샅이 뒤진 후, 저는 이 게시물을 통해 다른 사람들이 동일한 작업을 수행하도록 도울 수 있다고 생각했습니다. 이 방법은 이 작업을 시작하기 위한 시작점인 his method for CircleCI 2.0을 기반으로 하므로 github에서 ryansimms를 확인하십시오.

먼저 다음 단계에 따라 AWS IAM 사용자를 설정합니다(CircleCI의 고유한 사용자 권장).


  • AWS 서비스에서 IAM을 검색합니다.
  • 사용자 선택(또는 배포 사용자를 함께 그룹화하려는 경우 사용자 그룹, 예: TravisCI 및 CircleCI)
  • 사용자 아래에서 '사용자 추가'를 클릭합니다.
  • 사용자 이름을 설정하고 액세스 키만 선택 - 액세스 유형으로 프로그래밍 방식 액세스
  • 다음(권한 설정)을 클릭하고 '기존 정책 직접 연결'을 선택한 다음 AdministratorAccess-AWSElasticBeanstalk 및 AmazonS3FullAccess를 검색하여 선택합니다.
    참고: 이전에는 AWSElasticBeanstalkFullAccess였지만 더 이상 사용되지 않습니다.
    > 사용자의 Access-Key-ID와 Secret-Access-key를 안전한 곳에 복사해 두십시오.
  • 다음(태그), 다음(검토), 마지막으로 '사용자 만들기'를 클릭합니다.

  • Elastic Beanstalk 애플리케이션 설정


  • AWS 서비스에서 Elastic Beanstalk 검색
  • '새 응용 프로그램 만들기'를 선택하고 응용 프로그램 이름을 지정합니다.
  • '새 환경 만들기'를 선택하고 호스트할 git 분기 이름과 관련하여 이름을 지정합니다. BRANCHNAME-my-application스테이징 브랜치와 마스터 브랜치가 있으므로 이 작업을 수행하므로 EB 구성에서 BRANCHNAME를 CircleCi에서 제공하는 $CIRCLE_BRANCH 환경 변수로 대체할 것입니다. 예를 들어 스테이징 브랜치를 배포할 때 Elastic Beanstalk의 staging-my-application 환경에.
  • 환경이 활성화될 때까지 기다립니다. 그런 다음 [environment-name].[application-region].elasticbeanstalk.com에서 샘플 애플리케이션을 볼 수 있습니다.

  • CircleCi에 배포 사용자 환경 변수 추가



    CircleCI에서
  • 프로젝트 설정 > 환경 변수
    다음 키 추가: 및 해당 값AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

  • 애플리케이션 코드에 .elasticbeanstalk/config.yml 구성 추가


  • 애플리케이션 코드의 루트 디렉토리에 이 폴더를 생성합니다
  • .
  • 설정에 따라 스니펫으로 config.yml의 값을 업데이트합니다.

  • branch-defaults:
      master:
        environment: your-app-name-$CIRCLECI_BRANCH
      develop:
        environment:  your-app-name-$CIRCLECI_BRANCH
    global:
      application_name:  your-app-name
      default_platform: 64bit Amazon Linux 2/3.4.16
      default_region: your-app-region (e.g. us-east-1)
      sc: git
    


    참고: application_name가 '새 애플리케이션 생성' 단계를 수행할 때 Elastic Beanstalk에서 애플리케이션을 호출한 것과 정확히 일치하는지 확인하세요.

    또한 참고: 여기에 profile 값을 설정하지 마십시오. 프로필은 설정한 AWS_ACCESS_KEY_ID 및 AWS_SECRET_ACCESS_KEY 환경 변수를 기반으로 설정됩니다.

    .circleci/config.yml 업데이트



    다음과 같이 설정에 따라

    version: 2.1
    jobs:
      # add commands to run your test if you have them otherwise skip this
      test-me:
        docker:
          - image: cimg/node:14.19
        steps:
          - run: my test script
      # deployment starts here
      deploy-me:
          docker:
            - image: cimg/python:3.10
          steps:
            - checkout
            - run: pip3 --version
            - run:
                working_directory: /
                name: installing ebcli
                command: pip3 install awsebcli --upgrade --user
            - run: eb --version
            - run:
                name: deploying with awsebcli
                command: eb deploy  your-app-name-$CIRCLE_BRANCH
    workflows:
      test-then-deploy:
        jobs:
          - test-me
          - deploy-me:
              context: aws-creds
              filters:
                branches:
                  only:
                    - master
                    - staging
              requires:
                - testme
    


    참고your-app-name는 Elastic Beanstalk의 것과 동일해야 합니다.

    이제 우리는 기다립니다


  • 커밋, 푸시 및 CircleCi 실행이 완료될 때까지 기다립니다. CircleCI에서 모든 것이 잘 진행되면 Elastic Beanstalk 대시보드에서 애플리케이션이 업데이트되는 것을 볼 수 있습니다.

  • Extras, -TravisCI 사용자 전용



    deploy 단계를 .travis.yml 파일에 추가하면 이상적으로 작동합니다.

    deploy:
       provider: elasticbeanstalk
       region: "us-east-1"
       app: "your-app-name"
       env: " your-app-environment-name"
       bucket: elasticbeanstalk-us-east-1-398485943999
       bucket_path: "your-app-name"
       on:
         branch: master
       access_key_id: $AWS_ACCESS_ID
       secret_access_key: $AWS_SECRET_KEY
    


    참고: us-east-1를 해당 애플리케이션 지역으로 바꿉니다.
    참고2: AWS_ACCESS_ID 및 AWS_SECRET_KEY 환경 변수는 TravisCI 대시보드에서 설정해야 합니다.

    Corrections and suggestions for better practices would of course be welcome

    좋은 웹페이지 즐겨찾기