개요
로컬 환경에서 기능 구현이 끝났다면 로컬 환경 외에서 접속 가능하도록 웹 서버를 배포해야한다.
AWS EC2 환경에서 서버를 배포하기 위해 우선 깃 허브에 레포지토리 생성 후 push를 해준다.
git clone '레포지토리URL'
이후 AWS환경에 접속하여 해당 레포지토리를 clone해준다.
이러면 깃 허브에 올렸던 개발 했던 내용을 해당 디렉토리에서 확인할 수 있다.
서버 빌드
우선 디렉토리 안에서 프로젝트가 위치한 디렉토리로 이동해 준다.
mvn clean package
위 명령어를 통해 mvn빌드를 실행해 준다. mvn기반 프로젝트에만 유요하다.
clean은 이전 빌드 정보를 날리는 것이고, package를 통해 빌드를 실행한다.
만약 로직이 변경되어 로컬 환경에서 수정 후 git에 다시 push한 경우
AWS 환경에서도 다시 git pull을 통해 최신 버전을 유지해 주어야 한다.
이 때 빌드도 다시 해주어야 하기 때문에 clean 및 package를 동시에 실행해 주는게 좋다.
서버 실행
빌드가 끝났다면 프로젝트 내부에 target 디렉토리가 생성되었을 것이다. 만약 빌드 이력이 있다면 이미 존재할 것이다.
target 디렉토리 내부에 빌드의 결과물이 .jar 확장자로 생성된 것을 볼 수 있다.
java -jar 파일명.jar
위 명령어를 입력하게 되면 서버 빌드를 수행할 수 있다.
이제 AWS EC2의 IP:포트번호로 API요청을 보낼 경우 어떤 환경에서도 웹 서버로 부터 응답을 받을 수 있다.
트러블 슈팅
해당 글에선 기본적으로 git과 mvn 등 로컬에서 구현한 빌드 환경과 필요한 패키지가 모두 있다는 것으로 가정했다.
git clone이 불가능할 경우 git이 설치되어 있는지, 레포지토리 URL이 일치하는지 체크해 주자
만약 빌드를 진행할 수 없다면 우선 mvn등 빌드에 필요한 패키지가 설치되어 있는지 확인해 주자
빌드 이후 서버가 켜져 있는데 AWS 서버로 요청을 보낼 수 없다면 몇 가지 확인이 필요한 사항이 있다.
우선 AWS서버에서 SpringBoot 서버가 사용하는 포트 번호의 방화벽이 해제되어있는지 체크해야 한다.
ufw status
위 명령어를 입력하면 현재 방화벽 정보가 출력된다.
만약 작동하지 않는다면 sudo를 통해 관리자 관한으로 실행해 보자
서버의 인바운드 규칙이 잘 설정되어있는지 확인하자
서버가 보통 특정 IP로의 요청만 받을 경우가 아니면 0.0.0.0으로 설정되어 있다.
netstat -tulpn | grep '포트 번호'
위 명령어를 입력 했을 때 0.0.0.0이 아니거나, 접속을 진행하는 IP가 아닌 경우 인바운드 규칙을 설정해 주어야 한다.
웹 브라우저의 보안 정책 때문에 발생하는 문제로 인한 CORS 오류가 발생할 수도 있다.
웹 브라우저는 보안상의 이유로, 다른 출처(Origin)에서 오는 요청을 차단하는 정책을 가지고 있다.
즉, A 사이트에서 B 사이트의 데이터를 직접 요청하는 것이 기본적으로 제한된다.
이때 CORS 정책을 설정하면 특정 출처에서의 요청을 허용할 수 있다.
이를 위해 proxy서버를 사용해 API요청을 우회하거나, 서버 내부에 CORS관련 세팅을 진행해 주면 된다.
[AIoT] 무인 사물함 프로젝트 환경 설정 Config
[AIoT] 무인 사물함 프로젝트 환경 설정 Config
개요설정 파일(예: config.py, .env 파일)이나 환경 변수는 애플리케이션의 설정을 관리하는 역할을한다.MVC에서 직접적인 역할을 하지는 않지만, Model, View, Controller 모두에서 사용될 수 있다.MVC 아키
zzzz955.tistory.com
CORS 세팅은 위 글에서 확인하면 된다.
'프로젝트 > 무인 사물함' 카테고리의 다른 글
[AIoT] 무인 사물함 프로젝트 환경 설정 Config (0) | 2025.02.14 |
---|---|
[AIoT] 무인 사물함 프로젝트 예외 처리 Exception (0) | 2025.02.14 |
[AIoT] 무인 사물함 프로젝트 MVC 모델 작성 Controller (0) | 2025.02.13 |
[AIoT] 무인 사물함 프로젝트 MVC 모델 작성 Repository (0) | 2025.02.11 |
[AIoT] 무인 사물함 프로젝트 MVC 모델 작성 Model-DTO (0) | 2025.02.10 |