[StudyWithMe] 스터디 윗 미 dev 무중단 배포
·
프로젝트/StudyWithMe
우선, 이번에 디자이너 1명과 프론트엔드 2명이 들어왔기에 원할한 개발을 위한 `dev`서버가 필요했다.  그렇기에 이번 포스팅에서는 `StudyWithMe`의 `dev` 서버의 무중단 배포에 관해 포스팅 하려고 한다.  무중단 CI/CD 아키텍처설명하기에 앞서 구축한 `CI/CD` 아키텍처는 다음과 같다.   미니PC 환경`StudyWithMe` 서버는 현재 같이 작업하시는 백엔드분의 미니PC에서 동작하고 있다. 현재 미니PC 서버의 동작 컴포넌트들80포트 사용 다용도 NGINXPortainer(웹 UI 기반 컨테이너 관리)내가 쓰는 건 아니고 다른 백엔드 분이 사용하신다.Private Docker Registry(프라이빗 도커 레지스트리)GrafanaPrometheus가 존재한다. 위에서 중점적으로 ..
[Jenkins] Jenkins + Ansible 연동하기
·
Infra/Jenkins
Jenkins 이전 글우리는 이전 포스팅들에서 Ansible이 무엇인지, 왜 사용하는지, Ansible의 Playbook을 알아보며 학습했다.이제는 학습한 Ansible과 Jenkins를 연동해보자.  Jenkins + Ansible 연동Jenkins와 Ansible을 연동하기 위해서는 우선 Jenkins에 Ansible Server에 접근할 수 있도록 설정을 해주어야 한다.설정은 아래 사진과 같다. Jenkins 관리 -> System -> Publish Over SSH(플러그인 설치) -> 구성  이전 포스팅에서도 설명해왔지만, 추가로 설명하자면 name: 접속할 서버의 이름Hostname: IP Address필자는 도커로 Ansible를 설치했기에 아래 명령어로 docker 컨테이너의 IP Addr..
[부록] SSH, Docker가 설치된 도커 이미지 구성
·
Infra/Jenkins
Jenkins 필자는 이도원 강사님의 인프런 강의를 통해 SSH Server 및 도커가 설치되어 있는 이미지를 사용했지만,내가 직접 구현해보고 싶다는 생각이 들었고 나중에 리눅스 실험용 서버로 잘 사용할 수 있기에 관련 내용을포스팅 하려고 한다.  리눅스 이미지 사용 실행docker run --privileged -d --name mycentos centos:latest initssh 설정을 위해서는 --priviledged 옵션이 필수이다.  --priviledged 옵션이란? 도커 컨테이너는 기본적으로 Unpriviledged 모드로 실행된다.해당 모드에서는 시스템 주요 자원에 접근할 수 있는 권한이 부족하기 때문에, 특정 장치 등의 시스템 자원에 접근할 수 없다.  해당 부분에 대해 도커 공식 문서..
도커 명령어 모음
·
Docker
일반 명령어 docker ==> 도커 관련 설명 docker -v ==> 도커 버전 확인 rm docker rm ==> 도커 삭제(보통 docker stop을 했을 때 docker ps -a와 함께 사용) docker rm -f ==> 실행중인 컨테이너 삭제 stop docker stop ==> 도커 중단 ps docker ps ==> 도커 프로세스 리스트 확인 docker ps -a ==> 도커 확인 docker container ls -a ==> 전체 컨테이너 목록 확인 도커 실행과 생성 docker run ==> 도커 실행 docker run -i -t ==> 도커를 입출력 모드와 tty 서버로 실행 tty는 물리적인 콘솔에서 사람이 직접 조작하는 개념. pty는 telnet처럼 원격에서 접속하거나..
도커 엔진을 구성하는 도커 이미지와 도커 컨테이너
·
Docker
도커는 종합적으로 보면 하나의 큰 리눅스 컨테이너이다.  우리가 도커를 바이너리 파일로 설치하거나 다운로드를 받게 된다면 실제로는 도커 엔진을 다운받는 것과 똑같다. 또한, 도커를 이용해서 인프라를 구축하거나 개발을 한다는 말은 도커 엔진을 이용해서 인프라를 구축 및 개발한다는 말이다. (자세한 설명)컨테이너 기반 가상화는 도커 엔진 위에 애플리케이션 실행에 필요한 바이너리만 올라간다. OS 가상화(HyperVisor)를 보면 Host OS와 완전히 분리되는 장점은 있지만 OS위에 OS를 올리기 때문에 무겁고 느리다. 하지만, 컨테이너 기반 가상화는 Host OS 그리고 도커 엔진위에서 바로 동작하며 Host의 커널을 공유한다. (커널을 공유하게 되면 I/O처리가 쉽게 되어 성능의 효율을 높일 수 있음)..
도커가 배포할 때 필요한 이유
·
Docker
도커는 이미 없어선 안되며 큰 인기를 끌고있다. 특히, 도커를 사용하면 아주 쉬운 배포가 가능해진다. 그렇다면 도커는 어떻게 배포를 구현할까? 3가지 시대로 나눠서 도커의 배포에 대해 설명한다. 전통적인 배포의 시대 애플리케이션을 하나의 물리 서버에서 실행 단점 하나의 물리 서버에서 여러 애플리케이션을 실행(Spring, Jenkins, Nginx 등)한다면 각각의 애플리케이션이 잡는 리소스들이 너무 크다. 또한, 조율하기 어렵다. 어떤 애플리케이션은 서버의 리소스를 많이 잡을 수 있고 다른 애플리케이션은 적을 수도 있고 이런 것들이 여러 개가 있을 수 있다. 해결책 위의 단점을 해결할 수 있는 간단한 해결 방법은 당연하게 새로운 물리 서버 증설이다. 그러나 하지만, 물리 서버를 많이 유지하고 관리하는 ..