1. 문제
- 더미 서버를 구성하여 프론트엔드와 협업을 진행하기로 했습니다.
- 더미 서버에 배포를 진행 해야합니다.
2. 준비물
- git 원격 저장소인 Github에 코드가 저장되어 있어야 합니다.
- Java11 + Springboot + Gradle
- AWS EC2 인스턴스
3. AWS EC2 (cmd)
- git 설치
sudo yum install -y git
- java 설치
sudo amazon-linux-extras install java-openjdk11
- git 저장소 가져오기
git clone https://github.com/OH-JunYoung/{repository}.git
- 프로젝트 빌드
sudo chmod 777 ./gradlew
./gradlew build
- 서버 실행
cd build/libs/
java -jar demo-0.0.1-SNAPSHOT.jar
- 백그라운드로 실행
cd build/libs/
nohup java -jar cowapi-0.0.1-SNAPSHOT.jar &> /dev/null
- 백그라운드 실행 확인
ps -ef|grep cowapi
4. AWS EC2
-
- 인바운드 규칙에 8080 포트를 열어줘야합니다.
-
- 저는 보안그룹에서 인바운드 규칙을 설정해주었습니다.
5. 테스트
- postman으로 테스트를 진행했습니다.
- 200 OK로 요청이 제대로 왔다는 것을 알 수 있습니다.
6. 이슈
7. 해결
- .porterties 문제가 발생 했었습니다.
- .gitignore 를 통해 보안정보가 있는 파라미터들이 EC2에 저장해야했습니다.
- scp를 통해서 파일을 업로드하여 해결하였습니다.
- CORS 에러
- CORS 처리를 하지 않아 프론트에서 접근시 에러가 발생하였습니다.
- Springboot security를 통해 CORS 처리 하여 접근할 수 있도록 해주었습니다.