일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Java
- 티스토리챌린지
- Spring
- minikube
- go
- kotlin querydsl
- CKA
- 공부
- AWS EKS
- tucker의 go 언어 프로그래밍
- mysql 튜닝
- CKA 기출문제
- Pinpoint
- kotlin coroutine
- Elasticsearch
- golang
- Kubernetes
- Linux
- 기록으로 실력을 쌓자
- 오블완
- kotlin
- CloudWatch
- 정보처리기사 실기 기출문제
- aws
- 정보처리기사실기 기출문제
- APM
- AI
- docker
- PETERICA
- 코틀린 코루틴의 정석
- Today
- Total
목록전체 글 (863)
피터의 개발이야기

ㅁ 개요 ㅇ 성능 시험을 위해 검수기의 서비스 환경을 운영과 동일하게 업그레이드 하는 과정을 정리하였다. ㅇ 업그레이드는 Node, redis, RDS로 나뉘어서 진행되며, 여기는 Node 업그레이드 과정이다. ㅁ CloudFormation이란? Amazon Web Services(AWS) 리소스를 자동으로 생성해 주는 서비스이다. 사용하려는 AWS 리소스를 템플릿 파일로 작성하면, CloudFormation이 이를 분석해서 AWS 리소스를 생성한다. 이렇게 생성된 리소스를 스택이라고 한다. ㅁ 스택 작업 스택 템플릿에 scale up 설정을 하면, 아래의 정책에 따라 UpdatePolicy: AutoScalingRollingUpdate: MaxBatchSize: 2 MinInstancesInServic..

ㅁ 개요 ㅇ 개발계와 검수계는 비용절감을 위해 오전 9시~ 오후 6시에만 가동되고 있다. ㅇ 필요에 따라 AutoScale 그룹의 시간을 연장하는 방법에 대해서 정리하였다. ㅁ Auto Scaling 그룹 > 자동 조정 ㅇ Auto Scaling 그룹 > 자동조정에서 예약된 작업을 확인할 수 있다. ㅇ 주간 9~18시까지 운영하기 때문에 Auto Start와 Auto Shutdown 예약이 생성되어 있다. ㅇ Auto Shutdown을 선택 후 작업에서 편집을 클릭한다. ㅁ 예약 작업 편집 ㅇ 특정 시작 시간을 연장하고 싶은 시간으로 조정하여 변경 사항 저장을 하면 5월 23일은 오후 10시까지 시간이 연장된다.

ㅁ 개요 Mysql varchar 컬럼의 사이즈에 맞게 문자열을 짤라서 넣어야 되는 상황이었다. JAVA에서 책정한 문자길이와 디비 varchar에서 책정되는 문자길이가 다른점을 발견하였다. 정확히 varchar에 맞게 문자열을 짤라 넣기 위해서는 JAVA와 Mysql의 문자길이 체크 방법을 명확히 알아야만 한다. 그 방법에 대해서 정리하였다. ㅁ 테스트를 위한 TEST 테이블 생성 create table TEST ( TEST varchar(10) charset utf8 not null ); ㅁ Mysql의 length와 char_length 차이 비교 select TEST, CHAR_LENGTH(TEST) charLen, LENGTH(TEST) len from TEST; ㅇ char_length는 영어..

ㅁ 개요 ㅇ 운영상 특정 시기에 대량 트래픽일 몰릴 경우 RDS CUP 사용량이 90%가 넘는 경우가 있다. 이를 대비하기 위해 RDS Aurora의 성능업을 수행하고 반대로 성능다운 작업을 수행하였다. DB 인스턴스 클래스 조정 스케일업 과정을 정리한다. ㅇ 현재 디비는 master와 read 인스턴스, 이중화로 구성되어 있다. 1. Aurora DB 리더인스턴스 스케일업 DB 인스턴스 클래스 조정 -> 계속 버튼 즉시적용 -> DB 인스턴스 수정 버튼 2. DB Status 상태 확인 : 수정중 -> 사용가능 참고로 수정 중일 때에 새로운 DB인스턴스를 생성하고 데이터볼륨을 붙이는 작업을 진행함. 인스턴스 생성이 완료되면, 디비의 파라메터를 설정하는 상태로 변경됨. 3. AWS 대시보드 Replica..

