Backend&Devops
[Jenkins] 젠킨스와 깃허브 연동(GitHub Web Hook AWS) (3)
1. AWS 사용할 시 저는 AWS의 EC2를 사용했는데 host와 연결할 수 없다고 나왔습니다. 이런 경우엔 AWS EC2의 ssh를 깃허브에서 접근할 수 있게 처리를 해주어야 합니다. 먼저 Jenkins가 설치된 EC2 인스턴스 폴더에 SSH로 접근해줍니다. (저는 docker container를 사용했습니다) 각자 Jenkins가 설치된 위치가 다르기 때문에 위치를 따로 확인하셔야 합니다. 그다음 jenkins 설치 폴더에 .ssh라는 폴더를 생성하고 .ssh에 들어갑니다. 그리고 ssh-keygen 명령어로 rsa 알고리즘으로 된 key를 생성합니다. mkdir .ssh cd .ssh ssh-keygen -t rsa -b 4096 -C test-key -f github_jenkins passphr..
[Jenkins] 젠킨스와 깃허브 연동(GitHub Web Hook) (2)
앞에선 Jenkins Credentials에 Github를 등록했고, 여기에서는 Github Repository에 WebHook을 걸어 push가 일어나면 Jenkins에서 Catch할 수 있도록 하는 처리를 진행하겠습니다. 1. 메인 대시보드에서 새로운 Item을 클릭합니다. 2. item 이름을 정하고 Freestyle project를 선택하고 Ok 합니다. 3. General - GitHub project - Project url 작성 레포지토리를 연결할 github url을 작성합니다. 4. 소스코드 관리 - Git - Repository URL - Credentials 작성 Repository URL은 3번과 동일하게 작성해주시고, 처음 Credentials에는 none으로 되어있을텐데 Add ..
[AWS] EC2 Docker, Docker-compose 설치(Linux)
AWS에서는 docker와 docker-compose를 설치하는데 기존 리눅스 방법과는 다른 방법으로 설치를 진행해서 아래 방법을 찾아 공유하려고 합니다! 도커 설치 // 도커 설치 sudo amazon-linux-extras install docker // 도커 시작 sudo service docker start // 권한 부여 sudo usermod -a -G docker ec2-user // auto-start에 docker 등록 sudo chkconfig docker on // 인스턴스 재시작 sudo reboot // 도커 버전 확인 docker version 버전 확인 했을때 위와 같이 나오면 정상적으로 설치가 된 것입니다. 도커 컴포즈 설치 // 최신 docker compose를 해당 링크에..
[Nginx] Nginx 개념 및 nginx.conf 설정
Nginx 개념 및 nginx.conf 설정 1. 개념 nginx는 apache와 같은 웹서버 중에 하나인데, 가벼우면서 여러 요청을 한 번에 처리할 수 있는 장점을 가진 웹서버입니다. apache보다 동작이 단순하고 전달자 역할만 하기 때문에 동시접속에 특화되어 있다는 특징이 있습니다. 만약 동시접속자가 700명 이상이라면 서버를 증설하거나, nginx환경을 권장한다고 할 정도로 성능이 좋고 다중 접속에 특화되어있다는 것을 알 수 있습니다! 이 nginx는 구동 방식이 Event Driven(비동기처리방식)인데, 이것은 요청이 들어오면 어떤 동작을 해야하는지만 알려주고 다른 요청을 처리하는 방식입니다. 그러다보니 CPU와 관계없이 모든 입출력들을 전부 Event Listener로 전달하기 때문에 흐름이..
[Docker] Docker Compose 문법 정리
docker compose 문법 정리 도커 컴포즈는 여러 개의 도커 이미지 + 여러 개의 도커파일을 순차적으로 실행시켜 컨테이너로 만들어주는 명령어 파일을 말합니다! 도커 파일이 이미지를 만드는 거니까... 여러 개의 이미지를 실행 할 때 필요한 환경설정 값들을 도커 컴포즈에서 모두 관리한다고 생각하시면 됩니다! 1. image docker-compose 안에서 베이스 이미지를 지정할 수 있는데, docker build를 할 때와 마찬가지로 이미지가 로컬 환경에 없다면 해당 이미지를 다운받아서 base 이미지로 사용합니다. : services: proxy: image: nginx:latest # nginx 이미지 2. build build는 docker-compose에서 dockerfile을 이용해 자동..
[Dockerfile] Dockerfile express 연동하기
dockerfile을 이용해서 node.js 기반, express로 구현한 웹 서버를 docker에 올리는 방법을 테스트해보겠습니다. 먼저 전체적인 파일의 구조는 아래와 같습니다. 테스트한 운영체제는 window 10 환경입니다! 도커도 window 버전을 사용했습니다. 전체적인 소스는 아래 github에서 확인할 수 있습니다. https://github.com/kimdongjang/dockerfile_nodejs_test1 GitHub - kimdongjang/dockerfile_nodejs_test1 Contribute to kimdongjang/dockerfile_nodejs_test1 development by creating an account on GitHub. github.com 1. exp..
[Dockerfile] Dockerfile이란? Dockerfile 옵션
Dockerfile은 인프라 구성을 효을적으로 관리하기 위한 파일로, 쉘 파일과 비슷한 dockerfile을 작성해서 해당 도커 이미지를 사용자의 환경에 맞춰서 운영할 수 있도록 합니다. 위 도커 파일을 build하게 되면 도커의 이미지를 생성할 수 있습니다! 웹서버를 도커에서 구동하려면 1) 특정 웹서버 이미지를 도커를 통해 다운 2) 웹서버 이미지를 컨테이너로 실행 3) 컨테이너에 웹서버에 빌드할 서버파일을 import 4) 서버를 구동 이러한 순서로 진행했는데, dockerfile을 사용하게 되면 이 순서가 엄~청 단축됩니다! 1) 서버파일 측에서 dockerfile을 작성 2) dockerfile build해서 웹서버 이미지를 생성 3) 방금 빌드한 이미지를 컨테이너로 실행하면 자동으로 서버가 구..
[Jenkins] 젠킨스와 깃허브 연동(GitHub Web Hook)
먼저 젠킨스를 설치했다는 가정 하에 글을 작성합니다. 만약 젠킨스 설치가 아직 안되신 분은 아래의 도커에 젠킨스 설치하는 방법을 보시고 그대로 다시 따라하시면 될 것 같습니다! https://narup.tistory.com/202 [Docker] 도커에 젠킨스 설치, 도커에 젠킨스 연동 도커에 빌드 관리 도구인 젠킨스를 설치(연동)해보겠습니다. 도커는 현재 윈도우에 설치한 상태로 진행하고 있습니다! 1. 젠킨스 이미지 다운로드 윈도우 power shell을 여시고 아래와 같은 명령어 narup.tistory.com 도커를 사용하지 않는다면 아래 링크를 참고해주세요 https://narup.tistory.com/259 [Jenkins] Linux EC2에서 Jenkins 설치하기(Java 11버전 설치) ..
[Docker] 도커에 젠킨스 설치, 도커에 젠킨스 연동
도커에 빌드 관리 도구인 젠킨스를 설치(연동)해보겠습니다. 도커는 현재 윈도우에 설치한 상태로 진행하고 있습니다! 1. 젠킨스 이미지 다운로드 윈도우 power shell을 여시고 아래와 같은 명령어를 입력해 젠킨스 이미지를 다운로드 해줍니다. 젠킨스는 lts 버전을 사용합니다. # docker pull jenkins/jenkins:lts 저는 여기서 편의상 포트번호를 8085번으로 지정했습니다. docker 컨테이너의 이름은 jenkins로 지정했고요! 2. 젠킨스 컨테이너 설치 및 실행 # docker run -itd -p 8085:8080 -v /jenkins:/var/jenkins_home –name jenkins -u root jenkins/jenkins:lts 이미지에서 컨테이너가 잘 실행되면..
[Docker] 도커 명령어 정리
docker 명령어 정리 1. 도커 이미지 검색 # docker images 현재 Host에 다운받은 이미지들을 출력하는 명령어 1-1. 도커 단일 이미지 삭제 # docker image rm 추가적으로 해당 이미지를 컨테이너에서 사용하고 있으면 이미지를 삭제할 수 없습니다. 1-2. 도커 모든 이미지 삭제 # docker rmi $(docker images -q) -f (docker image -q)라는 명령어는 이미지의 ID를 출력하는 명령어입니다. 2. 도커 컨테이너 생성 생성과 동시에 실행까지! # docker run --name 옵션 -i : 사용자가 입출력을 할 수 있는 상태 -t : 가상 터미널 환경을 에뮬레이션하겠다는 말 -d : 컨테이너를 일반 프로세스가 아닌 데몬프로세스(백그라운드) 형..