마 니 잔디에 불난다
분류 전체보기
problemec2 를 이전하고 시스템을 바꾸던 도중 swagger 에서 포트 바인딩을 못하고 있었다 Spring 설정은 똑같이 이전 했는데 말이다.따로 설정을 해주지 않아도 알아서 잘 잡았던 녀석....변경된 사항은 NginX 를 사용하고 있다는 것이었다.현재는 0001->1111 -> 90900001->1112 -> 90900002->1113 -> 90910002->1114 -> 9091이런식으로 바인딩 해주고 있었다.swagger 는 여기서 찾지 못한듯 하다.solution요청은 9090으로 하는데 docker 컨테이너 포트는 1111로 연결 되어있으니 swagger 가 갈 길을 잃은것 같다.ec2-info.ymlec2: host: 탄력IP prd: port: 0001 dev: po..
problem기존에 로그를 aop를 사용하여 관리 했다.aop 는 리플렉션을 사용해야 하기 때문에 성능 저하를 일으키는데 로그 같이 데이터의 사용이 많은 곳에서는 더 큰 재해를 불러 올 것 같다는 생각에 인터셉터로 구현해 보았다.solution 1. HandlerInterceptor@Componentclass LoggingInterceptor( private val objectMapper: ObjectMapper) : HandlerInterceptor { companion object { private val logger: Logger = LoggerFactory.getLogger(LoggingInterceptor::class.java) }}HandlerInterceptor..
problemaws 프리티어는 1기가의 메모리를 제공하는데 dev 채널과 prd 채널을 docker 컨테이너화 하면 금방 메모리가 부족하여 OOM 이 발생된다.solution1. aws 볼륨 크기 조정aws 프리티어는 30기가의 디스크를 무료로 제공한다기본으로 생성 할 시 8기가로 생성 된다.[ec2 대시보드] -> [볼륨] -> [볼륨 ID] -> [오른쪽 위 수정 버튼]볼륨크기를 30기가로 늘리고 인스턴스를 재시동 한다.df -h2. 스왑 설정2-1 파일 생성sudo dd if=/dev/zero of=/swapfile bs=128M count=16또는sudo fallocate -l 2G /swapfile명령어로 2G 짜리 스왑파일을 생성 한다.2-2 권한 설정 sudo chmod 600 /swapfi..
1.https://soobysu.tistory.com/1842.https://soobysu.tistory.com/185여기부턴 EC2 환경에서 작업 된다.1. 포트 정리사용 할 포트를 정의 해주어야 한다.NginX 로 포트를 변경하여 무중단 배포를 구성한다.2.Dockerfile 구성FROM openjdk:17-alpineARG JAR_FILE=./*.jarENV TZ=Asia/SeoulCOPY ${JAR_FILE} /app/api.jarENTRYPOINT ["java", "-jar", "/app/api.jar"]docker-compose 에 사용 될 Dockerfile 을 만들어 준다.jdk 는 프로젝트에 맞는 jdk 를 설정 해준다.2. docker-compose.yml 구성구성해야 할 compose..
github Actions + S3 + ec2 무 배포 for Spring (1)https://soobysu.tistory.com/184 [CICD] github Actions + S3 + ec2 무 배포 for Spring (1)problem현재 하는 사이드 프로젝트에서는 프리티어를 사용하기 때문에 젠킨스를 사용하지 않고github Actions 를 사용하게 되었다.Jenkins젠킨스를 위한 서버가 필요 없다플러그인이 풍부하여 다양한soobysu.tistory.com 작당한 이름의 파일을 만들어서./github/workflows 디렉토리에 넣어두면 자동으로 실행된다.전체 코드name: CI/CD Pipelineon: pull_request: branches: - dev - pr..
problem현재 하는 사이드 프로젝트에서는 프리티어를 사용하기 때문에 젠킨스를 사용하지 않고github Actions 를 사용하게 되었다.Jenkins젠킨스를 위한 서버가 필요 없다플러그인이 풍부하여 다양한 툴과 서비스(예: Kubernetes, Docker)와 쉽게 통합 가능자율적으로 서버와 파이프라인을 구성할 수 있어 대규모 프로젝트에 적합 하다.github Actions깃허브에 의존적이다.( 네트워크 장애때 의문점이 생길 수 있지 않을까 한다 )서버리스 방식으로 운영비 부담이 없음구현이 쉽다 ( yaml 파일 구성만으로 구현이 된다 )소규모 프로젝트일 경우 무료로 사용 가능하다solutionCode Push -> 설정파일 넣기 ( AWS , DBsource ) -> Jar 만들기 -> S3 업로..
problem깃허브 액션으로 ec2로 jar 를 복사 하는 과정에서 에러를 만났다.handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remainsolution아래 항목을 꼼꼼히 체크 해보자1. github -> Repository secrets 들 을 꼼꼼히 확인해준다sudo vi /etc/ssh/sshd_config# 아래 설정 활성화PubkeyAuthentication yes# 나온 후 sudo systemctl restart sshd 2. 공개키 서버( ec2 )에 추가cat ~/.ssh/github.pub >> ~/.ssh/authorized_keyschmod 6..