티스토리 뷰
이전 글
간단한 토이 프로젝트 - 0 (프로젝트 의도)
간단한 토이 프로젝트 - 1 (깃허브,슬랙 연동)
간단한 토이 프로젝트 - 3 (springboot 게시판 생성)
간단한 토이 프로젝트 - 4 (jenkins 자동 배포 설정)
간단한 토이 프로젝트 - 5 (nginx와 톰캣 연동)
목표
- gcp에 jenkins, nginx, springboot, mysql 인스턴스를 설치한다
의도
가장 인지도가 높은 aws로 구성하고 싶었으나 free tier로 한 개의 인스턴스만 생성할 수 있기에 여러 인스턴스를 무료로 이용할 수 있는 gcp를 선택했다.
작업
(구글 아이디는 있다고 전제한다.)
1. gcp(google cloud platform) (https://cloud.google.com/gcp)에 접속 후 Console로 이동한다.
2. VM 인스턴스 메뉴로 이동한다.
3. 활성화 작업 후 상단의 인스턴스 만들기를 선택한다.
*이름 : 인스턴스별로 구별될 수 있게 생성
*리전 : gcp가 생성될 위치를 선택한다. 인스턴스간에 리전이 다를 경우 속도에 이슈가 있으니 되도록 같은 리전으로 맞춰주자.
*머신 구성 : 성능이 좋아질수록 유지비용이 높아진다. 이번에 만들어볼 프로젝트들은 e2-micro로 충분하다.
** jenkins는 e2-small 이상을 선택해준다. micro로 선택할 경우 build하다가 멈출 수도 있다.
*** 본인은 e2-medium으로 생성했다.
*부팅 디스크 : 본인이 잘 다루거나 연습하고싶은 부팅 디스크를 선택하자. 본인은 CentOS7로 선택했으며 이후 설치 과정도 CentOS7을 기준으로 설명한다.
*방화벽 : HTTP, HTTPS 트래픽을 허용하지 않으면 이후 설정이 번거롭다. 생성시에 꼭 선택해주도록 하자.
이외에 설정은 기본 설정으로 한다.
3. Google Cloud SQL로 MySQL 서버를 생성해보자.
1)SQL 메뉴로 이동한다.
2) 인스턴스 만들기를 선택 후 MySQL 선택
* 인스턴스 ID와 비밀번호는 이후 MySQL server 접속에 필요하다. 꼭 메모해두도록 하자.
*본인은 MySQL 버전을 8.0으로 선택했다.
*인스턴스의 리전과 동일한 리전을 선택해주자.
이외에 설정은 기본 설정으로 한다.
3) 생성된 db 인스턴스의 승인된 네트워크를 수정한다.
3-1) db-instance를 선택한다.
2) 좌측 연결탭으로 들어간 다음 네트워크 추가 선택
3-2) 식별할 수 있는 구체적인 이름과 ip를 등록한다.
본인은 gcp에 등록되있는 api 인스턴스와 로컬 ip를 등록했다. (ex. 192.0.0.1/32)
* gcp ip는 외부 ip를 적는다.
** 내 ip를 모를 경우 네이버에 ip 확인이라고 검색해보자.
4. nginx, jenkins를 설치하자.
- nginx 설치
* gcp는 기본적으로 yum이 설치되있다. 이후 작업은 yum으로 각 어플리케이션들을 설치한다.
1)nginx instance에 접속
2) sudo yum install nginx -y 입력
3) nginx -version 입력, 잘 설치됬는지 확인
4) systemctl start nginx 입력 (nginx 실행)
5) systemctl status nginx 입력 (nginx 상태 확인)
*아래 이미지처럼 active(running)이 나오면 정상적으로 실행되고 있는 것으로 판단할 수 있다.
6) nginx instance의 외부 ip로 접속해서 nginx 화면이 나오는지 확인
*protocol이 http인지 확인하자. gcp의 외부ip 바로가기 버튼은 https로 접속하기 때문에 홈페이지가 나오지 않는다.
-jenkins 설치 (jdk, wget, git, jenkins 설치 및 8080포트 오픈)
1) jdk를 설치한다. springboot 버전에 맞추도록 하자.
*sudo yum list java*jdk-devel 명령어 입력, 설치 가능한 목록 확인
본인은 jdk 11 64bit를 설치했다. (sudo yum install java-11-openjdk-devel.x86_64 -y)
2) 젠킨스를 설치해오기 위해 wget을 먼저 설치한다.
sudo yum install wget -y
3) 젠킨스 의존성을 추가한 뒤 제킨스를 설치한다.
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install jenkins -y
4) 젠킨스가 정상적으로 설치되있는지 확인하고 서비스를 시작한다.
sudo systemctl start jenkins
sudo systemctl status jenkins
5-1) 젠킨스는 기본적을 8080포트로 오픈되지만 방화벽에 이를 허용하는 규칙이 없다. VM 인스턴스 하단의 방화벽 규칙 설정을 누른다.
5-2) 방화벽 규칙 만들기를 선택한다.
5-3) 아래 이미지를 참고해 규칙을 추가한다.
6) 젠킨스 인스턴스의 http://외부아이피:8080 으로 접속한다.
7) 젠킨스 인스턴스의 /var/lib/jenkins/secrets/initialAdminPassword 파일을 읽어 암호를 입력한다.
8) 좌측 기본 설치 선택
이후 어드민 계정은 취향껏 작성한다.
'프로그래밍 > 메모' 카테고리의 다른 글
간단한 토이 프로젝트 - 4 (0) | 2022.03.11 |
---|---|
간단한 토이 프로젝트 - 3 (0) | 2022.03.11 |
간단한 토이 프로젝트 - 1 (0) | 2022.03.10 |
간단한 토이 프로젝트 - 0 (0) | 2022.03.10 |
왜 정적 패키지 이름은 js, css, images일까 (0) | 2022.02.28 |
- Total
- Today
- Yesterday
- spring boot jenkins
- HTML
- 토이프로젝트 회고
- GitHub
- nginx to 내장톰캣
- 오라클
- springboot jpa
- nginx to tomcat
- java.lang.AbstractMethodError
- springboot
- nginx 내장톰캣 연결
- nginx to springboot tomcat
- CI/CD
- oracle
- 스프링부트 자동배포
- github webhook
- 오라클 계정 오류
- nginx 내장톰캣 설정
- webhook
- github webhook jenkins
- 깃허브 웹훅 젠킨스
- spring boot
- nginx 톰캣 설정
- slack
- 스프링부트 젠킨스
- 젠킨스 웹훅
- 국비 프로젝트
- oracle.jdbc.driver.T4CConnection.isValid(I)Z
- 젠킨스 자동 배포
- jenkins webhook
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |