[CowAPI] 16. AWS EC2 배포

준돌·2022년 7월 3일
1

오늘의 Cow

목록 보기
21/45
post-thumbnail

1. 문제

  • 더미 서버를 구성하여 프론트엔드와 협업을 진행하기로 했습니다.
  • 더미 서버에 배포를 진행 해야합니다.

2. 준비물

  • git 원격 저장소인 Github에 코드가 저장되어 있어야 합니다.
  • Java11 + Springboot + Gradle
  • AWS EC2 인스턴스

3. AWS EC2 (cmd)

  1. git 설치
sudo yum install -y git
  1. java 설치
sudo amazon-linux-extras install java-openjdk11
  1. git 저장소 가져오기
git clone https://github.com/OH-JunYoung/{repository}.git
  1. 프로젝트 빌드
sudo chmod 777 ./gradlew ## 실행할 수 있도록 권한을 수정합니다.
./gradlew build
  1. 서버 실행
cd build/libs/ ## 빌드된 jar이 있는 곳으로 경로 수정
java -jar demo-0.0.1-SNAPSHOT.jar ## 웹 어플리케이션 서버로 톰캣이 내장되어있습니다. .jar를 실행하면 됩니다.
  1. 백그라운드로 실행
cd build/libs/ ## 빌드된 jar이 있는 곳으로 경로 수정

## /dev/null을 통해 로그는 저장하지 않습니다. 만약 저장한다면 nohup.out에 저장합니다.
nohup java -jar cowapi-0.0.1-SNAPSHOT.jar &> /dev/null 
  1. 백그라운드 실행 확인
ps -ef|grep cowapi

4. AWS EC2

    1. 인바운드 규칙에 8080 포트를 열어줘야합니다.
    1. 저는 보안그룹에서 인바운드 규칙을 설정해주었습니다.

5. 테스트

  • postman으로 테스트를 진행했습니다.
  • 200 OK로 요청이 제대로 왔다는 것을 알 수 있습니다.

6. 이슈

  • .porterties 문제
  • CORS 에러

7. 해결

  • .porterties 문제가 발생 했었습니다.
    • .gitignore 를 통해 보안정보가 있는 파라미터들이 EC2에 저장해야했습니다.
    • scp를 통해서 파일을 업로드하여 해결하였습니다.
  • CORS 에러
    • CORS 처리를 하지 않아 프론트에서 접근시 에러가 발생하였습니다.
    • Springboot security를 통해 CORS 처리 하여 접근할 수 있도록 해주었습니다.
profile
눈 내리는 겨울이 좋아!

0개의 댓글