트래픽 증가에 따른 시스템 설계 및 확장 방법
·
Server&load/load test
트래픽 증가에 따른 시스템 설계 및 확장 방법은 병목지점에 따라 성능 개선 방법이 달라진다.시스템 설계 방식가장 간단한 형태EC2서버 한 대에서 프론트엔드, 백엔드, DB 관련 프로그램을 전부 실행시키는 형태의 구성장점하나의 서버에서 모든 리소스를 관리하기 위해 관리 및 조직이 간단함.다양한 리소스를 쓰지 않기 때문에 비용이 적게 나옴.단점데이터베이스가 많은 컴퓨팅 자원을 사용하여, 웹 애플리케이션 성능에 악영향을 줌.위와 같은 단점 때문에 별도 서버를 분리하는 형식을 많이 가져감.데이터베이스 분리웹 서버와 데이터베이스를 분리한 인프라 구성단점인프라 구성에서 트래픽이 많아지면 정적 파일을 제공하는 부분에서 문제 발생 가능성이 큼.정적 파일은 용량이 크므로 컴퓨팅 자원을 많이 소모하여 서버 과부화가 걸릴 ..
병목 지점을 해결하여 성능 개선하기
·
Server&load/load test
가용성가용성이란?시스템이 서비스를 정상적으로 제공할 수 있는 가능성서비스에 장애가 발생할 확률이 극히 적은 시스템을 가용성이 높은 시스템이라고 함.서비스가 다운되는 시간이 긴 시스템을 가용성이 낮은 시스템이라고 함가용성을 높이기 위한 시스템 설계 방법서비스 사용 불가능 시간을 최대한 발생시키지 않게 하고,발생하더라도 시간을 짧게 만들기 위해 시스템 이중화를 사용.시스템 이중화시스템 이중화란?시스템의 일부분을 사용할 수 없게 되어도 다른 시스템을 이용하여 서비스를 계속 이용할 수 있도록 만듬.위 이미지 중 EC2중 하나에서 서비스가 고장났을 때, 또다른 서 버를 통해서 연결할 수 있도록 조치수평적 확장과 수직적 확장수평적 확장특정 시스템 성능을 올리기 위해 시스템 개수를 늘림장점시스템 이중화를 통한 가용성..
병목현상 측정환경 생성 및 병목지점 진단.
·
Server&load/load test
병목현상 측정환경 생성인프라 구성EC2에 부하테스트 툴 세팅하기인스턴스 시작.이름, OS 설정부하테스트를 위한 인스턴스 유형 설정사양이 충분해야 더 많은 부하를 진행할 수 있음.네트워크 설정 편집 후 5665 포트 설정K6가 부하테스트 진행 후 결과 데이터를 실시간으로 보여주는 웹페이지에서 사용.인스턴스에 k6 설치인스턴스 연결 후 아래 명령어 진행.sudo gpg -k && /sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69 && /ech..
모니터링과 메트릭
·
Server&load/load test
모니터링어떤 대상을 지속적으로 감시하는 것을 의미함.모니터링이 필요한 이유병목 지점 파악을 위해 자원 사용량을 알아야 함.EC2, DB, 캐시 등의 사용량이 필요한데, 컴퓨터가 무언가 요청 후 처리를 진행하기 때문.즉, 무언가를 처리하기 위해서는 cpu, memory와 같은 자원이 필요하고, 최대한의 요청을 처리하고 있다면, 자원 사용량이 100%가 됨.특정 자원 사용량이 100%인 컴퓨터가 병목지점임을 알 수 있다.메트릭메트릭은 수치 data. 즉, 측정값을 의미함.즉, cpu, memory와 같은 값을 전부 메트릭이라고 할 수 있다.CPU, Memory, Disk 사용량CPU명령어(코드) 를 해석하고 실행한다.memorycpu 가 작업하기 위해 임시로 사용하는 공간.디스크보다 메모리로부터 데이터를 가..
부하 테스트의 기본 개념
·
Server&load/load test
부하테스트부하 테스트란?시스템이 어느정도의 부하를 버틸 수 있는지 테스트하는 것을 의미함.여기서 시스템이란 전체 인프라를 의미함.부하테스트를 하는 이유서비스를 배포하기 전에, 백엔드 서버가 어느정도 요청을 견딜 수 있는지 부하 테스트를 진행.어느 정도의 트래픽을 감당할 수 있는지 미리 파악함으로써, 부하 상황을 예상하고 대처할 수 있음.즉, 대규모 트래픽 처리를 위한 필수 작업처리량과 시간 지연처리량 (Throughput)서비스가 1초에 처리할 수 있는 트래픽 양단위는 TPS를 사용하며, 1초에 최대 100개의 API를 처리할 수 있따면, 100TPS.RPS 라고도 한다.(Request per second)지연 시간부하테스트에서 Latency 는 요청에 대한 응답시간을 의미한다.서비스에 부하 테스트를 했..