일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- AWS EKS
- Linux
- mysql 튜닝
- 공부
- Pinpoint
- Kubernetes
- aws
- IntelliJ
- 코틀린 코루틴의 정석
- 오블완
- kotlin querydsl
- kotlin coroutine
- 정보처리기사 실기
- kotlin
- MySQL
- AI
- PETERICA
- Elasticsearch
- kotlin spring
- APM
- 티스토리챌린지
- minikube
- CloudWatch
- Spring
- CKA 기출문제
- 정보처리기사 실기 기출문제
- 기록으로 실력을 쌓자
- CKA
- 정보처리기사실기 기출문제
- Today
- Total
목록전체 글 (791)
피터의 개발이야기
ㅁ 개요 ㅇ 운영하다보면 데이터를 직접 헨들링할 경우가 있다. ㅇ 반복적인 작업을 대량으로 수행하기 위해 File내용을 기반으로 처리할 수 있도록 하였다. ㅇ redis의 작업을 수행하면서 오류를 최소화하고 작업이력을 남기기 위해 스크립트를 작성하였고, 그 과정을 정리하였다. ㅁ Script #!/bin/sh LOG="./redis.log" COMMAND=$1 REDIS_KEY=$2 FILE=$3 TODAY=$(date) # 필수값 체크 if [ $# -ne 3 ] then echo "param error [command / key / file]" exit 0; fi echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" echo ">> START : $TODAY" >> $LOG ec..
ㅁ 개요 ㅇ linux 서버에서 JSON 데이터를 볼 때가 많이 있다. 직렬화된 json을 보기는 쉽지 않다. ㅇ 이를 해결하기 위한 방법으로 jq명령어를 사용하면 JSON을 이쁘게 볼 수 있다. ㅁ 설치 ㅇ 맥의 경우 brew install jq ㅁ 사용법 ㅇ JSON string 파이프라인으로 재처리 하면 이쁜 JSON을 볼 수 있다.$ echo '{"foo": "bar"}' | jq ✔ 5238 23:20:52{ "foo": "bar"}$ echo '{"foo": "bar"}' | jq '.foo' ..
ㅁ 개요 ㅇ kubernetes 환경으로 Redmine을 구성하는 과정을 정리하였다. ㅇ 중간에 예행연습으로 생성한 redmine의 볼륨의 영향으로 트러블이 발생하여 PV를 삭제한 후 재설치하여 정상 설치가 되었다. ㅁ Helm Remote Repository 연결 helm은 잘 구축된 템플릿을 원격 리파지토리를 이용하여 손쉽게 가져올 수 있다는 강점이 있다. 쿠버네티스 생태계에서 잘 짜여진 템플릿을 사용하여 원하는 환경을 빠르게 구축할 수 있다. 우선적으로 원격 저장소를 연결해야 한다. # 원격 저장소 리스트 확인 $ helm repo list Error: no repositories to show # 원격 저장소 추가 helm repo add stable https://charts.helm.sh/st..
ㅁ Helm이란 Helm이란, kubernetes를 위한 패키지 관리 도구로, yaml 파일의 모음이라고 할 수 있다. apt, yum 툴처럼 플랫폼의 패키지를 관리하듯 kubernetes의 오브젝트들의 구성체인 yaml을 패키지 형태로 관리한다. helm 패키지는 YAML 형식으로 구성되어 있으며, 이것을 chart라고 한다. ㅁ Helm을 사용하는 이유 Infra 자원이 단순한 경우 kubectl 명령어를 통해 개별 오브젝트에 대한 설정과 관리는 충분히 가능하다. 하지만 앱이 증가하고 팀단위로 인프라가 확장될 경우 개별 오브젝트에 대한 YAML을 개별적으로 관리할 경우 파일의 갯수와 코드량의 증가로 관리에 어려움이 발생하게 된다. 그래서 정적인 Template에 동적인 설정 값(Value)으로 오브젝..
ㅁ 개요 상황에 따라 GUI가 아닌 터미널에서 SQL 작업을 하게 되는 경우가 있다. 이런 경우 CLI를 통해 직접 SQL를 편집하고 실행하는데, SQL 파일을 통해 편집하여 실행하면 실수나 기존 SQL를 보존하여 더욱 편리하다. 이번 글에서는 맥에 CLI를 설치하고 SQL 파일을 실행하는 과정을 정리하였다. ㅁ Brew를 이용한 mysql과 mysql-client 설치 ㅇ brew 명령어 사용 시 자동완성기능을 이용하면 효율적이다. ㅇ brew install mysql 입력 후 탭 키를 누르면 위의 이미지처럼 install 가능한 목록을 확인 할 수 있다. ㅇ mysql과 mysql-client를 선택한 후 커멘드 실행하면 install이 시작된다. ㅁ 설치 확인 ㅇ 설치 확인을 위해 mysql --v..
ㅁ 개요 ㅇ 부하테스트를 위해 시뮬레이터 환경을 구성하고 RDS Aurora MySQL을 사용 중이다. ㅇ 환경이 보안망에 구축되어 있어 외부에서 직접 접근이 막혀 있는 상황이다. ㅇ 부하테스트를 위해 예외적으로 EC2 서버를 SSH 터널링 하여 접근하게 되었고 그 과정을 정리하였다. ㅇ DataGrip이 있지만 개발의 편의성을 위해 Intellij의 DataBase를 주로 이용하고 있다. ㅁ SSH설정하기 ㅇ Data Sources and Drivers 창에서 SSH/SSL 탭을 클릭하였다. ㅇ Use SSH tunnel을 체크한다. ㅇ 기존 SSH 접근 host입력한다. ㅇ EC2의 기본 유저인 ec2-user를 입력한다. ㅇ Auth type은 Password, Key pair, OpenSSH가 있..
ㅁ 개요 ㅇ 이전 글인 [Elasticsearch] Elasticsearch DISK IO 병목현상 및 재기동 방법에서 burst traffic으로 인해 ES Data가 병목이 발생하여 해결하는 과정을 정리를 하였었다. ㅇ 현재 E/S Data 볼륨이 brust traffic 상황에서 gp2 볼륨 한계성으로 인해 Throttling 발생하여 2TB의 용량으로 확장하여 6000IOPS를 유지하고 있는 상황이다. ㅇ gp2에서 gp3의 확장이 필요하며,ES과 같은 대량의 트래픽을 처리하는 서비스에서 gp2보다는 gp3가 비용적 성능적으로 최적화 되어 있어서 구체적으로 그 차이를 정리하고자 이 글을 작성하였다. ㅁ Amazon Elastic Block Store(EBS)란? Amazon Elastic Bloc..
[kubernetes] 쿠버네티스 목차 [kubernetes] 모니터링 방법 정리 ㅁ Minikube 관련 글 ㅇ [minikube] 맥에 minikube를 사용해 로컬 kubernetes 설치 ㅇ [minikube] minikube 기본 명령어 정리 ㅇ [minikube] minikube 다중노드 구성하기 ㅇ [minikube] minikube에서 meteric server 실행하기 ㅇ [minikube] minikube dashboard 활성화 방법 ㅁ 개요 ㅇ 이전 글에서 minikube를 설치하고, 간단히 dashboard를 확인하였다. ㅇ 이번 글에서는 dashboard와 addone 활성화 하는 방법을 정리하였다. ㅁ minikube의 대시보드를 활성화 확인 $ minikube addone l..
ㅁ 개요 Webflux로 파일객체를 받아 동기화 하는 로직을 테스트 중 이었다. Postman으로 테스트 과정에서 Invalid boundary in the content type multipart/form-data 다음과 같은 에러가 발생하여 해결하는 과정을 정리하였다. ㅁ 발송 Postman Head와 Body curl --location --request POST 'https://127.0.0.1:8080/legacy/v1/npdb/npdb_00001' \ --header 'Content-Type: multipart/form-data;' \ --form 'file=@"/Users/peterseo/test_10000.sql"' ㅇ 발송할 때에 Content-Type을 multipart/form-dat..
ㅁ 개요 ㅇ AWS의 인스턴스를 생성하면 Date가 항상 UST가 기본으로 되어 있다. ㅇ Timezone을 한국 표준(KST)로 변경하는 과정을 정리하였다. # Localtime 심볼릭 링크를 재설정한다. $ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime # 적용 확인 $ Date 2022. 08. 24. (수) 21:16:52 KST
ㅁ 개요 개발 회의 도중에 kubernetes 환경에서 구성된 mongoDB의 볼륨을 변경하는 작업이 안건으로 나왔다. 빠르게 kubernetes > mongoDB의 환경을 구성해 보았다. ㅁ 참조 페이지 ㅇ 2개정도 페이지를 참조하여 시도하였지만 실패하였다. ㅇ namespace로 분리를 하여 실패 시 namespace를 지우면 깔끔하게 초기화를 할 수 있다. [ec2-user@ip-172-31-43-214 ~]$ kubectl delete namespaces mongodb namespace "mongodb" deleted How To Deploy MongoDB On Kubernetes - Beginners Guide This article explains the step by step guide to..
ㅁ 개요 SOAP과 REST 비교에 관한 글을 작성하였고, 이번 글은 간결한 URI에 대해서 정리하였다. 이전 글을 읽어보면 REST API의 핵심은 간결성이며, 그 간결성을 통한 궁극적인 통신 속도에 최적화이다. 다시 정리하여 말하자면, SOAP(Simple Object Access Protocol)는 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들로 정의되어 보안을 강조하는 금융권에서 사용하고, REST는 아키텍처 스타일로 기업들에서 애플리에이션 서버에 접속할 수 있는 도구로서 빠른 속도와 수정의 용이성으로 인해 빠르게 시장의 요구를 수용할 수 있다. ㅁ REST API의 탄생 REST는 Representational State Transfer라는 용어의 약자로..
ㅁ 개요 EKS 버젼 업그레이드 테스트 중 기존 생성자 계정와 달라서 권한 문제가 발생하여 신규로 EKS를 생성하게 되었다. 그 과정에서 기존 CLI의 계정을 초기화하고 EC2 Role에 부여된 권한이 필요하였다. 그래서 aws configure에 등록된 Key 정보 초기화하였고 그 정리하였다. ㅁ .aws 폴더 구조 [ec2-user@ip-172-31-43-214 .aws]$ pwd /home/ec2-user/.aws [ec2-user@ip-172-31-43-214 .aws]$ ls config credentials [ec2-user@ip-172-31-43-214 .aws]$ cat config [default] region = ap-northeast-2 [ec2-user@ip-172-31-43-214..
ㅁ 개요 AWS EKS로 구성된 워커노드가 가동되어 파드들이 생성되는 과정에서 생성 지연되고 있었다. 원인은 kubernetes 특정 노드가 IP를 과점유하면서 다른 노드에서 파드 생성 시 프라이빗 IP가 부족하여 발생하는 문제였다. 원인 분석 과정에서 WARM_IP_TARGET와 MINIMUM_IP_TARGET의 설정 방법에 대해서 알게 되어서 그 과정을 정리하였다. ㅁ 파드 생성 지연 발생 ㅇ 새로운 노드에서 파드들이 생성되는 중에 지연이 발생하였다. ㅇ 그림처럼 43분동안 계속 ContainerCreating 상태에서 지연이 발생하였다. ㅁ 노드 CPU 부하 확인 ㅁ 특정 노드에 IP 과점유 상태 확인 ㅇ 시스템 점검 중 노드에 보조 프라이빗 IP가 너무 많은 것을 확인하였다. ㅁ WARM_IP_T..
ㅁ 개요 kubernetes 환경에서 노드와 자원의 상태를 확인하기 위해 kubectl top 명령어를 자주 사용한다. 신규 EKS를 설치하고 TOP 명령어가 작동하지 않아 그 원인을 찾고 해결하는 과정을 정리하였다. ㅁ Metrics Server 란? Metrics Server는 클래스터 전체의 리소스 사용 데이터를 어그리게이션합니다. 각 노드에 설치된 kublet을 통해서 노드나 컨테인너의 CPU나 메모리 사용량 같은 메트릭을 수집한다. HPA(horizontal pod autoscaler)나 kubectl top 명령어를 사용하려면 metrics-server를 사용해야 한다. ㅁ 에러 발생 [ec2-user@ip-172-31-43-214 ~]$ kubectl top no error: Metrics ..