본문 바로가기

분류 전체보기75

[Jenkins] Jenkins로 Nginx 및 Spring Boot 컨테이너를 원격서버에 띄워서 Reverse Proxy 구성하기 이번글에서는 젠킨스를 이용하여 nginx 컨테이너 및 Srpingboot 컨테이너를 원격서버에서 실행시킨 후에 nginx 컨테이너로 요청이 들어오면, 이 요청을 SpringBoot 컨테이너로 전달하는 과정을 진행하려고한다. 이러한 과정을 Reverse Proxy 라고 하는데, 클라이언트가 서버로 요청을 하면 WAS로 직접 접근하지 않고 Web서버인 nginx로 먼저 접근한다. 그러면 nginx는 이를 WAS에게 전달해주는 것이다. 왜 이러한 구조로 서버를 구성하는 것일까? 이유가 궁금하다면 아래의 블로그를 참고하도록하자. Nginx Reverse Proxy 사용하기 호주로 해외여행을 간다고 생각해보자. 중국을 경유하여 가는 비행기 티켓을 구매했다. Proxy랑 엮어보면 인천공항은 출발지, 중국은 Prox.. 2021. 2. 7.
[SpringBoot] TimeZone 설정 후 출력하기 현재 사용자들에게 서비스하고 있는 프로젝트가 있다고 치자, 이 프로젝트를 다른 국가에 런칭해야 하는 상황 이라면? 당연히 현지에 있는 시간에 맞춰서 사용자에게 시간을 제공해줘야한다. 이럴 때, 사용하는것이 TimeZone 설정이다. 이번 글에서는 스프링부트에서 타임존을 어떻게 설정하고 어떤식으로 출력해서 사용하는지 알아보도록하자. 1. TestCode로 확인하기 우선 테스트케이스에서 타임존설정을 해서 국제표준시간과 한국시간을 출력해서 설정해 따라 결과가 달라지는 것을 보도록하자. @RunWith(SpringRunner.class) @SpringBootTest public class TimeZoneTest { @Test public void queryFilterForActionLogBotTest() { T.. 2021. 2. 3.
[Jenkins] Jenkins를 이용하여 원격 서버에 SpringBoot 컨테이너 띄우기 이번글에서는 GCP(Google Cloud Platform) VM 인스턴스 위에서 실행 중인 젠킨스에서 원격 서버인 AWS EC2 인스턴스로 SpringBoot 프로젝트를 빌드한 jar 및 Dockerfile 을 전송하여 도커이미지로 변환 후 컨테이너로 띄우는 실습을 해볼것이다. 기존에 Jenkins- Github연동이 되어있다는 가정하에 진행되는 과정이니, 만약 연동이 되지 않았다면 아래의 글을 먼저 진행하고 오도록 하자. [Jenkins] Jenkins & Github 연동 및 자동배포 구성하기 1 이 글을 시작으로 jenkins와 github의 특정 프로젝트를 연동 시켜두고 해당 프로젝트에서 push 발생 시, jenkins가 이것을 인식하고 자동으로 배포하는 과정에 대해서 진행하려고한다. 배포될 .. 2021. 1. 24.
[VirtualBox] VirtualBox 관련 설정 관련 블로그 정리 Centos yum 명령어 동작 실패시 VirtualBox위에 Centos를 설치하고 yum 명령어를 내렸더니 아래와 같은 오류가 나는경우 아래의 블로그를 참조하도록하자. CentOS 설치 후 yum 이 안될 때 오랜만에 CentOS를 설치했습니다. 설치 후 yum update 가 안먹어서 해결방법을 찾았고 기록하기 위해 post 합니다. 위 화면과 같이 root 계정으로 로그인 후 yum update를 하면 에러가 나오고 있습니다. 14: dejavuqa.tistory.com VirtualBox 네트워크 설정 VirtualBox 네트워크 설정에 관련한 정보를 보려면 아래의 블로그를 참고하도록 하자. VirtualBox, 가상 네트워크 설정하기 VirtualBox에 OS를 설치하고 Network이 되는지.. 2021. 1. 20.
[Docker] AWS EC2(Red Hat Linux)에서 Jenkins 컨테이너 실행하기 이번 글에서는 Docker로 Jenkins 이미지를 다운로드받아서 Container로 띄우는 과정을 알아보도록하자. 1. Jenkins Image 받기 젠킨스 Image 다운로드를 받는데, lts는 Long Term Support의 약자로 오랜기간 지원해주는 버전을 받는다고 알아두자. # 젠킨스 이미지 받기 sudo docker pull jenkins/jenkins:lts * 만약 root user 권한이 아닌 현재 유저의 권한으로 docker 명령어를 사용하려면, 해당 user가 docker를 이용할 수 있도록 설정하도록하자. root가 아닌 user로 docker 명령어를 실행하게 될 경우 아래와 같은 에러문구가 나올것이다. 현재 유저를 확인하고 도커 그룹에 추가하도록하자. 그런 후에 변경사항을 적용.. 2021. 1. 17.
[Docker] AWS EC2(Red Hat Linux)에 Docker설치 이번글에서는 AWS EC2(RHEL환경)에 Docker를 설치하는 과정에대해 알아보도록하자. Centos 환경도 동일한 과정으로 설치가 가능하니 이점을 참고하도록하자. 1. yum 업데이트 sudo yum -y update * 도커설치 시, 아래와 같은 에러가 발생할 수 있다. https://download.docker.com/linux/centos/2/x86_64/stable/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found Trying other mirror. 혹시나, 위와 같은 에러가 발생하는 경우 아래의 글의 코멘트를 참고하도록 하자. Docker CE Stable - x86_64 Repo not available : HTTPS Error .. 2021. 1. 16.
[Jenkins] Jenkins & Github 연동 및 자동배포 구성하기 3 이번 글에서는 jenkins에서 스프링부트 프로젝트를 github에서 가져와 빌드한 후 특정 서버로 .jar파일 형태로 전송하여 해당 .jar파일을 실행시키는 과정에 대해 알아보도록하자. (이 글에서 실습한 내용은 GCP 인스턴스 위의 젠킨스에서 -> AWS EC2 인스턴스로 파일 배포) 1. jenkins ssh 플러그인 설치 젠킨스에서 스프링부트 서버를 .jar파일로 생성하고 특정 서버로 전송하기 위해서는 ssh를 이용해야하는데, 젠킨스에서는 이를 플러그인으로 제공해준다. 아래와 같이 Publish Over SSH 플러그인을 설치하도록하자. 2. Publish over SSH 세팅 플러그인 설치가 완료되었다면 젠킨스의 시스템 설정으로 가서 아래와 같이 설정값 들을 입력하도록하자. 그런 후에 Test .. 2020. 12. 31.
[Jenkins] Jenkins & Github 연동 및 자동배포 구성하기 2 이번글에서는 github의 특정 repository에 push가 발생했을때, jenkins가 상황을 인지하고 배포하는 과정에 대해 알아보도록하자. 1. Github Webhook 세팅 Webhook 이란? 웹훅이란? 위 사진은 웹훅을 정말 잘 설명해주고 있다. simsimjae.medium.com 우선, Webhook 설정을 위해 jenkins 메인 대시보드에서 아래의 경로로 이동하도록하자 (Jenkins 관리 > 시스템 설정) Jenkins URL로 Github에서 요청이들어올 것이다. 이 부분을 확인하도록하자. 확인 후에 Webhook을 설정할 깃허브 레포지토리에서 아래와 같은 경로로 이동하도록하자. (Settings > Webhooks > Add webhook) 해당 페이지로 이동하면 Payload.. 2020. 12. 30.
[Jenkins] Jenkins & Github 연동 및 자동배포 구성하기 1 이 글을 시작으로 jenkins와 github의 특정 프로젝트를 연동 시켜두고 해당 프로젝트에서 push 발생 시, jenkins가 이것을 인식하고 자동으로 배포하는 과정에 대해서 진행하려고한다. 배포될 프로젝트는 spring boot 프로젝트로 진행할 것이고 빌드 툴은 gradle을 사용할 예정이다. (필자는 젠킨스를 도커 컨테이너로 실행시켰으니 이점을 참고하길 바람 - 도커환경이 아니어도 상관없음) 일단 이번 글에서는 젠킨스로 깃허브 레포지토리의 소스코드를 pull하여 빌드 후에 실행시키는 과정에 대해 알아보도록하자. 0. 환경구성 이 글에서는 AWS 인스턴스 환경에서 진행될 예정이고 jenkins도 해당 인스턴스 위에서 실행될 예정이다. 또한 프로젝트 코드도 해당 인스턴스 위에 배포될 예정이다. A.. 2020. 12. 29.