서버 및 운영
도커(Docker) 이미지 설치 및 컨테이너 실행
우선 컨테이너의 대한 정의를 모르시는 분이나 도커가 무엇인지 등등 사전에 알고 있으면 좋을 내용 우선 첨부드립니다. 2022.04.15 - [서버 및 운영/운영] - 도커란 무엇인가? 도커란 무엇인가? 도커란 무엇인가? 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 즉 컨테이너들을 관리해주는 플랫폼이다. 일반 사용자가 사용하는 Windows 나 Mac PC, Centos 환경에 도커를 설치하고 그 위에 myit.tistory.com 컨테이너를 만들고 실행하기 위해서는 Docker 이미지를 다운로드를 받아야 합니다. 설치할 이미지를 찾아야하는데 이미지를 검색하는 방법은 두가지가 있습니다. 1. 도커허브 이용 (도커허브란 이미지들을 모아 놓은 저장소입니다.) https://hub.docker.com/ ..
프록시란 (Forward Proxy, Reverse Proxy)?
프록시(Proxy)란 무엇인가 ? 프록시(Proxy) 사전적 의미로 대리라는 의미를 갖고있고, 프록시 서버는 사전적 의미 그대로 대리 서버로 중간에서 클라이언트의 요청을 받아 중계하는 서버를 의미합니다. 중간에서 클라이언트(사용자)와 서버를 중계하는 서버라고 생각하면 이해가 쉽습니다. 자세한 건 아래에서 확인하도록 합시다. 프록시의 종류 ? 프록시는 포워드 프록시,리버스 프록시 두가지로 나뉘며 무슨 차이가 있을까요? 알아보기 전 프록시가 없는 경우에 통신은 아래와 같습니다. 서버와 클라이언트간의 직접적으로 통신을 합니다. (단 중간 단에 보안장비, 네트워크 장비제외 하였습니다.) 이렇게 다이렉트 통신을 하면 보안상으로 좋지 않으니 보안강화를 위해 보통 프록시를 사용합니다. 포워드 프록시 (Forward ..
가상화란?
가상화란? 보통은 한개의 물리서버에 한개의 운영체계를 운영 할 수 있다. 하지만 가상화 기술로 한개의 물리서버에 여러개의 운영체계를 운영 할 수 있도록 하는 것이 가상화 입니다. 가상화 기술을 이용해 만들어진 서버를 가상 머신(Virtual Machine, VM)이라고 부릅니다. "한개의 물리서버에 여러개의 운영체제를 사용할 수 있다면 무조건 가상화를 하는것이 좋지 않은가? "라고 생각 할 수 있지만 물리 서버로 운영해야 하는 상황도 많습니다. 어떤 서버를 써야할지 장단점을 알아보도록 합시다. 물리서버와 가상서버의 장단점은 아래와 같습니다. 장단점을 확인 후 물리서버로 운영을 해야할지 가상서버로 운영을 해야할지 사전 계획이 필요합니다. 물리서버 가상서버 장점 물리서버를 혼자 사용하므로 속도 및 보안 측면..
github - git 연동 방법
git : 로컬 저장소에서 프로그램 버전 관리하여 사용하는 것. (소수로 작업하는 환경) github : 로컬 저장소 내 git 작업물을 업로드 및 공유하고 협업할 수 있도록 하는 형상 관리시스템이다.(다수로 작업하는 환경) (git의 기능 및 설치 방법은 해당 링크 참고 부탁드립니다. Git 기능 및 설치방법) git 작업물을 github에 업로드 할 수 있도록 연동을 해봅시다. 우선 github 홈페이지로 이동하여 로그인합니다. 아이디가 없는 경우 계정 생성 진행합니다. https://github.com/ GitHub: Where the world builds software GitHub is where over 83 million developers shape the future of softwar..
도커 - 이미지 만들기
도커 이미지란? 컨테이너 실행에 필요한 파일과 설정값들을 포함하고 있는 것을 의미하며 이를 활용하여 컨테이너를 생성 할 수 있다. 도커 이미지를 만드는 이유 ? 기존 도커 이미지들의 부족한 부분을 채워서 커스터마이징 가능 시스템 엔지니어가 신규 서버를 구축할 때 만들어 놓은 이미지를 이용해 시간을 단축 할 수 있다. (서버 구축 셋업 시 생각보다 시간이 오래 걸린다..) 서버마다 용도가 달라 호환하는 파일의 버전이 다른데 이미지를 만들어놓으면 파일을 찾거나하는 번거로움이 없다. 도커 컨테이너 이미지만들기 도커 이미지를 만들기 위해서는 도커파일을 작성하고 도커파일을 빌드하여야합니다. 1. 저는 작업할 디렉토리를 만들어 주었습니다. mkdir dockerfile 2. 도커 이미지를 만들기 위해서는 도커 파일..
Centos Jenkins 설치
Jenkins란 ? 젠킨스는 프로그램 개발 시 지속적으로 통합 배포 서비스(CI : Continuous Integration) CD(Coutinuous Delivery)를 제공하는 툴입니다. 프로그램을 개발할때 항상 로컬 환경에서만 실행시키는 것이 아니라 실제 사용자들이 프로그램을 이용하기 위해서는 배포를 해야 합니다. 배포를 위해서는 다양한 프로세스가 존재하는데 이러한 프로세스들을 반복적으로 하는건 번거로움이 있어 자동 배포해주는 역할을 하고 같은 프로그램을 개발하는 개발자들의 코드를 통합해주는 역할을 합니다. Jenkins 설치 방법: 제가 아래 설명한 설치방법은centos7 운영체제로 설치를 진행한 것이며 인터넷이 가능하여야 설치 가능합니다. 1. 우선 wget 명령어를 이용해 jenkins Re..
리눅스 프로세스 내려가면 자동으로 실행하는 스크립트
쉘스크립트를 이용해 프로세스 상태(켜져있는지 꺼져있는지)를 모니터링을 하다가 프로세스 카운트가 0 즉 프로세스가 꺼졌을 때 자동으로 실행하게 하는 스크립트입니다. 문제가 자주 발생하는 프로세스 수정 전 임시로 사용하면 좋을 듯 싶습니다. 여러개의 프로세스를 while문에 넣어주면 다수의 프로세스에 적용 가능합니다. #!/bin/sh while : do process=`ps -ef | grep test | grep -v "grep" | wc -l`#프로세스 명 수정필요 (현재 test) if [ ${process} -eq 0 ];then echo "process down" cd /home/hkkim2# 경로 설정 ./test.sh & #실행할 프로세스명 fi done 주석처리된 부분 변경하여 사용하시면 됩..
특정 로그 발생 시 프로세스 종료하는 스크립트
신규 프로그램 셋업이나 프로그램 유지보수 간 스크립트 사용 가능할 것으로 보이는데, 로그에서 error 메시지 발생하였을 때 자동으로 해당 프로세스 종료하는 쉘 스크립트입니다. 아래는 문제 발생했을 때 바로 프로세스 강제 종료(kill -9)하는 스크립트입니다. # 문제 발생시 해당 프로그램 곧바로 kill하는 스크립트입니다. #로그 발생 시 프로세스 종료하는 스크립트가 아니고 단순히 문제 발생한 프로세스를 종료하는 스크립트입니다. #!/bin/sh pgm="test" ps -ef|grep $pgm|grep -v grep|awk '{print "kill -9 "$2}'|sh -x 위 스크립트를 활용해서 특정 로그 발생 시 프로세스를 강제 종료하는 스크립트는 아래와 같습니다. (저는 특정로그를 error ..