본문 바로가기
반응형

전체글588

AWS Beanstalk Linux2 에서 Nginx 설정이 안될때 기존에 AWS Beanstalk을 사용할 경우 아래와 같이 nginx.config 파일을 교체하라고 가이드를 받는데요. (AWS 공식 문서)그래서 실제로 프로젝트 구조를 다음과 같이 잡고 배포를 진행합니다.배포할때 사용하는 스크립트 (travis.yml 혹은 githubAction.yml) 역시 이 구조를 그대로 가져가기 위해 다음과 같이 설정합니다. - name: Generate deployment package run: | mkdir -p deploy cp build/libs/*.jar deploy/application.jar cp Procfile deploy/Procfile cp -r .ebextensions deploy/.ebextensions cd deploy && zip -r deploy.zi.. 2020. 12. 22.
AWS에서 수동으로 ssh 접속을 위한 Pem key 생성하기 자주 있는 일은 아니지만 EC2를 통해 pem키를 생성해본 적 없이, 곧바로 AWS의 Beanstalk을 사용하는 경우를 봅니다. 일반적으로는 EC2를 생성할때 pem키 생성을 함께 진행합니다. 이럴 경우 한번도 pem키를 만들지 않은 상태라서 ssh 접속을 위해서 별도로 pem 키 생성을 진행해야하는데요. 1. Pem Key 생성 먼저 AWS의 서비스로 EC2로 들어갑니다. EC2 대시보드의 좌측 사이드바를 보시면 "네트워크 및 보안 -> 키 페어 -> 키 페어 생성"을 차례로 클릭합니다. 파일형식을 pem을 선택하고, 본인이 원하는 이름으로 Key를 생성합니다. 생성 버튼을 클릭하면 바로 다운로드 화면으로 전환이 되는데요. pem키(수동 생성시에는 .cer 확장자) 를 다운 받을 디렉토리를 지정합니다.. 2020. 12. 20.
(2020.12.16) 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 최신 코드로 변경하기 작년 11월 말에 스프링 부트와 AWS로 혼자 구현하는 웹 서비스를 출판 하였습니다. Spring Boot가 2.1 -> 2.4로, IntelliJ IDEA가 2019 -> 2020으로 오면서 너무 많은 변화가 있다보니, 집필할 때와 비교해 실습에서 지속적으로 문제를 제보 받았습니다. 실무에서 사용할때는 쉽게 버전을 올릴순 없지만, 책을 통한 학습단계에서는 웬만해선 최신 버전을 사용하신다는 점 실습 도구들의 버전업이 너무 빠르게 이루어졌다는 점 2가지가 생각보다 크게 다가와서 한번은 가장 최신 버전으로 코드를 정리해야겠다는 생각에 글을 쓰게 되었습니다. 물론 이렇게 작성된 글도 2021년에 Spring Boot 2.5, IntelliJ 2021로 버전업 되면서 크게 개편이 되면 또 이슈가 되리라 봅니다... 2020. 12. 16.
Gradle5 -> 6 마이그레이션 최근 팀에서 운영중인 프로젝트의 Gradle 버전을 6으로 올리게 되었습니다. 사유는 여러가지가 있는데요. 점점 Spring Boot 최신 버전들이 최소한으로 요구하는 Gradle 버전이 높아지고 있고 Spring Boot 2.4는 Gradle 5.6.x 버전만 혹은 6.3 이상의 버전만 지원합니다. Gradle 7.0이 곧 나올 예정 증분 컴파일 등의 성능 개선 Gradle 5.6에선 21초, Gradle 6.0에선 0.5초 등등 여러 이유로 슬슬 올려야하는 시점이 되었습니다. Gradle 6으로 업그레이드에 관해서는 아래 2개의 글이 좀 더 상세하게 나와있으니 참고해주시면 좋습니다. Gradle 6 Release Notes Gradle 5.x to 6.0 Migration Guide 이 글은 상황에 .. 2020. 12. 10.
Amazon Athena로 ALB Access Log에서 원하는 데이터 추출하기 AWS 서비스를 이용하다보면 ALB (Application Load Balancer: 애플리케이션 로드 밸런서) 의 로그에서 상세 데이터를 확인하고 싶을때가 종종 있습니다. 이를테면 다음과 같은 경우인데요. 하나의 로드밸런서에 2개 이상의 도메인이 붙어서 개별적으로 count 확인이 필요할때 이를테면 A 로드밸런서에 a.com과 b.com 도메인 두개가 붙어있을 경우 a.com이 호출된 횟수와 b.com이 호출된 횟수 각각을 알고 싶은 경우 ELK 등 로그 모니터링 환경이 구축 안되어 있는 환경에서 URL Path별 확인이 필요할 때 Nginx 호출은 없었는데, 로드밸런서 요청 이력이 있었을때 등등 굉장히 다양한 상황에서 로드밸런서의 로그 확인이 필요합니다. 이럴 경우를 대비해서 AWS에서는 ELB, A.. 2020. 12. 3.
JPA Entity Select에서 Update 쿼리 발생할 경우 JPA Entity를 단순히 조회만 하였는데도, 예상치 못하게 Update 쿼리가 발생하는 경우가 있습니다. 이를테면 다음과 같은 경우인데요. find로 조회만 하는데,다음과 같이 select와 update 쿼리가 발생 하였습니다.신기한 것은 전체 컬럼에 대한 Update 쿼리가 발생한것입니다. 이렇게 트랜잭션 내에서 Update 쿼리가 발생하면 보통은 Dirty Checking이 발생했음을 의심해볼만 한데요. 의심이라고 말씀드리는 이유는 실제로 다른 원인이 있을수도 있기 때문입니다. 자 그럼 왜 이렇게 발생했는지 실제 예제 코드와 함께 보겠습니다. 1. 예제 코드 먼저 위에서 발생한 Entity를 비롯한 서비스 코드는 다음과 같습니다. Order @Getter @NoArgsConstructor @Ent.. 2020. 11. 28.

728x90
반응형