{ "cells": [ { "cell_type": "markdown", "id": "41e5f0b9", "metadata": {}, "source": [ "# Load Testing using Locust\n", "\n", "---\n", "\n", "모델 배포는 모델 서빙의 첫 단추로 프로덕션 배포 시에 고려할 점들이 많습니다. 예를 들어, 특정 이벤트로 인해 갑자기 동시 접속자가 증가해서 트래픽이 몰릴 수 있죠. SageMaker는 관리형 서비스이니만큼 오토스케일링 policy를 손쉽게 구성할 수 있지만, 비용 최적화 관점에서 최적의 인스턴스 종류와 개수를 정하는 것은 쉽지 않습니다. 따라서, 로드 테스트를 통해 엔드포인트가 처리할 수 있는 RPS(Request Per Second; 동시 초당 접속자)를 파악하는 것이 중요하며, 이를 위해 자체 테스트 툴킷을 개발하거나 오픈소스 툴킷을 사용합니다. (또한, re:Invent 2021에 소개된 신규 서비스인 SageMaker Inference Recommender를 사용하여 로드 테스트를 API 호출로 편리하게 수행할 수 있습니다.)\n", "\n", "본 노트북에서는 Locust (https://docs.locust.io/en/stable/) 를 사용하여 간단한 로드 테스트를 수행해 보겠습니다. Locust는 Python으로 테스트 스크립트를 빠르게 작성할 수 있고 파라메터들이 직관적이라 빠르게 로드 테스트 환경을 구축하고 실행할 수 있습니다.\n", "\n", "완료 시간은 **10-20분** 정도 소요됩니다. \n", "\n", "\n", "### 목차\n", "- [1. Create Locust Script](#1.-Create-Locust-Script)\n", "- [2. Load Testing](#2.-Load-Testing)" ] }, { "cell_type": "markdown", "id": "0779b632", "metadata": {}, "source": [ "
\n", "아래 코드 셀은 ngrok 토큰을 설정하고, 주피터 노트북 커널을 셧다운시킵니다. https://ngrok.com/ 에서 회원 가입 후, 토큰을 설정해 주시기 바랍니다.\n", " \n", "노트북 커널이 셧다운된다면, 아래 코드 셀에서 setup_needed = False로 변경 후, 코드 셀을 다시 실행해 주세요. 이 작업은 한 번만 수행하면 됩니다. \n", "