전체 보기
🍀

AWS EC2 Linux 인스턴스에 JDK 설치 및 실행

작성일자
2023/04/17
태그
DIARY_DEVELOP
프로젝트
NOI
책 종류
1 more property

개발

현재 몸담은 스타트업에서 진행 중인 NOI 프로젝트는 AWS 지원을 빠방하게 받아 크레딧이 많기에 개발도 그냥 AWS EC2 환경에서 진행 중이다! 로컬 컴퓨터에서 스프링부트 프로젝트를 개발할 땐 매번 이전에 환경설정 해둔 곳에서 그대로 시작해서 환경설정 할 게 따로 없었고 배포만 EC2 환경에서 해줬는데, 이번엔 개발 환경부터 초심으로 돌아가 세팅해야 했다. Window가 아닌 Linux에서! 처음 해보는 개발은 매번 기대된다!
사실 오늘 내용은 이전 TIL들과도 연결되니 궁금하신 분들은 앞에 내용도 읽어보고 오길 바란다!

Linux JDK 설치 및 Gradle 실행

IntelliJ 에서 JDK 설치 → 잘 안되어서 실패,,,
Oracle JDK 설치 → 성공
아래 링크에서 jdk-11.0.18_linux-x64_bin.rpm 설치
로컬에 설치된 rmp 파일을 linux로 보내기
키 경로 : C:\Users\choo0\Documents\AWS\noi\t01053604256
로컬 경로 : C:\Users\choo0\Downloads\jdk-11.0.18_linux-x64_bin.rpm
linux 경로 : /home/t01053604256/workspace/JDK/
사용자계정@서버 Host : t01053604256@dev.noisports.kr
scp -i {Key 경로} -r {로컬 폴더 경로} {사용자 계정}@{서버 Host}:{서버 저장 경로}
scp -i C:\Users\choo0\Documents\AWS\noi\t01053604256 -r C:\Users\choo0\Downloads\jdk-11.0.18_linux-x64_bin.rpm t01053604256@dev.noisports.kr:/home/t01053604256/workspace/JDK/
linux에서 JDK 파일 업로드한 디렉토리로 이동하고 아래 명령을 실행하여 패키지를 설치
sudo dnf install jdk-11.0.18_linux-x64_bin.rpm
java 버전 선택하고, 버전 확인
Intellij > File > Project Structure > SDK > 11로 변경
Gradle 실행
갖은 에러가 났는데 프로젝트 생성 시 버전 호환 문제가 있게 생성한 거 같아서 build.gradle 아래와 같이 코드 수정해서 버전 맞춰줌
plugins { id 'java' id 'org.springframework.boot' version '2.7.8' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } group = 'noilab' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' } tasks.named('test') { useJUnitPlatform() }
JavaScript
복사
Setting에서 gradle 검색해서 나오는 Gradle JVM 11로 바꿔줌
드디어,,,,,,,,,,,,,,,,,,,,,,,,,,,, 그리웠던 run 버튼이 뜬다,,,, 후,,,,ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
실행 → 에러 났지만 rds 만들어서 성공!
아래 에러가 났따
2023-04-16 17:04:07.817 ERROR 1088967 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 2023-04-16 17:04:07.818 WARN 1088967 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 2023-04-16 17:04:07.822 INFO 1088967 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2023-04-16 17:04:07.836 INFO 1088967 --- [ restartedMain] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2023-04-16 17:04:07.861 ERROR 1088967 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed
JavaScript
복사
원인은,,, 로컬에서 돌리고 있는 mysql은 linux 서버에서 사용할 수 없어서….
서버에 개발환경 조성하는 게 과연 옳은 선택이었을까,,
그래서 rds를 생성해줬다,,, 어차피 써야하는거 먼저 만들었다고 생각하지 뭐 ^^…..
갈수록 그냥 로컬에서 개발하고 docker로 배포할 걸 약간 회의감이 들지만,,
또 언제 서버에다 스프링부트 개발 환경 다 조성하는 경험을 할까 싶어서 다 배워가는 과정이라고 긍정적으로 생각하려 노력하는 중,,
rds 만들기..!는 3월 4일 til을 참고했다. 정리 해둔 과거의 나야 고마워,,,,,,,
RDS 생성
application.properties의 위 코드를 아래 코드로 수정해줬다!
spring.datasource.url=jdbc:mysql://localhost:3306/noilab?serverTimezone=Asia/Seoul
JavaScript
복사
spring.datasource.url=jdbc:mysql:///{your hostname}:3306/noilab?serverTimezone=Asia/Seoul
JavaScript
복사
자바 환경 변수 설정 → 잘 안되어서 일단 패스
참고

AWS SA 컨설팅

하루 정리

TIL 작성하기
노이랩
초기 환경 설정
3시반 AWS SA 컨설팅