본문 바로가기

DevOps97

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.
Devops Day 63 (6.5) 서비스 모니터링_서비스 수준 목표 서비스 수준 관련 용어 서비스를 운영하는 데 있어서, 사용자에게 필요한 적정 수준을 정의하고 제공하기 위해, 서비스 제공자와 사용자는 서로 서비스 수준 협약(Service Level Agreements, SLA)을 맺습니다. 하지만 고객과의 약속이라는 것은 "어느 정도의 서비스를 제공해야 제대로 제공했다고 말할 수 있는 것인지"를 정확하게 명시하지 않으면 안 됩니다. 따라서, SRE 엔지니어는 척도를 통한 목표를 이해하고, 실제로 목표를 세우는 방법을 알아야 합니다. 여기서는 서비스 수준 관련 용어에 대해서 학습합니다. SLI (서비스 수준 척도, Service Level Indicator) 서비스 수준 지표(SLI)는 기업이 고객에 대한 서비스 수준을 측정하는 데 도움이 되는 구체적인 지표입니다. SL.. 2023. 6. 5.
Devops Day 62 (6.2) 서비스 모니터링_Prometheus + Grafana Prometheus 모니터링 시스템 프로메테우스는 오픈소스 모니터링/알림 시스템입니다. 프로메테우스는 쿠버네티스, 노드, 프로메테우스 자체를 모니터링할 수 있습니다. CNCF에서 프로메테우스 역시 관리하고 있으며, 이 두 도구를 비롯해 시각화를 담당하는 Grafana와 함께 세 도구 조합은 정석적으로 널리 사용되고 있습니다. 프로메테우스 구성 요소 · 프로메테우스는 시계열(time series) 데이터를 저장합니다. · 프로메테우스 서버는 다양한 exporter로부터 각 대상의 메트릭을 pull하여 주기적으로 가져오는 모니터링 시스템입니다. o 예를 들어, 쿠버네티스 관련 메트릭을 가져오고 싶다면 쿠버네티스 exporter를, mongoDB 관련 메트릭을 가져오고 싶다면, mongodb exporter를.. 2023. 6. 4.