🍀

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

작성일자
Apr 17, 2023
태그
DIARY_DEVELOP
프로젝트
NOI
책 종류

개발

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

Linux JDK 설치 및 Gradle 실행

IntelliJ 에서 JDK 설치 → 잘 안되어서 실패,,,
  • File > Project Structure에 들어가면 아래와 같이 뜬다.
    • notion image
    • 처음 들어간 사람들은 SDK 값이 지정되어 있지 않을 것이다. 필자는 20으로 다운받았던 이력이 있어서 저렇게 뜬다.
  • 여기서 SDK > 화살표 클릭 > Add SDK > Download JDK를 클릭하면 아래와 같이 뜬다.
    • notion image
  • 위 값을 아래와 같이 바꾸고 Download를 클릭한다. (java 11버전 기준)
    • notion image
      Amazon Corretto란? (With ChatGPT)
      Amazon Corretto 11.0.18은 Amazon이 제공하는 무료, 오픈 소스, 장기 지원(LTS)되는 Java Development Kit(JDK)의 하나입니다. 이 JDK는 OpenJDK 프로젝트의 기반 위에 구축되어 있으며, Java 11의 최신 기능과 보안 업데이트를 제공합니다.
      Amazon Corretto는 Amazon이 자체적으로 사용하는 서비스 및 솔루션에서 안정적이고 안전한 Java 버전을 제공하기 위해 개발되었습니다. 또한 Oracle JDK의 상용화로 인해 발생하는 비용 문제를 해결하기 위한 대안으로 선택될 수 있습니다.
      Amazon Corretto 11.0.18은 JDK 11.0.18 버전의 Amazon Corretto 구현체이며, 2024년 8월까지 장기 지원이 제공됩니다.
  • 다시 아래 화면으로 돌아가서 SDK를 방금 다운 받은 것으로 택해주고 Language level은 SDK default로 지정해준다.
    • notion image
  • 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/
        • notion image
    • linux에서 JDK 파일 업로드한 디렉토리로 이동하고 아래 명령을 실행하여 패키지를 설치
      • sudo dnf install jdk-11.0.18_linux-x64_bin.rpm
        • notion image
          notion image
    • java 버전 선택하고, 버전 확인
      • notion image
    • Intellij > File > Project Structure > SDK > 11로 변경
      • notion image
  • Gradle 실행
    • 갖은 에러가 났는데 프로젝트 생성 시 버전 호환 문제가 있게 생성한 거 같아서 build.gradle 아래와 같이 코드 수정해서 버전 맞춰줌
      • Setting에서 gradle 검색해서 나오는 Gradle JVM 11로 바꿔줌
        • notion image
      • 드디어,,,,,,,,,,,,,,,,,,,,,,,,,,,, 그리웠던 run 버튼이 뜬다,,,, 후,,,,ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
    • 실행 → 에러 났지만 rds 만들어서 성공!
      • 아래 에러가 났따
        • 원인은,,, 로컬에서 돌리고 있는 mysql은 linux 서버에서 사용할 수 없어서….
          • 서버에 개발환경 조성하는 게 과연 옳은 선택이었을까,,
            • 그래서 rds를 생성해줬다,,, 어차피 써야하는거 먼저 만들었다고 생각하지 뭐 ^^…..
            • 갈수록 그냥 로컬에서 개발하고 docker로 배포할 걸 약간 회의감이 들지만,,
            • 또 언제 서버에다 스프링부트 개발 환경 다 조성하는 경험을 할까 싶어서 다 배워가는 과정이라고 긍정적으로 생각하려 노력하는 중,,
          • rds 만들기..!는 3월 4일 til을 참고했다. 정리 해둔 과거의 나야 고마워,,,,,,,
            • RDS 생성
              • RDS - 데이터베이스 생성
              • 아래와 같이 설정 후 완료 버튼 클릭해 생성
                • 엔진 옵션 : MySQL
                • 엔진 버전 : MySQL 8.0.32
                • 템플릿 : 프리 티어
                • 인스턴스 : db.t2.micro
                • 스토리지 - 할당된 스토리지 : 20 GIB
                • 스토리지 - 자동 조정 활성화 체크 해제
                • 네트워크
                  • EC2 컴퓨팅 리소스에 연결함에 체크
                  • 퍼블릭 액세스 아니오로 체크
                • 데이터베이스 옵션
                  • 초기 데이터베이스 이름 noilab으로 지정해서 db 생성
              • 파라미터 설정
                • 왼쪽 - 파라미터 그룹 - 파라미터 그룹 생성
                  • notion image
                • 생성된 파리미터 그룹 클릭 - 파리미터 편집 클릭 - 아래 설정 후 변경 사항 저장 클릭
                  • time_zone : Asia/Seoul
                  • character_set 으로 검색해서 나오는 것들 : utf8mb4
                  • collation 검색해서 나오는 것들 : utf8mb4_general_ci
                  • max_connections : 150
              • 파라미터 그룹을 db에 연결
                • 왼쪽 - 데이터베이스 - 인스턴스 체크 - 수정
                  • DB 파라미터 그룹을 default에서 방금 생성한 것으로 변경
                  • 계속 클릭
                  • 즉시 적용 선택 후 DB 인스턴스 수정 클릭
                  • 작업 - 재부팅 클릭 (선택사항)
              • PC에서 RDS 접속 테스트
                • 왼쪽 - EC2 - 네트워크 및 보안 - 보안 그룹
                  • EC2에 사용된 보안 그룹 ID, 보안 그룹 이름 복사
                • 왼쪽 - 데이터베이스 - 연결&보안 - VPC 보안 그룹 선택
                  • 인바운드 규칙 - 인바운드 규칙 편집
                    • 복사한 EC2 보안 그룹 ID와 본인 IP를 RDS 보안 그룹의 인바운드로 추가
                      • notion image
              • MySQL Workbench
                • 더하기 버튼 클릭 - 설정 후 OK 클릭
                  • notion image
                  • Hostname에 endpoint 내용 넣어주기
                    • notion image
                  • username과 password는 아까 설정했던 대로 넣어주기
            • application.properties의 위 코드를 아래 코드로 수정해줬다!
        자바 환경 변수 설정 → 잘 안되어서 일단 패스
        해야 하는 이유
        • 아래 명령어 입력해서 etc/profile 파일 열기
          • sudo vi /etc/profile
        • 파일 맨 아래에 아래 내용 추가 후 저장
          • 아래 명령어 입력해서 환경 변수 적용
            • source /etc/profile
          참고

          AWS SA 컨설팅

          하루 정리

          TIL 작성하기
          노이랩
          초기 환경 설정
          3시반 AWS SA 컨설팅
           
          AWS EC2 Linux 인스턴스에 JDK 설치 및 실행