본문 바로가기

Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

(5)
CreatedBy, LastModifiedBy 기능 구현 PA Auditing 기능과 @CreatedBy, @LastModifiedBy 를 사용하여, 데이터가 생성되거나 수정될 때 유저의 ID가 DB에 저장되게 기능을 구현했다. 우선 BaseTimeEntity에 @CreatedBy와 @LastModifiedBy를 추가해줬다. User의 ID를 JPA에서 인식하려면, AuditorAware을 구현한 클래스가 필요하다. 아래와 같이 LoginUserAuditorAware 클래스를 만들어서 Long Type의 UserId를 반환하도록 했다. 유저 정보는 세션에서 가져오고, 없을 경우 null을 반환한다. import com.jojoldu.book.springboot.config.auth.dto.SessionUser; import lombok.RequiredArgsC..
자동 배포시 step3에 쌓이는 프로젝트 jar 파일들 삭제 배포할 때마다 쌓이고 있는 파일들... start.sh에 이전 Build 파일 삭제하는 부분을 추가해줬다.
Version 2 of the Ruby SDK will enter maintenance mode as of November 20, 2020 에러 해결 스프링 부트와 AWS로 혼자 구현하는 웹서비스의 무중단 배포 구현 부분에서 profile.sh, stop.sh, start.sh, health.sh, switch.sh 를 작성하고 아래와 같은 에러를 Trivis CI에서 만났다. 검색 결과 다른 사람들의 경우 원인들이 아래와 같았다. appspec.yml 파일 에러 (오타, 들여쓰기 등) CodeDeploy 그룹의 태그를 잘못 입력함 (키를 Name이 아닌 임의의 값으로 설정) .travis.yml 파일 에러 (오타) 하지만 내 경우 모두 체크해도 아니었었고, ShellScript들(profile.sh, stop.sh, start.sh, health.sh, switch.sh)에 오타가 있음을 발견하고 오타들을 수정했다. 그 후, AWS CodeDeplo..
Failed to load driver class org.mariadb.jdbc.Driver AWS 서버에서 Deploy.sh 스크립트 작동 시 아래와 같은 에러가 났다. 에러 로그는 nohup.out 파일에서 확인했다. Failed to load Driver. Driver Load 문제로 알고보니 Git으로 Pull해온 build.gradle이 이전 버전이었다. 즉, build.gradle에 MariaDB 의존성 부분이 없었다. 다시 Build.gradle을 Push해주었다. 근데, 알고보니 서버에서 Git Pull을 아래와 같은 이유로 못받아오고 있던 상태. Git으로 Pull받았던 폴더 자체를 지우고, 다시 Pull을 받았다. Pull받은 걸로 다시 ./deploy.sh 로 Deploy 쉘 스크립트를 돌려보니 아래와 같은 에러가 났다. gradlew에 write권한이 없어서, Build가 ..
swapfile not a directory '스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 책 297페이지의 ./gradlew test 명령줄에서 아래와 같은 에러가 SSH Console창에 찍혔다. OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000eaaa0000, 178978816, 0) failed; error='Cannot allocate memory' (errno=12) gradlew로 Build 중 나타난 에러로, Google 한 결과 원인은 JVM 구동 시 메모리 부족이 문제였다. 아래 블로그 내용을 참조하여 SWAP을 설정하며 문제를 해결했다. https://bhsbhs235.github.io/jenkins/2019/12/29/jenkinserror.html..