싱글벙글 AWS 배포 - 1

최혜성·2024년 1월 19일
0

Issue

AWS로 기존 Spring project를 배포하기로 했다.

이 과정에서 맨 처음 설정한것들

  • properties를 jar와 같은 경로에 두기

원래는 resource 내에 있어서 매번 컴파일할때마다 포함됐는데, 이는 내용물 변경할때마다 매번 새로 빌드 해줘야 해서 불필요한 소요 같았음.

찾아보니까 jar와 같은 경로에 두면 그거 읽어 온다고 했음.

  • 기타 load에 필요한 파일들 jar와 같은 경로에 두기

상대 경로로 지정해놔서 실행시 로드되게 했음

근데 왜안됨?

  • scp upload - pem파일을 -i 옵션줘서 인증 받게 해야함
  • 접속안됨 - 포트 인바운드 규칙 확인해서 해결함
  • db 못읽어옴 - 파일 업로드를 이상한 사이트 거쳐서 했더만 내용물 다 터져있음

작동 떴냐?

  • 파일 업로드, response 까지는 잘되는데 상대 경로 파일을 못읽어옴

jar와 같은 경로로 로컬 파일을 두면서 .\file.png 이렇게 경로를 뒀는데, 리눅스에서는 안 읽혔음.
그래서 file.png로 바꾸니까 읽혀짐

  • 저장경로도 못읽어서 파일 저장이 안됨

얘도 역슬래시가 아니라 일반 슬래시 '/'로 바꿔주니까 됐음. 현재 경로를 나타내는 .에다 슬래시 붙여서 ./image 로 바꿔두고, spring 파일 내에서도 역슬래시로 된거 슬래시로 바꾸니까 잘됐음.

원래는 이렇게 경로 지정해두는게 맞는거 같은데 윈도우라 잘 돌아가던거 리눅스 오면서 터진듯

Next?

다른 글들 찾아보면 실제 스프링 배포시 기존 프로세스를 kill하는 모습을 보여줬는데, 개발용 서버면 몰라도, 실제 프로덕션 서버를 kill 하면 대참사가 날 수 있다. (쿼리 요청중 kill 등등)

그래서 좀 찾아보니
https://velog.io/@msung99/SpringBoot-Graceful-Shutdown-%EA%B3%BC-SIGTERM-%EC%8B%9C%EA%B7%B8%EB%84%90-%EA%B5%AC%EB%B2%84%EC%A0%84-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC-%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C-%EC%A2%85%EB%A3%8C%EC%8B%9C%EC%BC%9C%EB%B3%B4%EC%9E%90-pe10wqzm
graceful shutdown이라는 개념이 있다.
shutdown 하더라도 안전하게 서버를 종료하는것이 제일 중요하다 할 수 있겠다.

따라서 다음엔 Github Action까지 사용해볼것

profile
KRW 채굴기

0개의 댓글