ㅁ 개요 ㅇ Elasticsearch의 data 노드가 사용하는 볼륨에 DISK IO에서 비정상적인 지표가 확인되었다. ㅇ 원인분석을 하였지만, 트래픽도 평균을 유지하였고, Kibana에서 롱쿼리를 날리지도 않은 상태였다. ㅇ pod가 자체적으로 restart를 하는 것이 확인되어 ES data 두 노드를 재기동하였고 증상은 해결되었다. ㅁ Elasticsearch data의 모니터링 이유 ㅇ 144개의 컨테이너 중에서 elasticsearch data의 CPU와 메모리 사용량이 제일 높다. ㅇ 모든 컨테이너들의 로그를 처리하고 있어서 트래픽이 높아지면 elasticsearch의 부하도 함께 증가하기 때문에 모니터링이 필요하다. ㅇ 특히 data의 데이터 저장을 위해 disk IO가 많이 상승할 때가 있..

ㅁ 개요 ㅇ Elasticsearch를 이야기 하면서 개념적으로 헷갈리는 부분이 있어서 정리를 하였다. ㅇ index와 indices, node, Documents에 관한 설명이다. ㅁ 용어 개념 정리 ㅇ 도큐먼트는 가장 기본 단위로 로그 한줄을 말한다. ㅇ index는 도큐먼트의 논리적인 한 묶음이다. ㅇ indices는 언어적으로는 index의 복수형을 뜻하고, index의 물리적인 의미로 저장소 단위 개념이다. ㅇ shard는 indices의 분산저장 단위이다. ㅇ 위의 이미지를 참조하여 설명하면, elasticsearch의 인프라는 3개의 master node와 2개의 data node로 구성되어 총 5개 노드가 있다. ㅇ shard는 5개의 노드 중에서 data 노드에 24개의 indices가 ..

ㅁ 개요 ㅇ 기준 폴더의 개별 폴더들의 로그를 정리하는 쉘스크립트이다. ㅇ 3일 지난 파일을 압축 ㅇ 180일 지난 압축파일 삭제 #!/bin/sh # 기준 폴더 LOG_PATH=/logs # 기준 폴더 안의 개별 폴더 목록 SVC_TYPE_ARRAY=("acs" "abccard") # 로그정리 정리 로그(최근 로그만 남김) LOG_FILE=${LOG_PATH}/log_clean.out DAY=$(date +%Y-%m-%d --date '3 days ago') date > $LOG_FILE for svcType in "${SVC_TYPE_ARRAY[@]}" do # log zip tar -czvf $LOG_PATH/$svcType/$svcType.$DAY.tar.gz $LOG_PATH/$svcType/*..

[kubernetes] 모니터링 방법 정리 ㅁ 개요 ㅇ 대량 트레픽 서비스에서 퍼포먼스 향상을 위해서는 트레픽의 응답 시간 체크가 필수적이다. ㅇ 응답이 지연되는 프로세스를 체크하고 퍼포먼스를 향상함으로써 제한된 리소스에서 서비스의 TPS를 높여 고가용성을 얻을 수 있다. ㅇ 고가용성을 높인가는 것은 적은 리소스로 더 많은 요청을 처리하게 되면서 AWS 비용절감과 시스템 병목장애를 예방할 수 있다. ㅇ 그러므로 트레픽 응답 지연 모니터링은 DevOps의 필수적인 요소이다. ㅁ AWS 대상그룹의 대상 응답시간 지표 ㅇ 대부분의 트래픽이 1초 미만인 것을 확인 할 수 있다. 하지만 특정 트래픽은 1초 이상의 것이 확인되고 있다. ㅇ Cloud Watch에 8초 이상에 대해서는 경고를 설정해 두었다. ㅇ 이미..

ㅁ 개요 ㅇ AWS에서 Amazon EKS 업데이트 메일을 하나 받았다. 현재의 쿠버네티스 버젼 확인 과정을 기록한다. ㅁ AWS 메일 내용English follows Korean | 한국어버전 뒤에 영어버전이 있습니다 안녕하세요,Amazon EKS는 쿠버네티스 버전 1.19를 더 이상 지원하지 않으며 이 버전은 2022년 6월 30일부터 더 이상 지원되지 않습니다. 2022년 6월 30일부터 더 이상 새로운 1.19 클러스터를 생성할 수 없으며, 쿠버네티스 버전 1.19를 실행하는 모든 EKS 클러스터는 쿠버네티스 버전 1.20의 최신 플랫폼 버전으로 업데이트될 것입니다. 현재 쿠버네티스 버전 1.19에서 실행 중인 하나 이상의 EKS 클러스터가 있기 때문에 이 메시지가 표시됩니다.AP-NORTHEAS..

