EC2 Spring Boot jar 파일 실행

minpractice_jhj·2025년 3월 24일

AWS

목록 보기
5/10

🔹 배포할 프로젝트 코드 가져오기 (Git Clone)

git clone <GitHub Repository URL>
cd <프로젝트 폴더>

💡 GitHub에서 프로젝트 코드를 가져와야 합니다.

  • EC2에서 application.yml 파일 생성 및 수정 과정

    1. application.yml 파일 생성하기

    EC2 서버에서 application.yml 파일을 생성하려면, vi 편집기를 사용하여 파일을 작성할 수 있습니다.

    application.yml 파일 생성 명령어

    bash
    복사편집
    cd ~/pinup/src/main/resources  # 프로젝트 디렉토리로 이동
    vi application.yml  # vi 편집기로 application.yml 파일 열기
    

    2. application.yml 파일 수정하기

    application.yml 파일을 수정하려면 아래 단계를 따르세요.

    PostgreSQL DB 연결 수정 (EC2 공인 IP 사용)

    PostgreSQL URL을 EC2의 공인 IP로 수정해야 합니다. EC2에서 실행 중인 PostgreSQL DB의 IP를 사용하여 연결합니다.
    yaml
    복사편집
    datasource:
      driver-class-name: org.postgresql.Driver
      url: jdbc:postgresql://<EC2-IP>:5432/pinup  # EC2 공인 IP 주소로 수정
      username: pinup
      password: rlaehgmlWkd0106
    
    • <EC2-IP>를 EC2의 실제 공인 IP 주소로 수정합니다.

      S3 엔드포인트 및 AWS IAM 인증 설정

      AWS S3 연결을 위해, S3 엔드포인트를 수정하고 AWS IAM 사용자의 Access KeySecret Key를 설정합니다.

      S3 엔드포인트 수정

      서울 리전 엔드포인트는 https://s3.ap-northeast-2.amazonaws.com입니다.

      yaml
      복사편집
      cloud:
        aws:
          s3:
            bucket: bucket0127  # 생성한 S3 버킷 이름
            endpoint: https://s3.ap-northeast-2.amazonaws.com  # 서울 리전 엔드포인트
          region.static: ap-northeast-2  # 리전 설정
          stack.auto: false
      

      AWS IAM 인증 정보 설정

      AWS IAM 사용자의 Access KeySecret Key를 환경 변수로 설정하려면, 아래와 같이 설정할 수 있습니다. IAM 사용자 인증 정보를 사용하여 AWS에 연결합니다.

      yaml
      복사편집
      cloud:
        aws:
          credentials:
            accessKey: ${AWS_ACCESS_KEY_ID}  # 환경 변수에서 읽어오기
            secretKey: ${AWS_SECRET_ACCESS_KEY}  # 환경 변수에서 읽어오기
      
    • 환경 변수 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY를 EC2에서 설정해 줍니다.

      3. vi 사용법

      vi 편집기를 사용하여 application.yml 파일을 수정하려면 아래 절차를 따르세요.

    1. 파일 열기:

      bash
      복사편집
      vi application.yml
      
    2. 편집 모드로 전환:

      • i를 눌러 편집 모드로 들어갑니다.
    3. 수정 후 저장하고 종료:

      • Esc 키를 눌러 명령 모드로 돌아갑니다.
      • :wq를 입력한 후 Enter를 눌러 파일을 저장하고 종료합니다.
    4. 수정 취소하고 종료:

      • Esc:q!를 입력하여 저장하지 않고 종료합니다.

🔹 Spring Boot 애플리케이션 실행 테스트

chmod +x ./gradlew 권한 필요할때

Gradle 빌드
./gradlew clean build -Pspring.profiles.active=prod -x test

JAR 실행
java -jar build/libs/pinup-0.0.1-BETA.jar --spring.profiles.active=prod

🔹 Spring Boot 애플리케이션 빌드가 중단이슈

💡RAM과 프로그램 실행의 관계

