갬미의 성장일기

Day 58 - JAVA, Gradle 설치, CICD 준비 본문

Cloud/Cloud 공부일기

Day 58 - JAVA, Gradle 설치, CICD 준비

갬미 2022. 4. 1. 23:20

오늘 배운 내용

- JAVA, Gradle 설치, 환경변수 설정

- nginx-tomcat-mysql 을 이요한 3tier 구성 ( redis 사용 )


code - 사람이 이해하는 언어 --> 컴파일 하여 실행파일로 만든다면 - 컴퓨터가 이해할 수 있는 언어

코드를 빌드하는 툴로 gradle을 사용한다

 

오늘은 nginx-tomcat 을 사용할 예정인데 tomcat이 java기반이기 때문에 java를 설치해야한다

JAVA 설치

https://www.oracle.com/java/technologies/downloads/#jdk18-windows

installer 버전으로 다운받는다

 

exe 실행(기본 그대로 next, 마침 클릭) 및 설치 확인

설치 확인

시스템 환경변수 편집

- 환경 변수 추가

path 편집

 

gradle 설치

소스코드 생성, 수정 후 배포할 수 있도록 하는 tool인 Gradle을 설치한다 (CICD 할것이라서)

 

https://gradle.org/install/

 

Gradle | Installation

Install the Gradle build tool on Linux, macOS or Windows, either manually or using a package manager like SDKMAN! or Homebrew.

gradle.org

installing manually 부터 따라하며 된다

다운로드 후 C:\Gradle 생성 후 다운받은 gradle-7.4.1 bin gradle-7.4.1 C:\gradle 아래에 위치시킨다

 

환경변수 편집

새 터미널 열고 설치 되었나 확인하기

 

Redis 

오늘은 매번 쓰던 image가 아닌 다른 image로 was server를 구성하고 이미지를 빌드하여 사용했다

이때 404 에러가 나면 원인은 세션처리를 못했거나, DB와 연결을 못했거나 둘 중 하나이다

세션처리를 redis에서 따로 처리하면 된다

redis = in memory database 

memory database -> data를 받아 memory에서 처리한다 (빠르다)

서버가 내려가더라도 DISK에 저장된 데이터를 읽어서 메모리에 로딩 하기때문에 세션이 사라지지 않는다

단점은 휘발성을 가진다는것 (전원을 끄면 사라짐)

 

 

in-memory DB는 왜 더 빠를까

in-memory DB는 disk-based DB와 달리 말 그대로 메모리에 데이터를 저장한다. 외부 저장 장치에 데이터를 저장하지 않고 메모리에서 데이터를 읽고 쓴다. 메모리 디스크 간 병목이 없기 때문에 disk-base

2kindsofcs.tistory.com

 

사용자가 tomcat에 접속하면 세션처리를 pod가 아닌 별도로 처리하는 db를 둘것이며 이를 memory db (redis)로 사용하도록한다

pod는 세션정보를 가지고 있지 않아서 session affinity rule로 인한 오류가 사라진다

 ( = DB만 잘 잡아주면 404가 안뜬다)

 

미니과제

nginx-tomcat 3tier 만들기

DB tier
image: hifrodo/msa-devops:mysql_1
DB name: boot_board


WAS tier
image: gymin97/msa-dev:redis-tomcat_v2


WEB tier
image: gymin97/msa-dev:nginx_v1

관련 yml은 git에 업로드 했다

 

GitHub - gymin97/k8s_3tier: 쿠버네티스 공부 저장소입니다

쿠버네티스 공부 저장소입니다. Contribute to gymin97/k8s_3tier development by creating an account on GitHub.

github.com

 

오늘의 회고

  • 하아 redis 이미지를 만드는데 캐시가 남아있어서 소스코드 수정하고 다시 빌드해도 전에 남겼던 흔적이 사라지지를 않았다 .. 그래서 캐시를 날리고 다시 빌드했는데 되었다 .. 근데 수정하면 수정한만큼 layer가 새로 올라가야 정상 아닌가,,,?! !! 뭘까? ,, 자꾸 도커가 image를 싹 날리고 새로 만들어도 ,, 레포지토리를 다시 만들어도 .. build만 하면 같은 id로 생성되어서 혼자 오싹했다 결국은 캐시 날리고 새로 만든 이미지 + 새로운 클러스터 조합으로 하니까 되었는데 ,,,, 뭐지? ㅜ
  • 오늘은 이미지 빌드가 안돼서 혼자 4~5시간 삽질한 것 같다 .. 지금 지쳤나요? 네...

Comments