서비스 및 도구CI/CD 서비스1. AWS CodeBuild : 소스코드 컴파일 및 테스트 실행 이후 배포할 준비가 된 소프트웨어 패키지를 생성하는 안전관리형 연속 통합 서비스 특징) - 자체 빌드 서버를 설정, 관리, 패칭할 필요 없음 - 용량을 자동으로 확장할 수 있으므로 빌드가 실행 대기열에 대기하지 않음 - 구축하는 데 사용한 시간만큼 요금 지불 - 사전 패키징된 구축 환경 또는 자체 구축 환경을 사용하고 사용자의 키로 아티팩트를 암호화할 수 있음 작동 방식) -> 소스 코드를 컴파일하고 테스트를 실행한 후 바로 배포 가능한 소프트웨어 패키지를 생성할 수 있는 완전관리형의 지속적인 통합 서비스 AWS CodeBuild 사용 이유) >> 자체 빌드 서버를 프로비저닝, 관리 및 확장할 필요가 없음. ..
Cloud/DevSecOps
본 실습은 아래 자료를 바탕으로 진행되었습니다.https://tomatohj.tistory.com/83 우리가 구성하고자 하는 DevOps 아키텍처는 Jenkins가 Github로 부터 Repository에 변화가 있음을 알아채고, 빌드/배포 과정을 진행할 것이다.Github는 Github Webhook을 통해 Jenkins에게 정보를 전달할 수 있다▶ Github Webhook : Repository에 발생하는 이벤트들을 특정 URI로 전달할 수 있음 Fork 해온 Repositroy로 이동하여 Settings 메뉴를 클릭한다. 왼쪽 메뉴 중 Webhooks를 선택한 후, 우측 상단 Add webhook을 클릭한다. Webhook을 추가하기 위해 Repository의 변경사항을 전달할 URL 정보가 필..
본 실습은 아래 자료를 바탕으로 진행되었습니다.https://tomatohj.tistory.com/82 이제 본격적으로 실제 배포를 위한 웹 서버 2대를 구성해야 한다.Jenkins를 이용하여 Blue/Green 형태의 무중단 배포를 구현할 것이므로 "docker run -it --name [이름] ubuntu" 명령어로 동일한 환경의 컨테이너를 2개 생성할 수 있다. 이후, 'apt update && apt install -y vim net-tools openjdk-17-jdk ssh psmisc'를 수행한다.📂 무중단 배포말 그대로 서비스가 중단되지 않은 상태로 새로운 버전을 배포하는 것이다. 서비스가 계속 운영되는 상태에서 새로운 버전의 어플리케이션을 배포하는 과정에서 시스템 가동시간을 최소화하여..
본 실습은 아래 자료를 바탕으로 진행되었습니다.https://tomatohj.tistory.com/81 설치된 Jenkins에서 좌측 상단에 있는 '새로운 item' 버튼을 클릭하면 아래와 같은 화면을 볼 수 있다. 여기서 이름을 자유롭게 설정하고 종류는 'Freestyle project'를 선택한 후 OK 버튼을 눌러준다. 이후 소스 코드 관리 부분으로 이동하여 Git을 선택하면 연결할 Repository URL과 Github 인증을 위한 정보를 추가해야 한다. 환경 구성이 이용할 웹 애플리케이션은 WebGoat라는 오픈소스 웹 어플리케이션이므로 'WebGoat' Github 공식 Repository를 확인하여 활용할 수 있다.📂 WebGoat최초 로그인 시 WebGoat에 대한 소개 문구가 표시되어..
본 실습은 아래 자료를 바탕으로 진행되었습니다.https://tomatohj.tistory.com/80위와 같이 Docker를 이용한 DevOps 아키텍처를 로컬 환경에 구성하고자 한다.📌 Jenkins란?젠킨스는 온갖 종류의 개발 작업을 지원하기 위한 약 1,400가지의 플러그인을 가지고 있는 선두적인 오픈소스 자동화 서버다. 가와구치가 애초에 해결하려 했던 지속적인 통합과 지속적인 자바 코드 전달, 즉 프로젝트 빌드, 테스트 실행, 정적 코드 분석 시행, 그리고 배포 작업은 사람들이 젠킨스를 사용해 자동화하고 있는 여러 가지 프로세스들 가운데 한가지일 뿐이다. 이 1,400개의 플러그인은 5가지 영역을 포괄하고 있다(플랫폼, UI, 관리, 소스코드 관리, 그리고 가장 많이 사용되는 빌드 관리).[ ..