Infra
[Ansible] 다른 OS 환경의 host들을 범용적으로 관리할 수 있는 playbook 작성해보자(패키지 설치)
[Ansible] 다른 OS 환경의 host들을 범용적으로 관리할 수 있는 playbook 작성해보자(패키지 설치)
2024.01.09개인 프로젝트의 배포 툴로 Jenkins와 Provisioning 도구로 Ansible(이하 앤서블)을 사용해보고 있습니다. 배포 대상이 되는 서버에는 애플리케이션 실행에 필요한 패키지들이 설치되어 있어야 하는데요. 앤서블은 이러한 패키지들이 설치되어 있지 않다면 설치하고 이후 애플리케이션 배포 프로세스가 진행되도록 자동화할 수 있게 해줍니다. 여기서 문제는 기존의 배포 서버를 다른 운영체제의 서버로 migration 한다거나 추가했을 때 기존 앤서블 playbook 스크립트에 설정된 내용들을 고쳐야 하는 번거로움이 생길 수 있습니다. 이게 어떤 문제 상황인지 구체적으로 알아보고 어떻게 하면 해결을 할 수 있을지 알아보겠습니다. (기본적인 앤서블 사용방법에 대해서 알고계셔야 합니다. ansible rol..
[CI/CD] Rolling 배포 전략을 이용해 무중단 배포해보기(jenkins, ansible)
[CI/CD] Rolling 배포 전략을 이용해 무중단 배포해보기(jenkins, ansible)
2023.10.161. 무중단 배포? 무중단 배포(zero-downtime deployment)는 백엔드 개발자에 있어서 절대 놓치면 안되는 중요한 내용입니다. 어떤 서비스를 배포할 때 실제 사용하고 있는 사용자들에게 영향을 미치지 않으면서 새로운 버전의 애플리케이션을 끊김 없이 잘 적용하는 것이 중요합니다. 만약 새로운 버전의 애플리케이션을 배포하는 과정에서 잠깐이어도 서비스가 멈추는 일이 발생하면 단순히 사용자가 불편을 겪는 것을 넘어서서 결제 같은 중요한 프로세스가 꼬이거나 하는 대형사고가 펼쳐질 수 있습니다. 그만큼 백엔드 애플리케이션 개발자라고 한다면 서비스 개발을 잘하는 것도 중요하지만 애플리케이션을 장애없이 돌아가게끔 하는 인프라적인 요소들도 잘 챙겨야 합니다. 무중단 배포에서 개인적으로 생각하기에 중요하게 ..
Jenkins와 Ansible을 이용한 CI/CD 프로세스 만들어보기 (내가 만든 서비스 배포까지)
Jenkins와 Ansible을 이용한 CI/CD 프로세스 만들어보기 (내가 만든 서비스 배포까지)
2023.09.22Jenkins와 Ansible을 이용해 Spring Boot application을 빌드하고 서버에 배포하는 모든 과정(CI/CD)을 자동화해보는 내용을 정리해보려고 합니다. 이 글을 통해 Jenkins와 Ansible을 통해 빌드, 배포 과정을 처음 만들어보려는 분들에게 작게나마 도움이 되셨으면 좋겠습니다. 본론으로 바로 들어가보겠습니다. 📌 1. 준비물 CI/CD 프로세르를 만들어보기 전에 준비물이 있는데요. Spring Boot 프로젝트, Jenkins가 설치된 서버(로컬, 클라우드 서버 상관없습니다), Ansible이 필요한데요. 지난 저의 게시글 중에 Jenkins, Ansible 간단하게 구성해보는 글이 있으니 참고하셔도 좋을 것 같습니다. 또한 배포할 대상이 되는 간단한 Spring Boot..
[Jenkins] Ansible plugin 사용해보기(ansible 설치부터 pipeline까지 작업)
[Jenkins] Ansible plugin 사용해보기(ansible 설치부터 pipeline까지 작업)
2023.08.17지난 게시글 중에 Jenkins 서버를 설치하고 Spring boot project 대상으로 간단하게 테스트, 빌드까지 해보는 Jenkins pipeline을 적용해보는 글이 있었습니다. 이번 게시글을 읽기 전에 먼저 읽어보시는 것을 추천드립니다. (https://beaniejoy.tistory.com/95) [Jenkins] Lightsail에 Jenkins server 구축해보고 Spring project 빌드해보기 목적 - AWS Lightsail을 통해 생성한 instance에 jenkins server 구축한 내용 기록용 목표 - AWS Lightsail에 띄운 instance에 jenkins server 띄우기 - jenkins server 기본적인 설정 - jenkins item 생성 후 s..
Vault 서버를 설치해보자(AWS, Lightsail에 vault 서버 구축해보기)
Vault 서버를 설치해보자(AWS, Lightsail에 vault 서버 구축해보기)
2023.07.30Spring Boot 애플리케이션을 개발하다보면 민감한 정보들을 설정해야할 때가 있습니다. DB 연동시 필수적으로 입력해야 하는 jdbc url, username, password 정보도 있고 Security 인증 관련해서 토큰 발급을 위한 secret_key도 있을 수 있습니다. 이러한 민감 정보들을 Spring 프로젝트에서 application.yml 파일에 작성해놓고 github origin repository에 push하는 순간 외부에 DB 서버 접근 정보를 노출하게 되는 심각한 상황에 마주하게 될 것입니다. 📌 0. Vault를 도입하게 된 직접적인 계기... Spring Boot를 이용한 개인 애플리케이션 개발을 진행하면서 Jenkins를 통해 CI/CD 자동화 프로세스를 적용해보았는데요. 그..
Jenkins의 flywayrunner plugin을 통해 DB migration 자동화하기(jenkins pipeline)
Jenkins의 flywayrunner plugin을 통해 DB migration 자동화하기(jenkins pipeline)
2023.05.23목표 - DB migration 용도의 Jenkinsfile 작성해보기 - Jenkins pipeline을 통해 flyway migration 자동화 적용 - Jenkins에서 item에 버튼 하나 누르면 알아서 migration 작업 진행하도록 적용 - DB 테이블에 대한 migration 이력을 프로젝트에서 파일(.sql)로 관리 가능 해당 글을 보시기 전에 Jenkins 서버 설치가 되어있어야 합니다. Jenkins 설치 방법은 여러 블로그 글에 자세하고 친절하게 소개를 하고 계시더라구요. (아니면 ChatGPT로,,,) AWS 클라우드 서버 내 Jenkins 서버 설치에 대해서 이전에 제가 작성했던 글도 있는데요. 허접하지만 이거 참고하셔도 좋습니다. (https://beaniejoy.tistor..