RAM은 실행중인 프로그램의 속도와 실행과 관련이 있다.

그래서 만약 프로그램이 잡아먹는 RAM이 컴퓨터의 RAM의 크기를

초과한다면 해당 프로그램이 더디게 실행되거나 실행이 안될 수도 있는 것이다.

  • 우분투에서 스왑 파일 생성 및 설정 절차

    1. 스왑 파일 생성

    우분투 시스템에서 스왑 파일을 생성하려면 dd 명령어를 사용합니다. 예를 들어, 4GB 크기의 스왑 파일을 생성하려면 아래 명령어를 사용하세요:
    bash
    복사편집
    sudo dd if=/dev/zero of=/swapfile bs=128M count=32
    
    • if=/dev/zero: 0 바이트를 읽어옵니다.

    • of=/swapfile: /swapfile 파일을 생성하여 데이터를 씁니다.

    • bs=128M: 블록 크기를 128MB로 설정합니다.

    • count=32: 128MB 블록을 32번 작성하여 총 4GB 크기의 스왑 파일을 만듭니다.

      2. 스왑 파일 권한 설정

      생성된 스왑 파일의 권한을 수정하여 읽기 및 쓰기만 가능하게 합니다:

      bash
      복사편집
      sudo chmod 600 /swapfile
      

      3. 스왑 영역 설정

      생성된 스왑 파일을 시스템에서 사용할 수 있도록 포맷합니다:

      bash
      복사편집
      sudo mkswap /swapfile
      

      4. 스왑 파일 활성화

      이제 스왑 파일을 활성화하여 시스템에서 사용할 수 있게 합니다:

      bash
      복사편집
      sudo swapon /swapfile
      

      5. 스왑 파일 사용 확인

      활성화된 스왑 파일을 확인하려면 아래 명령어를 입력합니다:

      bash
      복사편집
      sudo swapon -s
      

      이 명령어를 실행하면, 현재 사용 중인 스왑 공간의 목록이 표시됩니다.

      6. 부팅 시 자동 마운트 설정

      시스템이 재부팅될 때마다 스왑 파일이 자동으로 활성화되도록 설정하려면 /etc/fstab 파일을 수정해야 합니다. 아래 명령어로 파일을 편집합니다:

      bash
      복사편집
      sudo vi /etc/fstab
      

      파일 끝에 다음 줄을 추가하고 저장 후 종료합니다:

      bash
      복사편집
      /swapfile swap swap defaults 0 0
      

      요약

      우분투에서 스왑 파일을 생성하고 설정하는 과정은 다음과 같습니다:

    1. dd 명령어로 스왑 파일 생성
    2. chmod 명령어로 권한 수정
    3. mkswap 명령어로 스왑 영역 설정
    4. swapon 명령어로 스왑 활성화
    5. /etc/fstab 파일을 수정하여 부팅 시 자동으로 스왑 파일이 활성화되도록 설정

AWS EC2에서 Spring Boot 배포 후 웹 접속 문제 해결

🔹 보안 그룹 (Security Group) 설정 확인

AWS EC2를 사용하고 있다면 인바운드 규칙에서 80번(HTTP) 또는 443번(HTTPS)과 8080번(애플리케이션 포트)이 열려 있는지 확인하세요.

  1. AWS 콘솔 접속 → EC2 → 인스턴스 선택 → 보안 그룹 클릭
  2. 인바운드 규칙에서 다음 포트가 허용되어 있는지 확인
    • 80 (HTTP)
    • 443 (HTTPS)
    • 8080 (Spring Boot 기본 포트)
    • 22 (SSH, 필요 시)소스(Source)0.0.0.0/0 또는 내 IP로 설정되어 있어야 외부에서 접근 가능

접속 : 주소가 EC2의 퍼블릭 IPv4 로 http://43.201.64.159:8080 테스트

profile
운동처럼 개발도 작은 실천이 성장의 힘이 된다고 믿는 개발자 minpractice_jhj 기록

0개의 댓글