일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kotlin spring
- 오블완
- MySQL
- APM
- Spring
- CKA
- 티스토리챌린지
- Java
- mysql 튜닝
- IntelliJ
- 공부
- 정보처리기사 실기 기출문제
- kotlin coroutine
- 정보처리기사실기 기출문제
- 코틀린 코루틴의 정석
- Pinpoint
- aws
- Linux
- AWS EKS
- PETERICA
- CKA 기출문제
- minikube
- Elasticsearch
- AI
- kotlin querydsl
- Kubernetes
- kotlin
- CloudWatch
- 기록으로 실력을 쌓자
- 정보처리기사 실기
- Today
- Total
목록전체 글 (789)
피터의 개발이야기
1. Infra as a Code란 IaC란 Infrastructure as a Code의 약자로 IT 서비스를 위한 시스템을 구성할 때 수동으로 구성하는 대시 Shell 기반의 스크립트(Shell Based Script)를 사용하여 컴퓨팅 인프라를 구성하는 기술을 말한다. 다시 말해, 인프라 구성을 프로그램 처럼 처리하는 방식을 가리킨다. 기존 기업들이 H/W 기반의 서버와 인프라를 사용하며 자체 IDC 호스팅을 통해 IT 인프라를 구축하여 운영하고 있다. 최근 스타트업과 메이저 기업들이 클라우드를 도입하면서 그 필요성과 요구가 늘어나게 되었다. 2. IaC를 도입 시 기대효과 1. 비용절감: IT 시스템의 운영괸리에 드는 인력과 비용을 절약하는 효과가 있다. 사람들이 할일을 시스템으로 하게 되면서 기..
ㅁ 들어가며 AWS 주요 참고 자료 목록을 정리함. AWS 자료는 자세하고 잘 정리되어 있지만, 너무 많아서 다시 찾아가기가 어려운 점이 있음. ㅁ IAM 권한 관련 ㅇ IAM ECR 프라이빗 레지스트리 사용 권한 설명 설정 ㄴ 레지스트리에 대한 사용 권한 정책을 추가하거나 업데이트할 수 있다. ㅇ IAM 역할을 사용한 AWS 계정 간 액세스 권한 위임 ㄴ 이 자습서는 소유하고 있는 다른 AWS 계정(Production 및 Development 계정)의 리소스에 역할을 사용하여 액세스 권한을 위임하는 방법에 관해 설명한다. ㅁ EC2 AutoScaling ㅇ AutoScaling Group 내 특정 인스턴스 유지방법 ㄴ 오토스케일 시 특정 인스턴스가 삭제 되지 않도록 조정가능함 ㅇ Amazon EC2 ..
1. DevOps란 무엇인가? 데브옵스(DevOps)는 소프트웨어의 개발(Development)과 운영(Operations)의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다. 또한 데브옵스는 소프트웨어 개발 조직과 운영 조직 간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다. 개발자(Dev)는 고객의 요구사항을 빠르게 수용해서 서비스를 개발하고 적용하길 원하며, 운영자(Ops)는 제공될 서비스가 안정적으로 동작하기를 원한다. 서로 다른 목적과 개발툴의 차이로 인해 빈번히 충돌이 발생하게 된다. 데브옵스는 개발자와 운영자의 소통, 협업 및 통합을 강조하는 문화, 방법론, 프로세스..
ㅁ 개요 ㅇ AWS 사용하는 모든 자원은 비용이 발생하기 때문에 사용하지 않을 시에는 정지해야 한다. ㅇ RDS와 EC2에 태그만 추가하면 이를 간편하게 구현하기 위해 자동으로 끄고 켜지도록 되어 있다. ㅇ 현재 구성되어 있는 AWS 솔루션을 분석하여 그 방법에 대해서 정리하였다. ㅇ Instance Scheduler 솔루션을 동영상으로 설명해주고 있다. ㅁ Instance Scheduler on AWS 솔루션이란? Instance Scheduler on AWS 솔루션은 Amazon Elastic Compute Cloud(Amazon EC2) 및 Amazon Relational Database Service(Amazon RDS) 인스턴스의 시작 및 중지 일정을 구성하여 AWS 리소스 비용을 제어하는 데 ..
ㅁ 개요 ㅇ Postman 테스트 요청 시 현재시간, 램덤 숫자를 생성하여 Body에 대입하는 방법 정리 ㅁ Pre-request Script var moment = require('moment') pm.globals.set("currentDate", moment().format("YYYYMMDDHHmmss")); pm.globals.set("intRnd", _.random(100000, 999999)) ㅇ Java Script 문법을 사용한다. ㅇ moment를 이용해 currentDate를 생성하였다. ㅇ _.random으로 intRnd을 생성하였다. ㅁ 생성된 데이터 사용 ㅇ 이중 {{}}를 사용하여 생성된 값을 바인딩한다. ㅁ 함께 보면 좋은 사이트 ㅇ https://learning.postman..
ㅁ 개요 ㅇ nGrinder 도커 환경 구성 후 간단 실행 과정을 정리하였다. ㅁ 간단 실행 방법 ㅇ google을 테스트 URL로 설정하였다. ㅁ 테스트 생성 ㅇ Test for www.google.com이 생성되었다. ㅁ 테스트 설정 ㅇ Agent : Agent수, Controller에 연결승인된 수만큼까지만 지정할 수 있다. ㅇ 에이전트별 가상사용자 : Agent당 가상 유저수, Process와 Thread로 구성한다. ㅇ 스크립트 : 테스트할 스크립트 ㅇ 테스트 대상 서버 : 테스트 대상 호스트 ㅇ 테스트 시간 : 테스트할 시간 ㅇ 실행 횟수 : 테스트 실행 횟수(각 Thread당으로 전체 실행 횟수는 Vuser per agent를 곱한 값이다) ㅇ Ramp-Up 사용 : 트래픽을 서서히 증가하게..
ㅁ 개요 ㅇ Amazon S3 버킷에 로그를 저장하고 있다. ㅇ 오래된 로그는 정리 작업을 통해 더 이상 스토리지 요금이 청구되지 않도록 해야한다. ㅇ S3의 과금은 용량에 비례하기 때문이다. ㅇ 로그자동 삭제를 위해 버킷에 저장된 객체들의 수명 주기를 구성할 수 있다. 그 방법에 대해서 정리하였다. ㅁ S3 수명주기 생성 방법 ㅇ 버킷을 선택하고 관리를 클릭한다. ㅇ 생성된 수명 주기의 현재 상태는 Enable ㅇ 수명 주기 규칙 생성을 클릭한다. ㅁ 모든 객체 적용 수명주기 ㅇ 버킷의 모든 객체에 적용하였다. ㅇ 수명 주기에는 현재 버전과 이전 버전 작업이 나뉘어 있다. ㅇ Amazon S3의 버전 관리는 동일 버킷 내에 여러 개의 객체 변형을 보유할 수 있다. ㅇ S3 버전 관리를 사용하면 버킷에 ..
ㅁ 개요 ㅇ AWS로부터 DB OS 업그레이드 안내 메일을 받아서 확인하는 과정을 정리하였다. ㅁ AWS DB OS 업그레이드 메일 안녕하세요, 하나 또는 그 이상의 Amazon 관계형 데이터베이스 서비스 (Amazon RDS) 의 데이터베이스 (DB) 인스턴스에 대한 새 운영 체제 (OS) 업데이트를 할 수 있게되어 연락을 드립니다. AWS 상태 대시보드의 “영향 받는 리소스” 탭에서 대상이 되는 RDS 인스턴스의 목록을 확인 하실 수 있습니다. 이는 필수로 해야 하는 패치입니다. 2022년 8월 30일 이전 까지 OS 를 업그레이드하지 않을 경우, Amazon RDS 는 2022년 8월 30일 또는 그 이후에 예정된 유지 관리 기간 동안 OS 를 자동으로 업그레이드 합니다. 이 OS 업그레이드는 Am..
ㅁ 개요 ㅇ 개발과 검수기의 인스턴스는 주기적으로 파일시스템 관리를 해 주어야 한다. 레드마인과 GIT도 인스턴스로 상시 가동이기 때문에 지속적인 사용에 따른 용량이 증가할 수가 있다. ㅇ 볼륨이 부족하면 EBS 볼륨 크기를 늘리고, Linux에 확장된 볼륨을 마운트시키기 위해 작업이 필요하다. ㅁ 인스턴스 볼륨 수정 ㅇ 볼륨의 수정을 시작하면 modify를 거쳐 optimizing 상태가 된다. 이 때에 파일 시스템의 크기를 조정할 수 있다. ㅁ EBS 볼륨 크기 조정 후 Linux 파일 시스템 확장 ㅇ 이 과정은 AWS 자료를 참조하면 된다. 예제 링크 1. df -hT 명령을 사용하여 사용 중인 파일 시스템을 확인한다. 2. lsblk 명령을 사용하여 볼륨에 확장해야 하는 파티션이 있는지 확인한다...
ㅁ 개요 몽고디비 작업에 데이터를 저장하는 로직에 지연이 발생하여, 결국 몽고디비 볼륨을 증설해야 했다. 볼륨을 증설하는 이유와 PV 볼륨 증설 방법에 대해서 정리하였다. ㅁ 몽고디비의 볼륨을 증설하는 이유는? 몽고 디비에 장기 보관이 필요한 데이터를 저장하는 로직에서 지연이 발생하였다. 몽고디비 저장 Redis Que에 적체현상이 모니터링 되었고, AWS Cloud Watch에서는 몽고디비 볼륨의 디스크IO의 유휴지표가 0로 수준이었다. 다시 말해 처리량에 비해 디스크속도가 부족하였다. 몽고디비 볼륨 유형은 gp2였다. Amazon EBS gp2 볼륨의 한계성은 [AWS] Amazon EBS gp2 vs gp3 비교에서 자세히 설명하였다. 간단히 설명하면, gp2의 경우 IOPS를 놓이려면 디스크 크기..
ㅁ 개요 ㅇ PostMan으로 테스트 시에 인증토큰 값은 변수로 지정하여 사용하면 편리하다. 토큰값을 변수로 지정하면 복사해서 다른 테스트요청에 붙일 필요가 없다. ㅇ PostMan의 Tests를 이용하여 받은 값은 변수로 지정하는 방법을 정리하였다. ㅁ PostMan Tests 탭 var data = pm.response.json(); pm.environment.set("prod_token", data.token); pm.environment.set("prod_refresh_token", data.refresh_token); pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); ㅇ responseBoby를 jso..
ㅁ 개요 Redis slowlog를 모니터링하는 중 KEYS가 롱쿼리로 감지되어, SCAN으로 변경하여 Redis Blocking 시간을 최소화한 과정을 정리하였다. ㅁ Redis 모니터링의 필요성 ㅇ 현재 내가 담당하는 시스템은 대량 트래픽을 처리하고 있다. 그래서 메인 디비로 Redis를 사용하고 있다. ㅇ 고성능 고가용성을 위해 쿠버네티스 환경으로 구축되었고, 어플리케이션 내의 개별 프로세스도 비동기형태로 구현되어 있다. ㅇ RDS의 처리 속도가 보장되지 않아 Redis를 사용하고 있기 때문에 Redis의 slowlog확인을 통해 10ms 이상인 것은 지속적으로 튜닝을 해야만 전체 서비스의 TPS를 보장할 수 있다. ㅁ Grafana Slow log 확인 ㅇ HKEYS 명령어가 10ms 이상 발생하..
ㅁ 개요 ㅇ ELB 쪽에서 처리 지연 알람이 발생하였다. 외부에서 연동된 정보를 처리하면서 내부처리 로직의 수행시간이 지연이 되면서 전체 응답속도에 지연이 발생한 것이다. ㅇ 구체적인 원인은 Redis Scan 명령어 처리 시에 count가 기본 10으로 책정되어 있어서 발생한 문제점이었다. ㅇ 이 문제점을 분석하면서 수행하였던 Scan performance 테스트 과정을 정리하였다. ㅁ Redis Scan이란? ㅇ HSCAN key cursor [MATCH pattern] [COUNT count] 명령문으로 사용하고 count를 통해 분할 조회 건수를 조정할 수 있고, pattern으로 like 조회를 지원한다. pattern은 GLOB style pattern이다.patter..
ㅁ 개요 ㅇ 새롭게 오시 개발자분이 환경 세팅 시 라이트 인스턴스를 사용하여 운영부하를 발생시키는 일이 발생하였다. ㅇ DB사용 시 리더 인스턴스와 라이터 인스턴스는 반드시 구분해서 사용해야 한다. ㅇ 통계 조회 시에는 비교적 부하가 적은 리더 인스턴스에서 작업을 하는 것이 맞다. ㅇ 하지만 Fail Over처리 후에는 디비 인스턴스의 역할이 바뀌는데 이를 모르고 잘못접속하는 실수를 할 수 있다. ㅇ 이를 방지하기 위해서는 리전 클러스터의 엔드포인트로 접속을 하면 된다. ㅁ 디비 인스턴스의 엔드포인트 ㅇ 디비 인스턴스의 엔드포인트는 해당 인스턴스 고유의 엔드포인트이다. ㅇ 디비 접속 정보에 고유 엔드포인트를 통해 접근할 경우 현재 인스턴스의 역할을 반드시 확인을 해야만 한다. ㅁ 리전 클러스터의 엔드포인..
ㅁ 개요 ㅇ Grafana나 다른 APM 툴이 없는 상태에서 Redis를 서버상에서 모니터링하는 방법에 대해서 정리해 보았다. ㅁ Redis 접근 shell 작성 [ec2-user@PRD-PETERICA-BASTION ilovefran]$ cat cli.sh #!/bin/sh redis-cli -h prd-peterica-main.cache.amazonaws.com $@ ㅇ 서버에서 접속하지 않고 명령어를 수행 할 수 있도록 shell를 하나 생성한다. ㅁ Redis 키별 용량 확인 [ec2-user@PRD-PETERICA-BASTION ilovefran]$ sh cli.sh --bigkeys # Scanning the entire keyspace to find biggest keys as well as..