인프라 공방

·인프라 공방
해당 학습 내용은 [인프런]  인프라공방 - 그럴듯한 서비스 만들기 강의를 기반으로 학습한 내용을 정리한 내용입니다.   성능 테스트에 관한 기본적인 내용을 학습했으니 시나리오를 기반으로 성능 테스트를 연습해봅니다. 첫 번째 시나리오 : 회원 가입 요청 지연요구사항컨퍼런스 신청 플랫폼을 오픈했다. 사이트 접속자가 회원가입을 하는데 지연이 발생한다는 문의를 받았다.VUser별 iteration time이 100ms 이하여야 한다. (1) 우선 해당 문제를 재현해보자.먼저 지연이 발생한 증상 재현 및 원인 파악을 위해 smoke test 를 통해 테스트를 진행해봅니다. 테스트 실행 조건과 실행 결과 아래와 같습니다. smoke test 결과 average response time 이 1200ms 로 목표 i..
올라가는 AWS 서버 비용으로 인해 nGrinder 를 로컬 환경에서 진행하기로 했다. 네트워크 환경이 클라우드 환경과는 달라 차이가 있을 수 있지만 부하는 대응하기 위한 테스트를 하기 위해서는 테스트 작업으로 로컬 환경에서 환경을 구성해보기로 했다. ngrinder 에서는 로컬 환경에서 구성 방법과 에러 기록들을 간단히 기록해놓는다. 설치했던 버전은 현재 최신 버전인 ngrinder-controller ver.3.5.9 을 사용했다. 1. ngrinder-controller & ngrinder-agent 설치 [1] download ngrinder-controller(1) download ngrinder-controller filengrinder github 에 접속해 원하는 버전의 ngrinder-c..
가용성가용성은 시스템이 서비스를 정상적으로 제공할 수 있는 상태를 의미한다.가용성을 높이기 위해서는 SPOF(Single Point of Failure) 를 없애고 확장성 있는 서비스를 만들어야 한다. 1. 성능의 기준 3가지 : users, tps, timeusers : 얼마나 많은 사람들이 동시에 사용할 수 있는지tps : 일정 시간동안 얼마나 많이 처리할 수 있는지time : 서비스가 얼마나 빠른지 [1] userconcurrent user & active userconcurrent user : 계속해서 요청을 보내지 않는 사용자를 말한다. 즉, 웹 페이지를 그저 띄워두고 있는 사용자를 말한다.active user : 계속해서 요청을 보내는 사용자를 말한다. 성능 테스트에서 VUser 는 Activ..
이번 기록은 nGrinder 에 대해 알아보고 연습해보는 과정에 관한 기록이다.    nGrinder 는 jpython(python running on JVM) 으로 작성된 네이버에서 제공하는 오픈소스 부하 테스트 도구이다. 크게 Controller 와 Agent 로 구성되어 있어 여러 개의 동시 테스트가 가능하도록 여러 기능을 확장이 가능하고 TPS over VUser, Reliability over Accuracy 와 같은 철학을 가지고 있다. naver 에서 말하는 nGrinder 에서 제공하는 기능은 아래와 같다. nGrinder 에서 이야기하는 기능 제공에 관한 내용을 번역한 내용Jython 스크립트를 사용하여 테스트 시나리오를 생성하고 여러 에이전트를 사용하여 JVM에서 스트레스를 생성하세..
요약, 이벤트 기록, 스냅샷서버 진단 시, 서버로 부터 수집해야 할 정보는 요약, 이벤트 기록, 스냅샷이다.요약 : 단위 시간 정보의 합계나 평균을 의미하며 sar, vmstat 과 같은 명령어를 통해 확인할 수 있다.이벤트 기록 : packet, system call 과 같은 정보들의 순차적인 기록들을 의미한다.스냅샷 : 순간의 상태를 기록하는 것을 의미하여 현재 문제가 발생하고 있지 않는지, 발생한다면 원인 조사를 하는데 사용한다.요약 정보로 각 리소스의 대략적인 상태를 파악하고 스냅샷으로 원인을 파악한다. 이벤트 기록은 장애 상황에서 사용하기에는 데이터가 방대하여 그 자체에 영향을 줄 수 있으므로 문제 상황 재현 등에 활용한다.(⭐️ 중요) 로그, 요약 정보의 일정 수치에 알람 설정을 해두고 스냅샷..
1. Project 서버 구성[1] AutoScaling 환경에서 API call 에 관한 고민 프로젝트의 구성은 Gradle 기반 멀티 모듈로 구성되어 있었다. 이전 프로젝트 인프라와 다른 점은 BFF 패턴(Backend For Frontend) 으로 구성하고 있어 conference, analysis server 에 api call 을 해야 한다는 점이 가장 큰 차이였다. 프로젝트 환경을 구성하면서 가장 고민되었던 점은 Scale out 환경에서 어떻게 api call 을 할 것인가? 이다. API call 을 하는 가장 간단한 방법은 IP, PORT 에 관한 서버 스펙을 기반으로 요청하는 것이다. 하지만 Scale out 환경에서는 상세한 서버 스펙을 아는 것은 한계가 있다. Scale out 되는..
cooper25
'인프라 공방' 카테고리의 글 목록