성능 테스트4 Devops Day 64 (6.7) 성능 테스트_Sprint AWS EC2와 K6를 이용한 성능테스트 Procedure 1. Aws EC2 인스턴스 생성 - 버스트 기능이 있는 t2 micro를 생성 - ubuntu 20.04 2. SSH 접속 (인스턴스 접속) 3. Docker를 인스턴스 EC2에 설치 #업데이트 및 HTTP 패키지 설치 3.1 sudo apt update 3.2 sudo apt-get install -y ca-certificates \ curl \ software-properties-common \ apt-transport-https \ gnupg \ lsb-release # GPG 키 및 저장소 추가 3.3 sudo mkdir -p /etc/apt/keyrings 3.4 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo .. 2023. 6. 10. Devops Day 65 (6.8) 성능 테스트_부하 테스트 도구와 활용 Latency에 중점을 둔 SLO 예시 - GET 호출의 90%는 1ms 이내에 완료해야 합니다. - GET 호출의 99%는 10ms 이내에 완료해야 합니다. - GET 호출의 99.9%는 100ms 이내에 완료해야 합니다. Throughput에 중점을 둔 SLO 예시 결국 Throughput은 순간적으로 요청이 치솟는 피크(peak) 트래픽에서의 처리량을 바탕으로 합니다. 예를 들어, 1일 기준으로 RPS를 계산하고자 할 때, 다음과 같은 시나리오를 생각해 볼 수 있습니다. - DAU(Daily Active User: 1일 접속자 수): 5만 명 - 1명당 평균 접속 횟수: 20회 - 1일 평균 접속 수에 대한 피크 트래픽 배율: 3배 (보통 평균의 2~3배를 곱합니다) - 안전 계수 (얼마만큼 넉넉하.. 2023. 6. 8. Devops Day 64 (6.7) 성능 테스트_병목 찾기 Throughput 개선 고속도로의 예를 다시 빌려, 다음과 같이 세 도시를 연결하는 두 개의 고속도로 중 대구-부산 간 고속도로가 병목을 일으키고 있다고 가정합시다. 서울-부산 사이의 Throughput은 최소값인, 200대/시간에 불과합니다. 이런 경우에는 도로 확장 공사를 통해 병목을 해결합니다. 확장 공사를 마친 대구-부산 간 고속도로의 Throughput이 800대/시간으로 개선되었습니다. 병목이 아닌 구간(서울-대구)을 개선하는 것은, 전체의 Throughput을 개선하는 데에 전혀 도움이 되지 않습니다. 도리어 대구-부산 간의 정체가 늘어나 Throughput이 감소할 수도 있습니다. 따라서, Throughput 개선을 위해서는 병목 구간이 어디인가를 먼저 파악하는 것이 가장 중요합니다. L.. 2023. 6. 8. Devops Day 64 (6.7) 성능 테스트_가용성과 확장성 + 부하 테스트 기본 가용성과 확장성 가용성(Availability)이란 시스템이 정상적으로 사용 가능한 정도를 말합니다. 정상적인 사용시간(Uptime)을 정상사용시간과 사용불가 시간을 합친 전체사용시간(Uptime + Downtime)으로 나눈 값을 표현하며, 예를 들어 가용성 99.95%는 약 1년에 4시간 22분의 다운타임이 됩니다. 가용성의 핵심은 바로 단일 장애점(Single Point of Failure)을 없애는 것이어야 합니다. 즉, 어떤 한 노드가 장애가 발생해도, 동일한 처리 능력을 가진 다른 노드로 대체될 수 있어야 합니다. 이를 위해 필요한 것이 바로 시스템 확장입니다. 확장성 확장 가능한 시스템: 요구되는 시스템의 성능에 따라 동적으로 서버 구성이 변경되고, 시스템 처리 능력을 최적화할 수 있는 시스.. 2023. 6. 8. 이전 1 다음