Devops

무중단 배포를 한번 해보자!  들어가며새로운 프로젝트를 시작하면서 CI/CD를 구성하게 되었습니다. 이전 프로젝트에서는 새로운 기능이 담긴 JAR 파일을 배포할 때 기존 서버를 종료하고 새로운 서버를 띄우는 과정에서 다운타임이 발생하는 문제가 있었습니다. 이로 인해 짧게는 30초, 길게는 1분 이상 서비스가 중단되어 사용자에게 불편을 초래했습니다. 이번 프로젝트에서는 이러한 문제를 해결하기 위해 무중단 배포를 구현하려고 합니다. 다운 타임다운타임이란 스템, 서버, 네트워크, 또는 애플리케이션이 정상적으로 작동하지 않고, 사용자가 접근할 수 없는 시간을 의미합니다. 다운타임은 계획된 경우와 계획되지 않은 경우로 나뉩니다.계획된 다운 타임 :시스템 유지 보수 : 시스템의 성능을 올리거나 유지보수를 하는 동안..
· Devops/AWS
서버 내부의 이미지 파일을 저장해 보자  들어가며프로젝트를 진행하는 동안, 이미지 파일을 배포 서버에 저장하는 등록 API를 구현하게 되었습니다. 초기 개발 단계에서는 S3를 이용하여 이미지를 업로드하는 것이 필요하지만, 이는 취업 준비생에게는 추가적인 비용이 발생하므로 부담이 될 수 있습니다. 그래서, 서버 내부에 직접 이미지를 저장하는 방법을 탐색하려고 합니다  서버 내부의 장, 단점S3와 같은 클라우드 스토리지를 사용하지 않고 배포된 서버 내부의 이미지 파일을 저장하게 되면 장단점이 존재합니다. 먼저 장담 전에 대해서 알아보도록 하겠습니다.장점빠른 액세스 : 이미지가 서버내부의 저장되어 있기 때문에 적은 네트워크를 통해 데이터를 불러올 수 있습니다.보안 : 서버 내부의 이미지를 저장하기 때문에 나름..
· Devops
커밋, 푸쉬를 취소및 ADD 언스테이징을 해보자 들어가며 프로젝트 도중 민감한 정보가 올라간지 모르고 커밋을 하고 푸쉬를 하고 나서 롤백하려고 많은 삽질을 한 후에 해결방법을 작성했습니다. add 언스테이징하기 위와 같이 현재 add.txt 파일이 스태이징 된 상태입니다. 언스테이징을하기 위해서는 다음과 같은 명령어를 통해서 언스태이징이 가능합니다. git rest 명령어를 실행 시 빨간색으로 변하며 언스트이지 상태로 변하는 것을 볼 수 있습니다. Commit 취소하기 //commit을 취소하고 stage 상태 $ git reset --soft HEAD^ //commit을 취소하고 unstaged 상태 -Default $ git reset --mixed HEAD^ == git reset HEAD^ // ..
· Devops
Git Bash CLI의 명령어 정리 CLI 시작전 리눅스 기본 명령어 pwd : 현재 디렉터리 위치를 파악한다. ls -a : 현재 폴더의 몰록을 확인 (-a 옵션을 통해 숨겨진 파일 목록 검색) cd : 홈 디렉터리로 이동 cd [디렉토리명] : 해당 디렉터리로 이동 cd ../ : 상위 디레턱티로 이동 mkdir [새 폴더 이름] : 새롭게 생성할 폴더명 echo "message" : " "안 메세지를 출력한다. 로컬 상태 확인하기 git status : Git의 워킹트리의 상태를 확인하는 명령어 git status -s : git stauts보다 짧게 요약해서 정보를 보여줌 git main -b main : 기본 브랜치를 main으로 지정하고 현재 폴더에 git 저장소를 생성한다.(.git 폴더생..
· Devops
Credentials을 통해 민감한 정보를 보호해 보자! 들어가며 Jenkins를 통해 CI/CD를 구축하려면 소스 코드를 가져와 빌드해야 합니다. 그러나 이 과정에서 YAML이나 Properties와 같은 파일에는 민감한 정보가 포함될 수 있습니다. 이 정보가 노출되면 악의적인 공격에 이용될 수 있습니다. 이러한 보안 문제를 해결하기 위해 Credentials을 활용하여 민감한 정보를 안전하게 다루는 방법을 알아보겠습니다. 사용 방법 종류 1). String Parameter 2). Secret File(Pipeline으로 생성 시에) 이 두 가지 방법의 대해서 설명해 보도록 하겠습니다. String Parameter String Parameter는 Jenkins에서 빌드 파라미터로 사용되어 사용자가 ..
· Devops
Docker 내부에 jenkins로 Git과 자동배포 하는 방법을 알아보자!! 들어가며 이번 포스팅에서는 Git에서 push가 일어났을때일어났을 때 jenkins가 리파지토리를 감시하다가 push가 일어났을 때 빌드하고 자동으로 docker로 실행하는 방법을 알아보겠습니다. 구성도 로컬에서 간단하게 구축하기 위해서 간단하게 그려봤습니다. dockerfile로 할예정입니다. 또한 DB는 따로 관리해야 판단했기 때문에 개별적으로 MySQL컨테이너를 띄어놓았습니다. 프로젝트환경 springboot -version : 2.7.4 bulid : gradle 8.5 java -version : openjdk-17 IDE : IntelliJ _Ultimate OS : Windows10 Pro Docker에 Jenki..
· Devops
젠킨스를 이용해 Git의 변경사항이 있으면 자동으로 빌드되도록 해보자! 들어가며 이번 포스팅에서는 젠킨스를 이용해 깃의 변경된 내용이 있으면 Jenkins가 감지해 자동으로 빌드하는 방법을 알아보도록 하겠습니다. 젠킨스란? [Jenkins] 젠킨스와 CI/CD란 무엇인가? CI/CD와 젠킨스의 대해서 알아보자 젠킨스(JenKins)란? 젠킨스는 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Deployment, CD)를 자동화하는 도구로, 개발자들이 코드를 변경할 때마다 지정 back-stead.tistory.com 젠킨스 설치방법 [Jenkins] jdk-17을 사용한 Jenkins 다운로드 방법 및 플러그인 설치오류 해결방법 Jenkins을 다운로드하..
· Devops
CI/CD와 젠킨스의 대해서 알아보자 젠킨스(JenKins)란? 젠킨스는 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Deployment, CD)를 자동화하는 도구로, 개발자들이 코드를 변경할 때마다 지정된 작업들을 자동으로 실행해 줍니다. 예를 들어, 코드 변경이 발생하면 자동으로 빌드를 시작하고, 테스트를 실행하고, 필요에 따라 Docker 이미지를 빌드하고 배포하는 등의 작업을 처리할 수 있습니다. 이를 통해 개발자들은 반복적이고 일정한 작업들을 자동화하여 생산성을 향상할 수 있습니다. 그림으로 한번더 설명하자면 개발자가 Git과 같은 저장소에 코드를 푸시하면, Jenkins는 변경 사항을 감지하여 자동으로 빌드를 시작합니다. 이 과정에서 소스 코..
코드기록사
'Devops' 카테고리의 글 목록