본문 바로가기

CI/CD7

AWS CodeDeploy와 S3를 활용한 스프링부트 서비스 배포 이번 글에서는 AWS CodeDeploy와 S3를 활용하여 EC2 인스턴스에 스프링부트 서비스를 배포할 것이다. 글의 순서는 다음과 같다. AWS CodeDeploy란? 사전조건 AWS CodeDeploy 만들기 AWS CodeDeploy 테스트 1. AWS CodeDeploy란? CodeDeploy는 Amazon EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lamda 함수 또는 Amazon ECS 서비스로 애플리케이션 배포를 자동화하는 배포서비스다. CodeDeploy를 활용하면 Amazon S3 버킷, GitHub 레파지토리 또는 Bitbucket 레파지토리에 저장된 code, 서버리스 AWS Lamda 함수, 웹 및 구성파일, 실행파일, packages, 스크립트, 멀티미디어 파일 등을 거의 무.. 2020. 2. 12.
AWS CodeBuild로 빌드 후 S3에 빌드 결과파일 업로드 이번 글에서는 AWS CodeCommit에 있는 스프링부트 소스코드를 AWS CodeBuild를 통해서 빌드를 수행한 후 빌드된 결과파일(아티팩트(JAR))을 S3에 업로드하는 실습을 진행해볼 것이다. 이 글의 순서는 다음과 같다. AWS CodeBuild란 무엇인가? 사전준비 AWS CodeBuild 설정 AWS CodeBuild 테스트 1. AWS CodeBuild란 무엇인가? AWs CodeBuild란 클라우드의 완전 관리형 빌드 서비스로, 소스코드를 컴파일하고 단위테스트를 실행하며 배포할 준비가 완료된 아티팩트 파일을 생성한다. CodeBuild는 빌드서버를 프로비저닝 및 관리할 필요가 없으며 Maven, Gradle과 같은 널리 사용되는 프로그래밍 언어 및 도구에 맞게 사전 패키지된 빌드 환경을.. 2020. 2. 11.
쿠버네티스 클러스터에 React 서비스 컨테이너 배포 이번 글에서는 CentOS(On-Premise환경)내 구축된 쿠버네티스 클러스터 위에 React 서비스를 컨테이너로 배포하는 방법에 대해 알아볼 것이다. 보통 Web 서비스는 Scale-out 관련 요구사항이 없기 때문에 컨테이너화 하는 경우는 드물다고 들었지만(?), 스터디 프로젝트를 하며 쿠버네티스를 공부하면서 Web 서비스도 컨테이너화 하여 쿠버네티스 클러스터에 적용해 보았기에 이렇게 블로그로 남긴다. (갑자기 존댓말 해서 이상한데 혹시라도 다른 사례가 있으시다면 댓글로 남겨주시면 큰 도움이 될 것 같습니다. 감사합니다.) 1. 사전 준비사항 React로 개발된 소스 1본 CentOS(On-Premise환경)내 구축된 쿠버네티스 클러스터 CI/CD 파이프라인(로컬pc - gitlab - jenkin.. 2020. 1. 21.
CI/CD 란 무엇인가? DevOps 관련 공부를 하다보면 CI/CD에 대한 말이 자주 나온다. 하여 CI/CD에 대해 정리를 간단하게 해보고자 한다. 1. CI/CD란? CI/CD란 Continuous Integration(지속적인 통합), Continuous Delivery(지속적인 서비스제공), Continuous Deployment(지속적인 배포)의 약자로, 애플리케이션 개발 단계를 자동화하여 애플리케이션 개발을 보다 짧은 주기로 고객에게 제공하는 방법이며, 새로운 코드 통합으로 인해 개발 및 운영팀에서 발생하는 문제(일명 통합지옥(Integration hell))를 해결하는 솔루션이다. CI/CD는 애플리케이션 통합, 테스트, 제공, 배포에 이르는 라이프사이클 전체에 걸쳐서 지속적인 자동화와 모니터링을 제공하며, 이러한.. 2020. 1. 13.
쿠버네티스 시작하기(9) - CI/CD 파이프라인 만들기(3/3) - Gitlab webhook 설정 및 Slack 연동 이전 글에서 쿠버네티스 클러스터에 올라간 Jenkins와 Gitlab간의 연동을 시킨 후 컨테이너 배포까지 수행해 보았다. 이번 글에서는 Gitlab으로 로컬PC의 소스 Push/Merge 시 자동으로 Jenkins에서 빌드/배포가 수행되는 프로세스를 만들어 볼 것이고, 빌드/배포가 완료된 후에는 Slack을 통해 알람 메시지를 전송할 것이다. 1. 시작하기 전에 현재까지 완성된 빌드/배포 프로세스를 보면 아래와 같다. 개발/운영자가 로컬PC에서 소스 변경 후 git push/merge를 통해 Git Repository(gitlab/github ...)로 소스 업로드 -> 완료 소스가 업로드되면 Git Repository에서 Jenkins로 Webhook 전송 ->미완료 jenkins에서 Webhook을.. 2020. 1. 11.
쿠버네티스 시작하기(8) - CI/CD 파이프라인 만들기(2/3) - Gitlab & Jenkins & Docker hub 연동 이전 장에서 쿠버네티스를 활용하여 jenkins를 설치하고 환경설정을 진행해 보았다. 이번 장에서는 설치된 jenkins와 Git Repository를 연동하여 Git Repository에 있는 소스를 서버로 전송하여 빌드/배포를 진행하고, 빌드/배포가 완료되면 Slack을 통해 알람 메시지를 보내는 프로세스를 만들어 볼 것이다. 1. 빌드/배포 순서 빌드/배포의 순서를 정리해보면 다음과 같다. 개발/운영자가 로컬PC에서 소스 변경 후 git push/merge를 통해 Git Repository(gitlab/github ...)로 소스 업로드 소스가 업로드되면 Git Repository에서 Jenkins로 Webhook 전송 jenkins에서 Webhook을 통해 소스 변경 사실을 인지한 후, 빌드툴(m.. 2020. 1. 6.
쿠버네티스 시작하기(7) - CI/CD 파이프라인 만들기(1/3) - 쿠버네티스 클러스터에 jenkins 설치 및 설정 이번 장에서는 설치한 쿠버네티스 위에 CI/CD 파이프라인을 만들 것이다. CI/CD 파이프라인을 만드는 이유는 간단하다. 로컬에서 개발한 소스를 수작업으로 서버에 올린 후 쿠버네티스 클러스터에 컨테이너로 배포한다는 것은 상상할 수 없기 때문이다. 때문에 배포 파이프라인을 만들어서 로컬에서 어플리케이션 개발 후 Git Repository로 Push/Merge를 하게 되면 소스가 자동으로 서버 내 쿠버네티스 클러스터로 배포가 되게끔 할 것이다. 우선 CI/CD 파이프라인을 구축 하기 전에 CI/CD에 대한 정확한 이해가 필요하다. CI/CD에 대한 정확한 이해는 이 포스트(https://twofootdog.tistory.com/16)를 참고해보도록 하자. 1. CI/CD 파이프라인 구성도 앞으로 생성할 C.. 2020. 1. 2.