본문 바로가기

DevOps97

Devops Day 62 (6.2) 서비스 모니터링_쿠버네티스 클러스터 모니터링 쿠버네티스 클러스터 모니터링 쿠버네시트의 경우 클러스터안에 다수의 노드 그리고 그 안에 파드를 비롯한 다앵한 워크로드가 많게는 수백 개가 실행되는 형태로 구성되어 있습니다. 단일 노드의 경우 리눅스 명령어를 이용하여 하드웨어의 상황을 파악하고, 각 프로세스 모니터링을 했다면, 쿠버네티스의 경우 각 노드는 전적으로 컨트롤 플레인에 의해 관리되므로 우리는 모니터링에 대해 다른 접근 방법을 가져야 합니다. 클러스터 환경에서의 문제 해결의 어려움 클러스터 모니터링에서도 노드가 사용하는 리소스를 확인할 수 있습니다. 대표적으로 kubectl top 명령어가 있습니다. 이 명령어는 노드와 파드가 각각 얼마만큼의 CPU/메모리 리소스를 사용하고 있는지 확인할 수 있습니다. 여러 개의 마이크로서비스가 워크로드로서 실행.. 2023. 6. 3.
Devops Day 61 (6.1) 서비스 모니터링_Sprint Auto Scaling + CloudWatch를 이용한 알림 Bare Minimum Requirement · EC2 서버를 ASG를 통해 구성합니다. 구성은 다음을 따릅니다. · CloudWatch 알람을 통해 ASG의 스케일 인/아웃을 진행합니다. · 스케일 인/아웃이 진행될 때 디스코드에 알림을 보냅니다. · 메트릭을 바탕으로 장애 발생 예상 시점에 디스코드에 알림을 보냅니다. · CPU 사용률(CPUUtilization) 값이 특정 값 이상일 때 경보가 발생하게 하세요 Getting Started 시작 템플릿 구성 ASG를 위한 시작 템플릿 구성은 다음을 따릅니다. · 그룹 정보 o 원하는 용량: 1 o 최소 용량: 1 o 최대 용량: 3 · 시작 템플릿은 다음 구성을 따릅니다. o Ubuntu Server (LTS) o t2.nano o 기존 혹은 신규 키.. 2023. 6. 1.
Devops Day 60 (5.31) 서비스 모니터링_모니터링의 목표와 측정 항목 모니토링의 목표 메트릭이란 : 시간에 따라 측정한 결과값입니다. 보다 넓은 의미로는 비즈니스 개념을 나타내는 수치 측정을 의미하기도 합니다. 모니터링의 목표 : 1. 시간을 기준으로 측정되는 주요 메트릭을 최소화하여 고가용성을 달성 2. 사용량을 추적하여, 배포에 앞서 세운 가설을 검증하고 개선 - 애자일에서는 “검증된 학습(Validated learning)을 적용한다”라고 합니다. - Validated learning : https://www.boldare.com/blog/lean-startup-validated-learning/ 주요 벤더들이 이야기하는 모니터링의 목표와 메트릭 구글이 이야기하는 모니터링의 목표는 다음과 같습니다. 장기적인 트렌드 분석 (Analyzing long-term trend.. 2023. 6. 1.
Devops Day 59 (5.30) Project 3_마이크로서비스_Day 4 야크쉐이빙 (Yak Shaving) Project 3 야크쉐이빙 : Day 3 Step 4 Stock-Lambda 생성하여 factory-api와 연결 하는 과정에서 문제가 발생했습니다. 1. Factory-api 와 연결 위한 코드 작성해서 배포 시도하려고 했으나…AWS Lambda console에 Stock-lambda 생성하여 코드 배포 방법이 없음 2. 그래서 Console로 Stock-Lambda 삭제하고 sls 으로 yaml 파일 작성 해서 이상없이 배포했음 3. 하지만 다른 문제가 발생했음…. Postman이나 AWS CLI 통해 Curl X Post 명령어로 Factory-api 연결 상태 확인했지만…error 메세지가 생김 4. Error 메시지 확인해서 코드 수정하려고 시작했지만… 문제.. 2023. 5. 30.
Devops Day 58 (5.26) Project 3_마이크로서비스_Day 3 Step 4 : 데이터베이스의 재고를 증가시키는 Lambda 함수 생성 - 데이터베이스의 재고를 증가시키는 Lambda 함수(stock-increase-lambda)를 배포 - stock_lambda에서 레거시 시스템(Factory API)에 제품 생산 요청 - 위의 Factory API 문서를 활용하여, 코드를 작성해야 합니다. - stock_lambda 프로젝트에 npm install axios 명령으로 axios 라이브러리를 설치해야 합니다. axios는 node.js에서 HTTP 명령을 보내는 라이브러리입니다. (fetch와 유사) - 코드 맨 윗줄에 const axios = require('axios').default를 추가합니다. 4.1 데이터베이스 폴더로 들어가 stock-increase-l.. 2023. 5. 30.
Devops Day 57 (5.25) Project 3_마이크로서비스_Day 2 Github - Repository for Project 목표 - 메시지 큐의 Pub/Sub 패턴과 Producer/Consumer 패턴의 차이를 이해한다 - DB와 서버와의 통신이 가능하도록 연결한다 - 특정 상황에서 SNS, SQS로 메시지가 전달되도록 시스템을 구성한다 - SQS에 들어온 메시지를 레거시 시스템(Factory API)으로 전달하는 시스템을 구성한다 - 레거시 시스템(Factory API)의 콜백 대상이 되는 리소스를 생성해 데이터베이스에 접근할 수 있게 한다 Step 1 - Lambda 서버(Sales API) - DB 연결 1. git clone 후 sales-api 디렉토리로 들어가 CLI에 “serverless deploy” 합니다. 2. Serverless deploy 후 M.. 2023. 5. 30.