
지난 글에서 Jenkins와 Github Webhooks를 이용하여 배포 자동화하는 방법에 대해 알아 보았다. 이번 글에서는 지금까지 구현한 프로젝트 내용과 Nginx를 이용하여 무중단 배포가 이루어 질 수 있도록 로드밸런싱을 설정하는 방법에 대해서 알아보자. 1. VM 인스턴스 추가 Rolling 배포를 구현하기 위해 서버를 2개이상 두어야 할 필요가 있다. 요구 성능에 따라서 여러개의 서버를 둘 수도 있지만, 서울 region에 서버를 4개를 초과하여 만들 수 없기 때문에 편의상 2개의 인스턴스만 이용해 보도록 하자. 우선 GCP에서, 이전에 생성해 둔 워커 인스턴스와 같은 설정으로 VM 인스턴스를 하나 더 추가하자. 그리고 이전 글에서 했던것 처럼 인스턴스에 SSH로 접속하여 lsof와 java를 ..

지난 글에서 Jenkins에서 VM인스턴스에 SSH로 접속하도록 설정하는 과정을 설명했다. 이번에는 Jenkins와 Github Webhooks를 이용하여 배포를 자동화하는 방법에 대해 알아보자. 프로젝트를 만드는 방법과, Git과 Github를 사용하는 방법에 대해서는 생략하겠다. 1. Jenkins에서 새로운 Item 생성하기 Jenkins의 대시보드에서 새로운 Item을 생성하자. Item의 이름을 입력하고 Freestyle project를 선택하고 OK를 클릭하자. 2. Github와 연동하기 OK를 눌러 Item을 생성하면, 아래와 같은 내용들을 설정할 수 있는 창이 나온다. 또는 Jenkins에서 생성한 Item에서 구성을 클릭하면 위의 내용들을 변경할 수도 있다. 소스 코드 관리에서 Git을..

지난 글에서 GCP VM인스턴스에 Jenkins 설치하는 과정을 설명했다. 젠킨스를 이용하여 빌드/배포를 자동화하기 위해서는 젠킨스가 인스턴스에 접속할 필요가 있다. 인스턴스에 접속할때에는 보안상 젠킨스만 VM인스턴스에 접근할 수 있도록 만들어 주어야 할 필요가 있는데 이때, SSH 접속을 이용하여 해결할 수 있다. 인스턴스에 SSH로 접속하도록 설정하는 방법을 알아보자. 대략적인 방식은 아래와 같다. 먼저 Jenkins에서 비대칭키를 생성하고 공개키를 인스턴스에 등록해 주면, 이후 인스턴스의 공개키는 Jenkins가 개인키로 복호화할 수 있으므로 Jenkins만 인스턴스에 접근할 수 있게 된다. 위의 내용들을 설정해 보자. 1. Jenkins에서 개인키와 공개키쌍 생성하기 젠킨스가 실행된 vm 인스턴스..

GCP의 VM 인스턴스를 이용하여 Jenkins를 설치하고, 초기 설정세팅을 하는 방법에 대해 알아보자. 1. GCP VM 인스턴스 생성하기 VM 인스턴스를 생성하면서 설정한 내용들은 다음과 같다. 아래와 같이 이름을 설정하고 리전은 서울을 선택했다. 머신 유형은 이전에 micro로 설정하였는데 작은 메모리 때문인지 젠킨스가 잘 동작하지 않아서 넉넉하게 medium으로 설정했다. 부팅 디스크는 CentOS 7 버전을 사용했다. 아래와 같이 방화벽 설정에 체크해 주었다. 2. VM 인스턴스에 패키지 설치하기 Jenkins를 설치하기 전에 maven 이나 gradle을 설치해 주자. 먼저 VM 인스턴스에 SSH로 접속해 보자. 아래의 그림에서 SSH를 누르면 된다. yum 명령어를 이용하여 패키지 설치하기 ..

EC2 인스턴스 생성하기에 이어서 MobaXterm을 이용하여 EC2에 접속해보자. [AWS] EC2 인스턴스 생성하기 Amazon EC2 란? Elastic Compute Cloud 줄여서 EC2 EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스다. EC2를 이용하면 하드웨어에 투자하여 서버를 구축할 필요없이 애플리케이션을 개발하고 배포할 수 있다 barbera.tistory.com MobaXterm 이란 ? MobaXterm이란 원격 SSH(Secure Shell) 접속을 지원하는 프로그램이다. SSH 란 ? 시큐어 셸(Secure SHell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그..

Amazon EC2 란? Elastic Compute Cloud 줄여서 EC2 EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스다. EC2를 이용하면 하드웨어에 투자하여 서버를 구축할 필요없이 애플리케이션을 개발하고 배포할 수 있다. 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있다. 또한 요구사항에 따라 EC2의 확장과 축소를 쉽게 처리할 수 있다는 장점이 있다. AMI 란? Amazon Machine Image(AMI)는 소프트웨어 구성이 기재된 템플릿이다(예: 운영체제, 애플리케이션 서버). AMI에서 인스턴스를 바로 시작하실 수 있는데, 이 인스턴스는 AMI의 사본으로, 클라우드에서 실행되는 가상 서버이다. 다음 그림과 같이, 한 AMI로 여러 인스턴스를 ..