[Spring] 나만의 게시판 만들기 9 - 연동, JAR 배포(FileZilla), 테스트(Swagger)

최진민·2022년 3월 7일
0

게시판 만들기

목록 보기
9/9
post-thumbnail

Spring Boot와 앞서 생성한 RDS 내의 MySQL 환경을 연동해보고, .jar파일을 EC2에 배포하여 탄력적 IP와 Swagger UI를 통한 테스트를 합니다.

Spring Boot와 MySQL 연동


  • 스프링 부트와 MySQL을 연동하기 위해서 생성한 DB 인스턴스의 EndPoint(엔드포인트)가 필요합니다.
  • IntelliJ의 우측 팔레트의 데이베이스에서 새로운 데이터 베이스를 연동합니다.
    • +Data SourceMySQL
  • 필요한 정보를 입력합니다.
    • Name : 편한 이름을 설정합니다.
    • Host : 엔드포인트 입력
    • User & Password : MySQL의 계정 정보 입력
  • 성공적인 연동
  • 설정 파일
    • application-cloud.yml
      spring:
        datasource:
          url: jdbc:mysql://[endpoint]:3306/[DB 이름]
          username: jinmin2216
          password: [password]
          driver-class-name: com.mysql.cj.jdbc.Driver
      
        jpa:
          hibernate:
            ddl-auto: create
          properties:
            hibernate:
              #show_sql: true
              format_sql: true
              default_batch_fetch_size: 100
          defer-datasource-initialization: true
      • DB 이름은 아래와 같이 확인 가능합니다.
    • application.yml
      spring:
        profiles:
          include: cloud

JAR 빌드 및 배포

빌드

  • EC2 인스턴스를 생성할 때 다운로드 받은 키파일 (xxx.pem)을 src/resources로 옮깁니다.

    • (관리를 위해)

  • Gradle의 cleanbuild를 통해 .jar파일을 추출합니다.

    • Show Excluded Files를 통해 모든 파일을 보이도록 설정한 후, build/libs/xxxx.jar가 생성된 것을 확인할 수 있습니다.

배포

  • FileZilla를 통해 EC2(클라우드 서버)에 JAR 파일을 배포합니다.

  • 생성한 EC2의 EIP를 확인합니다.


  • FileZilla를 통해 EC2 서버에 연결하도록 관리자를 연결합니다.

    • 위의 파란 네모를 통해 사이트 관리자를 엽니다.
    • 사이트 관리자를 설정하고 연결합니다.
      • 프로토콜 : SFTP - SSH File Transfer Protocol
      • 호스트 : 탄력적 IP / 포트 : 22 (ssh)
      • 로그온 유형 : 키파일
      • 사용자 : “ec2-user”
      • 키 파일 : xxxx.pem (src/resources 에 존재하는 xxx.pem)
    • 체크 해제 → 확인
    • 연결된 상태
      • 왼쪽은 Local / 오른쪽은 EC2(Cloud Server)
      • 로컬에 있는 .jar 파일을 리모트 사이트에 복사합니다.
  • Mac의 터미널로 EC2에 접속하여 .jar 파일을 확인할 수 있습니다.

    • .jar를 실행시키는 명령어

      $ sudo yum install java # java cli 다운
      
      $ java -jar [JAR 파일] # JAR 빌드 파일 실행(배포)
      
      $ nohup java -jar [JAR 파일] & # 아래 설명 참조

      nohup 명령어는 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어입니다. 마지막에 &를 추가하면 .jar 파일이 백그라운드로 실행될 수 있게 합니다.

      $ tail -t nohup.out # JAR 파일이 실행됨을 실시간으로 볼 수 있습니다.
      
      $ cat nohup.out # nohup.out의 결과를 텍스트의 형태로 볼 수 있습니다. (터미널 창에 맞도록)
    • 실행됨을 확인한 뒤, 주소창에 입력하여 Swagger UI로 진입합니다.

      < 주소창 >
      1. [퍼블릭 IPv4 address]:8080/swagger-ui.html
      
      2. [퍼블릭 IPv4 DNS]:8080/swagger-ui.html

    • nohub으로 실행중인 JAR 파일 종료

      $ ps -ef | grep [xxx.jar] # 파일 실행 확인
      
      $ kill [pid] # 프로세스 ID에 해당하는 프로세스 종료

profile
열심히 해보자9999

0개의 댓글