종식당

현대오토에버 모빌리티 SW 스쿨 웹/앱 SpringBoot 프로젝트 AWS EC2 배포하기 본문

현대오토에버 모빌리티 sw 스쿨

현대오토에버 모빌리티 SW 스쿨 웹/앱 SpringBoot 프로젝트 AWS EC2 배포하기

종식당 2024. 10. 8. 12:05
728x90
반응형

  • AWS접속 및 설정

 

AWS에 로그인 후 EC2에 들어간다. 이전에 지역은 서울로 선택해야 인스턴스가 확인 가능하다.

 

 

  • 인스턴스 생성

 

EC2 대시보드에 들어가면 리소스에서 현재 내 인스턴스를 확인할 수 있다. 인스턴스를 아직 생성하지 않아 0개임을 확인할 수 있고 인스턴스를 눌러 생성할 수 있다.

 

 

인스턴스의 정보들을 확인할 수 있으며 인스턴스 시작을 눌러 생성한다.

 

 

이름은 따로 정해주지 않아도 되니 정해주지 않고 진행을 했다.

 

 

AMI를 정하는 부분인데 여기서는 어떤 종류의 서버로 구성할지 선택할 수 있다. 원하는 OS로 정해주면 되고 수업에서는 Ubuntu로 진행하게 되었다. 학부 수업에서 vmware를 통해 ubuntu를 많이 사용했어서 익숙하게 다룰 수 있었다. 그리고 프리티어 사용 가능이라고 적혀있는 것을 선택해야 무료로 이용할 수 있으며 다른 것을 사용하면 과금요소가 추가될 수 있으니 주의해야 한다.

 

 

수업시간에는 키 페어를 따로 만들어주지 않고 진행했지만 원래  키 페어는 EC2 인스턴스에 원격으로 접속하기 위해 필수적으로 필요하기 때문에 생성해줘야 한다고 한다. 그리고 한 번 생성하면 다시 다운로드할 수 없어 잘 보관해야 한다.

 

 

나머지 내용은 따로 건들지 않고 인스턴스 시작을 눌러 생성을 완료해 준다.

 

인스턴스가 하나 생성되어 실행되는 모습을 확인할 수 있다. 만약 이를 종료하거나 삭제하고 싶으면 인스턴스 상태를 클릭하여 인스턴스 종료를 누르면 해당 인스턴스를 삭제할 수 있다. 

 

  • 보안그룹 편집
    더보기
    보안 그룹이란?
    AWS에서 제공하는 방화벽으로 인바운드 규칙, 아웃바운드 규칙이 존재합니다.

    인바운드 규칙(inbound) : 외부에서 EC2나 RDS 등의 내부로 접근할 때 사용되는 방화벽 규칙
    아웃바운드 규칙(outbound) : EC2나 RDS 등의 내부에서 외부로 접근할 때 사용되는 방화벽 규칙

 

보안 탭에서 인바운드 규칙을 눌러 편집이 가능하다. 우리는 EC2에 접속해서 서버를 띄우는 것이 목적이기 때문에 인바운드 규칙만 건드려주도록 하겠다. 

 

 

 

인바운드 규칙을 눌러 규칙을 추가해 준다. 

더보기

여기서 0.0.0.0/0 은 Anywhere-IPv4이다.

스프링 부트 기반 서버를 열어줄 것이기 때문에 사용자 지정으로 8080 포트를 설정해 주고 mysql db를 연결할 것이기 때문에 3306 포트를 설정해 준다. 그 후 url을 아는 누구나 접속할 수 있도록 Anywhere-IPv4로 설정해 준다.

아웃바운드 규칙은 따로 세팅해주지 않고 기본세팅으로 남기고 넘어가겠다.

 

  • 인스턴스 연결

 

인스턴스 연결을 눌러 생성한 인스턴스에 연결하고 EC2 ubuntu 콘솔에 접속할 수 있다. 

 

다음과 같은 화면이 나오면 EC2 ubuntu 콘솔에 접속에 성공한 것이다. 

 

  • Ubuntu 콘솔에서 git clone진행하기
sudo passwd
su <- sudo로 로그인

$ sudo apt update
$ sudo apt install openjdk-17-jdk -y

$ java -version # 잘 설치됐는 지 확인

$ git clone []

$ cd {프로젝트 경로}
$ ./gradlew clean build
$ ./gradlew bootwar

$ chmod +x gradlew

$ cd build/libs
$ nohup java -jar ________.war &

$ sudo fuser -k -n tcp 8080 //포트정징

$ sudo lsof -i:8080 # 8080번 포트에 Spring Boot가 실행되고 있는 지 확인

 

콘솔에서 순서대로 위 내용을 진행하면 된다. 여기서는 붙여 넣기를 할 때 shift + insert를 통해 진행할 수 있다. 

 

패스워드를 설정하고 su를 통해 root권한으로 진행하는 과정이다. 

 

 

jdk를 설치하고 확인하는 과정이다.

 

  • git clone 하기

 

clone 하기 위한 repository에서 주소를 복사해 온다.

 

git clone을 진행하고 ls를 통해 잘 가져온 모습을 확인할 수 있다.

 

  • 빌드 & war파일 실행시켜 스프링 부트 서버 실행하기

 

git clone 한 디렉터리에서 build 하고 싶은 프로젝트로 이동해서./gradlew clean build를 진행해 준다.

그러면 permission denied라는 오류가 하나 뜨는데 chmod +x gradlew를 통해 권한을 부여하고 진행하면 오류 없이 build를 진행할 수 있다. 

 

build가 끝나면 build > libs로 이동해서 ls를 통해 war파일이 생성된 것을 확인할 수 있다. 

 nohup java -jar ________. war &를 통해 서버를 실행시켜 준다. 

 

 

그리고 뒤에 :8080을 붙여주면 

 

 

서버가 실행되는 모습을 확인할 수 있다. 현재 db는 아직 연결하지 않아 whitelabel이 나오고 있다.

다음에는 db까지 연결시켜 진행해 보도록 하겠다.

728x90
반응형