본문 바로가기

aws30

AWS Lambda로 Code Deploy 배포 상세 결과 알람 받기 Code Deploy와 다른 CI 툴 (ex: TravisCI)를 조합해서 사용할때 가장 불편한 점은 알람입니다. 저의 경우 TravisCI에서 빌드 & 테스트를 한 뒤에, Code Deploy를 통해 EC2로 배포 하는 구조를 자주 사용합니다. 구축하기 편하다는 장점이 있지만, 이 구조에선 배포 실패시 상세한 내용을 받기가 어렵습니다. TravisCI에서는 Code Deploy에서 어떤 사유로 배포가 실패했는지를 알 수 없기 때문인데요. 그래서 항상 배포가 실패하면 다음과 같은 내용으로만 알람을 받게 됩니다.알람으로 온 링크를 클릭해서 들어가봐도 알 수 있는 내용은 없습니다.그래서 배포 실패가 나면 항상 Code Deploy 화면으로 직접 이동해서 확인할 수 밖에 없습니다. 이 과정이 굉장히 불편해서 .. 2018. 5. 30.
3. Jenkins로 Beanstalk + Multi Module 배포하기 - Beanstalk 연동하기 이번 시간에는 지난 시간에 구축한 Jenkins로 Beanstalk을 연동해보겠습니다. 3-1. Beanstalk 생성 서비스에서 Beanstalk을 검색해서 Beanstalk 서비스 페이지로 이동합니다.우측 최상단의 새 어플리케이션 생성 버튼을 클릭합니다. 어플리케이션의 이름과 설명을 작성합니다.생성된 어플리케이션에서 환경을 생성합니다. 참고로 어플리케이션이 상위의 그룹입니다. 즉, 어플리케이션 안에 환경이 있습니다. 환경 티어에서는 웹 서버 환경을 선택합니다. 환경의 상세 정보를 등록해야하는데요. 여기서 저는 도메인과 환경 이름을 external-api라고 정했습니다. 이렇게 한 이유는 간단합니다. 이번 주제가 Gradle Multi Module 기반에서 Beanstalk을 어떻게 배포하느냐이기 때문.. 2018. 5. 1.
3) AWS로 배포하기 시리즈 - 3. AWS Code Pipeline으로 배포하기 이번 시간에는 앞서 진행된 Code Deploy, Code Build를 Code Pipeline에서 통합해서 사용하는 방법을 소개 드리겠습니다. 모든 코드는 Github에 있으니 참고 바랍니다 3-1. Code Pipeline 구축하기 먼저 Code Pipeline 웹콘솔로 이동합니다. 파이프라인 생성버튼을 클릭합니다.Code Pipeline 이름을 등록합니다.소스를 Github에 가져오도록 선택하고, Github에 연결을 클릭합니다.OAuth 리다이렉트가 끝나면 리포지토리와 브랜치를 선택합니다.여기서 고급을 보면 실행 트리거가 2개가 있습니다. master 브랜치에 PUSH 발생시 자동 실행 파이프라인 수동 실행 이번 포스팅에선 수동 실행을 선택하겠습니다. 기존에 등록한 Code Deploy를 선택합니.. 2018. 4. 9.
2) AWS로 배포하기 시리즈 - 2. AWS Code Build로 빌드하기 지난 시간에 Code Deploy 사용하는 방법에 대해 설명드렸습니다. AWS와 같은 클라우드 서비스가 등장하기전까지 IDC 환경에선 젠킨스 혹은 TravisCI와 같은 CI Tool에서 Build & Test & Deploy를 다같이 처리했었습니다. 즉, Build & Test가 완료된 WAR/JAR 를 배포 서버로 바로 전송(scp)하여 배포했었습니다. 하지만, AWS와 같이 오토 스케일링이 되는 클라우드 환경에선 트래픽에 따라 갑자기 서버가 늘었다/줄었다 할 수 있기 때문에 배포서버 목록을 고정시키기가 어렵습니다. (물론 AWS CLI에서 서버 리스트를 가져온다던가 할수도 있습니다) 그래서 이런 문제를 Code Deploy를 통해 해결합니다. Code Deploy는 ASG를 대상으로 배포가 가능하기.. 2018. 4. 8.
1) AWS로 배포하기 시리즈 - 1. Code Deploy 사용하기 AWS로 전체 시스템 구축해야 할 일이 생겨 AWS 배포 환경 시리즈를 시작합니다. 시리즈 과정은 CodeDeploy -> Code Pipeline -> ELB & Auto Scaling Group -> Beanstalk 으로 진행될 예정입니다. 저는 아래와 같은 이유로 현재 젠킨스 + Code Deploy를 선호하고 있습니다.1. Code Pipeline으로 배포하려면 멀티 모듈 프로젝트를 배포 구성하기가 불편합니다 ㅠ 2. 젠킨스에 이미 익숙한 상태라 커스텀하게 배포 환경 구성할때 쉽게 구성할 수 있는데, 파이프라인은 아무래도 자료가 잘없어서 삽질해야하는 시간이 필요합니다 3. IDC와 클라우드가 공존하는 팀에서는 젠킨스를 쓸수밖에 없는데, 팀 내부에 특정 서비스만 파이프라인으로 사용하기엔 팀 컨벤션.. 2018. 4. 5.
6) 스프링부트로 웹 서비스 출시하기 - 6. TravisCI & AWS CodeDeploy로 배포 자동화 구축하기 이번 시간엔 배포 자동화 환경을 구축하겠습니다. (모든 코드는 Github에 있습니다.) 6-1. CI? 이전 시간에 저희는 스프링부트 프로젝트를 간단하게나마 EC2에 배포해보았습니다. 스크립트를 개발자가 직접 실행시킴으로써 발생하는 불편을 경험했습니다. 그래서 이번 시간엔 CI 환경을 구축해보려고 합니다. 코드 버전 관리를 하는 VCS 시스템에 PUSH가 되면 자동으로 Test, Build가 수행되고 Build 결과를 운영 서버에 배포까지 자동으로 진행되는 이 과정을 CI (지속적 통합)이라고 합니다. 단순히 CI 툴을 도입했다고 해서 CI를 하고 있는 것은 아닙니다. 마틴 파울러의 블로그를 가보시면 CI에 대해 다음과 같은 4가지 규칙을 이야기합니다. 모든 소스 코드가 살아있고(현재 실행되고) 어느 .. 2018. 1. 22.