FastAPI는 Python 기반의 웹 프레임워크로, 강력하면서도 빠른 성능을 제공합니다. 이러한 빠른 성능을 확인하려면 서버 부하 테스트를 진행해야 합니다. 이 글에서는 FastAPI에서 서버 부하 테스트를 하는 방법에 대해 알아보겠습니다.
서버 부하 테스트 도구
서버 부하 테스트를 위해 다양한 도구를 사용할 수 있습니다. 그 중에서도 Apache Bench (ab) 도구를 사용해보겠습니다. Apache Bench는 Apache HTTP 서버와 함께 제공되는 툴로, 간단하게 명령어를 통해 부하 테스트를 실행할 수 있습니다.
Apache Bench는 커맨드 라인에서 다음과 같이 설치할 수 있습니다:
$ sudo apt-get install apache2-utils
FastAPI 서비스 생성
먼저, FastAPI로 간단한 웹 서비스를 생성해보겠습니다. 다음의 예시 코드를 사용해 FastAPI 서비스를 생성합니다:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
위 코드를 main.py 파일로 저장한 뒤, 다음의 커맨드를 실행하여 FastAPI 서버를 실행합니다:
$ uvicorn main:app --reload
웹 서버가 정상적으로 실행되었다면, http://127.0.0.1:8000에 접속하여 “Hello, World”를 확인할 수 있습니다.
서버 부하 테스트 실행
FastAPI 서버가 정상적으로 실행되는 것을 확인했으니 이제 서버 부하 테스트를 진행해보겠습니다. 다음의 커맨드를 실행하여 Apache Bench로 서버 부하 테스트를 할 수 있습니다:
$ ab -n 1000 -c 10 http://127.0.0.1:8000/
위 커맨드는 -n 옵션으로 요청 횟수를 1000으로, -c 옵션으로 동시 접속 수를 10으로 설정한 것입니다. 접속할 URL은 FastAPI 서버가 실행 중인 로컬 환경의 주소입니다.
부하 테스트가 끝나면 결과를 확인할 수 있습니다. 주요한 결과 중에서 Requests per second와 Time per request는 성능을 측정하는데 유용한 지표입니다.
마무리
FastAPI에서 서버 부하 테스트를 진행하는 방법에 대해 알아보았습니다. 이를 통해 FastAPI의 높은 성능을 확인하고 서버의 효율성을 향상시킬 수 있습니다. 추가로 서버가 실제 사용 중인 환경에서 테스트를 진행하는 것이 더 정확한 결과를 얻을 수 있습니다.