종식당
현대오토에버 모빌리티 SW 스쿨 웹/앱 SpringBoot 프로젝트 AWS EC2 배포하기 본문
- 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까지 연결시켜 진행해 보도록 하겠다.
'현대오토에버 모빌리티 sw 스쿨' 카테고리의 다른 글
현대오토에버 모빌리티 SW 스쿨 웹/앱 SpringBoot 프로젝트 AWS EC2 배포하기2 (2) | 2024.10.10 |
---|---|
현대오토에버 모빌리티 SW 스쿨 웹/앱 웹 개발 기초 (CSS, HTML,JS) (12) | 2024.10.09 |
현대오토에버 모빌리티 SW 스쿨 웹/앱 Docker 개념 및 설명 (12) | 2024.10.09 |
현대오토에버 모빌리티 SW 스쿨 웹/앱 데이터베이스 기초 dbdiagram (0) | 2024.10.08 |
현대오토에버 모빌리티 SW 스쿨 웹/앱 (6) | 2024.10.05 |