인프런 커뮤니티 질문&답변
클라우드 환경 배포시 부하 테스트 방식에 대하여
해결된 질문
작성
·
40
0
안녕하세요 딩코님, 클라우드 환경에서 비용이 발생하지 않는 올바른 테스트 방법에 대해 여쭙고자 질문 남깁니다.
제 스스로 느끼기에, 제가 프리티어로 사용하고 있는 EC2 인스턴스 내부에서 k6 스크립트를 실행하게 되면 EC2 과부화는 물론 RDS 에도 몇백만건의 데이터가 삽입이 되니 비용적, 컴퓨팅 자원적 문제가 발생할 것 으로 생각이 됩니다.
그래서 혹시 다음과 같은 방법으로 클라우드 환경 테스트를 진행하면 될지 여쭤보고 싶습니다.
테라포밍을 통해 AWS EC2 + RDS 조합으로 서버 배포
배포된 해당 주소로 제가 가지고 있는 노트북(EC2 아니고 제 로컬 PC) 터미널에서 k6 스크립트 실행
이때도 비용문제가 발생하는지? -> 아니라면 저비용으로 테스트하는 국룰 방법을 좀 소개해 주시면 감사드리겠습니다 !
강의 너무 재밌습니다 ㅋㅋㅋ 감사합니다 !
답변 2
1
xuv2님 좋은 질문 해주셔서 감사합니다!!! 강의가 즐거우시다니 넘 기쁘네요 ㅎㅎㅎ
1. 로컬 PC에서 k6 실행하는 방식
네, 말씀하신대로 로컬 PC(노트북)에서 k6를 실행하고 배포된 EC2 서버의 public IP로 요청을 보내는 방식이 맞습니다! 이렇게 하면 EC2 내부에서 k6를 돌리는 것보다 훨씬 안정적으로 테스트할 수 있어요. EC2 프리티어는 t2.micro 급이라 k6까지 같이 돌리면 서버 자체가 먼저 뻗어버릴 수 있거든요
2. 비용 발생 포인트
로컬에서 k6를 실행해도 AWS 비용은 발생합니다. 다만 k6 자체 때문이 아니라 AWS 리소스 사용 때문입니다
주요 비용 발생 구간은 이렇습니다. EC2 인스턴스가 켜져 있는 시간, RDS 인스턴스가 켜져 있는 시간, 그리고 데이터 전송량(Outbound)입니다. k6가 100만 건 요청을 보내면 그만큼 EC2와 RDS가 일을 하는 거니까 리소스 사용 시간이 길어지는 건 맞습니다. 다만 "k6가 어디서 실행되느냐"가 비용에 영향을 주진 않을 것 같습니다
3. 저비용 테스트 국룰 방법
첫 번째로 인프라 켜고 끄기를 습관화하시면 됩니다. 테라폼 쓰시니까 terraform apply로 올리고, 테스트 끝나면 바로 terraform destroy로 내리는 겁니다. 20~30분 테스트하고 바로 내리면 비용이 확 줄어요.
두 번째로 RDS 대신 EC2에 MySQL 직접 설치하는 방법도 있습니다. RDS가 프리티어 넘어가면 꽤 비싸거든요. 테스트 목적이라면 EC2 하나에 Docker로 MySQL 컨테이너 띄우는 게 저렴합니다.
세 번째로 테스트용 데이터는 최소화하세요. 몇백만 건 넣을 필요 없이 테스트 시나리오에 필요한 만큼만 넣으면 됩니다. 10만 건 정도면 인덱스 효과도 충분히 볼 수 있어요.
4. 실전 팁
부하 테스트 시나리오를 먼저 로컬에서 Docker Compose로 충분히 검증하시고, AWS에서는 "진짜 클라우드 환경에서 어떤 병목이 생기나" 확인하는 용도로만 짧게 돌리는 게 효율적입니다. 로컬에서 쿼리 튜닝하고 인덱스 걸어서 개선 수치 뽑고, AWS에서는 "실제 네트워크 환경에서도 동일한 결과가 나오는지" 검증하는 식으로요.
강의 재밌다고 해주셔서 감사합니다 ㅎㅎㅎ 부하 테스트 결과로 이력서에 "TPS 100 → 300 개선" 같은 수치 뽑아보시고, 그 과정에서 어떤 병목을 발견하고 해결했는지 정리해보셨으면 좋겠습니다!!
0
안녕하세요, 인프런 AI 인턴입니다. xuv2님.
클라우드 환경에서 부하 테스트를 진행할 때, 비용을 최소화하면서도 효과적으로 테스트할 방법에 대해 궁금해하시네요. 여러 방법들이 존재하지만, 비용 문제를 고려하여 적절한 전략을 소개해드리겠습니다.
클라우드 환경에서 저비용 부하 테스트 전략
프리티어 사용 효율화:
- AWS의 프리티어를 최대한 활용하는 것이 중요합니다. EC2와 RDS에 대해서 프리티어 수준에서 가능한 자원 양을 최대한 높이고, 부하 테스트 전에 필요 없는 인스턴스를 끄거나, 필요한 것만 켜두는 방법으로 비용을 절감할 수 있습니다.
- AWS의 프리티어를 최대한 활용하는 것이 중요합니다. EC2와 RDS에 대해서 프리티어 수준에서 가능한 자원 양을 최대한 높이고, 부하 테스트 전에 필요 없는 인스턴스를 끄거나, 필요한 것만 켜두는 방법으로 비용을 절감할 수 있습니다.
로컬에서 부하 테스트 실행:
- 무료 부하 테스트 도구인 k6를 사용하여 테스트할 경우, 로컬 환경에서 실행하시는 것이 적절합니다. 클라우드 인스턴스 내부에서 k6를 실행하면 해당 인스턴스가 과부하될 수 있으며, 비용 문제도 발생할 수 있습니다. 로컬 PC에서 EC2로 직접 부하를 주는 방식으로 진행하면 클라우드 자원 소모를 줄일 수 있습니다.
- 무료 부하 테스트 도구인 k6를 사용하여 테스트할 경우, 로컬 환경에서 실행하시는 것이 적절합니다. 클라우드 인스턴스 내부에서 k6를 실행하면 해당 인스턴스가 과부하될 수 있으며, 비용 문제도 발생할 수 있습니다. 로컬 PC에서 EC2로 직접 부하를 주는 방식으로 진행하면 클라우드 자원 소모를 줄일 수 있습니다.
부하 테스트 범위 제한:
- 초기 테스트에서는 작은 규모로 시작하여 점차 부하를 늘리는 방식이 좋습니다. 이렇게 하면 예상치 못한 과부하 상황을 방지할 수 있습니다.
- 초기 테스트에서는 작은 규모로 시작하여 점차 부하를 늘리는 방식이 좋습니다. 이렇게 하면 예상치 못한 과부하 상황을 방지할 수 있습니다.
테스트 기간 단축:
- 각 테스트의 시간을 최소화하여 실행하십시오. 짧고 집중적인 테스트를 통해 필요한 데이터를 수집한 후 인스턴스를 종료하는 것이 비용 절감에 효과적입니다.
- 각 테스트의 시간을 최소화하여 실행하십시오. 짧고 집중적인 테스트를 통해 필요한 데이터를 수집한 후 인스턴스를 종료하는 것이 비용 절감에 효과적입니다.
자동화 및 모니터링 활용:
- AWS에서 제공하는 모니터링 도구(예: CloudWatch)를 활용하여 시스템 상태를 실시간으로 모니터링하고, 필요 시 권장 설정에 따라 테스트를 중단하는 자동화 스크립트를 작성할 수 있습니다.
- AWS에서 제공하는 모니터링 도구(예: CloudWatch)를 활용하여 시스템 상태를 실시간으로 모니터링하고, 필요 시 권장 설정에 따라 테스트를 중단하는 자동화 스크립트를 작성할 수 있습니다.
주의 사항
- 실제 데이터가 아닌 샘플 데이터 사용: 테스트 중 실제 데이터를 사용하면 데이터 비용이 추가로 발생할 수 있습니다. 데이터를 적절히 샘플링하거나 가상의 데이터를 사용하여 테스트하세요.
- 부하를 주는 시나리오에 대한 최적의 구성을 탐색해 보면서, EC2나 RDS의 스펙을 확인하고 실제 사용량을 모니터링하세요.
관련 자료로, 클라우드 환경에서 부하 테스트 방법 질문에서 다른 사용자의 사례와 조언을 참고하면 좋은 방향을 잡는데 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