ㅁ개요 ㅇ 회사에서 APM으로 Whatap을 사용하고 있다. 하지만 레디스를 모니터링하는 부분이 부족하여 grafana를 이용하여 모니터링을 강화하기로 하였다. ㅇ Grafana를 위한 pod 혹은 인스턴스를 생성할 수 없는 상황이었다. 그래서 운영Redis에 접근 가능한 보안클라우드에 window 버젼으로 Grafana를 설치하였고, 그 과정을 기록하였다. ㅁ 인스톨 파일 준비 및 설치 redis-app-2.2.1 : 다운로드 링크 redis-datasource-2.1.1 : 다운로드 링크 grafana windows를 인스톨 한다. redis datasource를 위해 my-plugin에 플러그인을 압축해제한다. ㅁ Redis DataSource 설정 ㅇ main, sub redis datasouce..

JenKins] Dependency error 조치 과정을 기론한다. □ 개요 o 정기배포를 위해 Jenkins 빌드를 시도하였지만 Dependency Errors가 발견되어 조치했던 과정을 기록한다. □ 빌드 시 에러 확인 o 빌드를 시도하였는데 에러가 발생하였다. java.lang.NoSuchMethodError: No such DSL method 'containerTemplate' found among steps [archive, bat, build, catchError, checkout, deleteDir, dir, echo, error, fileExists, findBuildScans, getContext, git, input, isUnix, library, libraryResource, loa..

맥북에서 안드로이드 USB테더링을 꼭 연결해야만 했다. 장소에 따라서 보안상 WIFI 자체를 방해하는 곳에서는 WIFI 테더링도 불가능한 때가 있다. HoRNDIS을 사용하여, USB테더링을 시도하였지만 번번히 실패 하였다. Big Sur에서 지원되는 방법을 찾다가 HoRNDIS보다 훨씬 간단한 방법을 찾았다. 1. AX88178_Macintosh_Driver_Installer_v2.3.0.zip 파일을 다운 받아 압축을 해제한다. 2. AX88178_V2.3.0.pkg 실행을 실행한다. 3. 설치를 위해서 앱허용 절차를 거쳐야 한다. (설치 시 이미 성공을 하여 아래의 이미지는 참고용) 3. 설치 성공확인 참고로 나의 폰은 갤럭시S21이다. 참조 링크 https://kb.plugable.com/ques..

Apache Log4j 보안이슈를 대응했던 히스토리를 남깁니다. □ 개요 o Apache 소프트웨어 재단은 자사의 Log4j 2에서 발생하는 취약점을 해결한 보안 업데이트 권고[1] o 공격자는 해당 취약점을 이용하여 악성코드 감염 등의 피해를 발생시킬수 있으므로, 최신 버전으로 업데이트 권고 □ 주요 내용 o Apache Log4j 2*에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)[2] * 프로그램 작성 중 로그를 남기기 위해 사용되는 자바 기반의 오픈소스 유틸리티 □ 영향을 받는 버전 o 2.0-beta9 ~ 2.14.1 모든버전 □ 해결방안 1) 2.0-beta9 ~ 2.10.0 - JndLookup 클래스를 경로에서 제거 : zip -q -d log4j-core-*.jar org..

ㅁ 개요 ㅇ 프로젝트의 부하테스트를 수행하기 위하여 부하테스트 환경을 세팅해야만 했다. ㅇ nGrinder에 대해 설명하고, Docker로 설치하는 과정을 정리하였다. ㅁ nGfinder란? ㅇ nGrinder는 부하테스트를 위한 플랫폼으로 웹 애플리케이션 Controller와 자바 애플리케이션 Agent로 구성 되어있다. ㅇ 네이버에서 성능 테스트를 위해 개발된 오픈 프로젝트이며, The Grinder라는 오픈소스를 기반으로 개발되었다. ㅁ nGrinder Architecture ㅇ nGrinder는 두 가지 주요 구성 요소로 이루어진다. ㄴ Controller - 성능 테스트를 위한 웹기반의 GUI 서비스이다. - 부하를 발생하는 에이전트를 관리한다. - 테스트를 실시하고 모니터링한다. - 테스트 스..

ㅁ 개요 ㅇ DTO를 생성하다보면 파일의 수가 엄청나게 많게 된다. ㅇ 더러는 거의 비슷하거나, DTO 파일 중에 중복되는 컬럼들이 많다. ㅇ 이를 해결할 수 있는 Inner Class 사용법을 정리하였다. ㅁ 중첩된 Dto는 하나의 파일로 모아야 함. public class User { @Data @AllArgsConstructor @NoArgsConstructor public static class UserInfoDto { private String name; private String age; private String sex; } @Data @AllArgsConstructor @NoArgsConstructor public static class UserJoinDto { private String ..