Tech Note(19)
-
도커를 활용한 서비스 배포하기 (무중단 배포 시나리오 작성) #5
앞서 개발 PC에서 운영 서버로 이미지를 옮겨 설치하는 데까지 성공하였다면 이제 해당 컨테이너가 실제로 운영되고 있다는 것을 가정했을 때 어떻게 패치가 진행될지에 대해 고민을 해보았다. 위 구성도로는 컨테이너를 교체하는 과정 서비스 가용성을 해칠 가능성이 굉장히 높다. 무중단 배포를 하기 위해서는 별도로 동일한 apache 웹 서버 컨테이너를 생성해야 할 것으로 보여 아래와 같이 구성도를 변경하였다. 1. 모든 웹 요청은 Container 1의 Nginx로 들어오게 된다. 2. Nginx는 현재 Active인 Container로 해당 요청을 전달한다. 3. 현재 Active인 Container 2는 Conatiner 4와 통신하며 요청에 대한 결과를 반환한다. 위 동작방식을 토대로 무중단 배포 시나리오는..
2022.06.17 -
도커를 활용한 서비스 배포하기 (save, load, export, import) #4
컨테이너 생성 후 접속까지 문제없이 되면 콘솔 화면을 볼 수 있다. >docker exec -it container1 /bin/bash [root@a5b75f4364ea /]# 간단한 테스트를 위해 기존 구성도에 nginx를 추가한다. nginx yum 설치를 위해 repository를 추가해준다. [root@a5b75f4364ea]# cd /etc/yum.repos.d/ [root@a5b75f4364ea yum.repos.d]# ll total 44 -rw-r--r-- 1 root root 1664 Oct 23 2020 CentOS-Base.repo -rw-r--r-- 1 root root 1309 Oct 23 2020 CentOS-CR.repo -rw-r--r-- 1 root root 649 Oct ..
2022.06.16 -
도커를 활용한 서비스 배포하기 (네트워크 설정 및 컨테이너 생성) #3
앞서 도커를 설치하고 CentOS7 이미지까지 Pull 받아오는데 성공했다고 끝난게 아니다. 이제 받아온 이미지를 컨테이너로 올려야 한다. 도커 이미지는 언어로 치면 클래스라고 생각하면 된다. 재사용 할 수 있도록 만들어진 이미지 형태이며 실제로 구동을 위해서는 해당 이미지를 불러와서 컨테이너로 생성해주어야한다. 이미지와 컨테이너의 개념을 잘 알고넘어가야 후에 서술한 내용에 대해서도 이해하기 편하다. 이제 컨테이너를 생성해보도록 하자. 기존에 생성해둔 CentOS:7 이미지가 있으니 해당 이미지를 이용해서 생성 할 예정이다. 생성 전에 미리 도커 내의 네트워크 구성을 해두었기 때문에 짚고 넘어가자. 간략한 구성도는 아래와 같다. 웹 서비스(Container 1)와 데이터베이스(Container 2)를 구..
2022.06.16 -
도커를 활용한 서비스 배포하기 (image search, pull) #2
centos7에 docker를 설치했으니 다음 과정은 개발 서버에서 실 서버로 옮기는 일련의 과정을 정리해두는 것이다. 애초에 Docker 이미지를 옮겨서 설치하기로 한 이유는 폐쇄망 환경에서 라이브러리 유동성을 확보하고 패치, 배포 과정을 하나의 과정으로 축약시키기 위함이다. 그러기 위해서는 아래의 과정이 전부 가능해야 한다. 1. Window/Mac 등의 개발 PC에서 작성한 Docker 이미지를 .tar 파일로 생성한다. 2. 생성된 .tar 파일을 실 서버에 수정 없이 등록 할 수 있어야 한다. 3. 등록된 이미지를 기존 사용 중인 컨테이너와 서비스 가용성 훼손없이 교체한다. 4. 이 과정에서 오류가 발생하는 경우 기존 컨테이너로 복구한다. 순서는 조금 다르지만 운영서버에 도커를 설치하였으니, 다..
2022.06.15 -
도커를 활용한 서비스 배포하기 (rpm 설치) #1
현재 패치 및 가용성 문제를 해결하기 위해 docker를 설치해야 하는 서버는 dmz망과 같이 특정 대역에서의 접속만 허용이 되어있는 상태 yum install 불가 직접 rpm 파일을 받아서 패치하기로 결정 먼저 아래 링크를 통해 3가지 파일을 다운 받는다. https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ Index of linux/centos/7/x86_64/stable/Packages/ download.docker.com ce, ce-cli, container.io 를 다운로드 받으면 된다. 그리고 아래와 같이 입력한다. yum install -y ce.rpm 내 서버의 경우 의존성 문제가 발생한다. container.io >>..
2022.06.08 -
크롤링 API 서버 개발 #2 (크롤링, Axios, Cherrio)
해당 프로젝트 진행을 위해 샘플 데이터로 활용할 첫번째 타겟은 네이버 뉴스로 정했다. 카테고리는 경제, 사회, 정치 등의 각 분야에서 가져온다. 해당 작업을 위해 앞서 설정해놓은 express 서버에 크롤링 모듈을 설치하는 것. 파이썬의 경우 bs4, requests로 진행하면 되지만, node.js 서버의 경우 아래 플러그인을 활용하면 되겠다. 1. axios, cheerio 를 설치한다. npm install --save axios cheerio 2. express 서버에 플러그인을 import 해준다. const axios = require("axios") const cheerio = require("cheerio") 3. 아래와 같이 입력, axios 호출을 통해 소스를 받아 온 후 cheerio..
2022.05.15