2월에 서비스 오픈을 앞두고 순차적으로 서비스를 배포하기로 했다. 그러면서 배포후 안정화를 위한 모니터링이 필요했는데 고객사에서 아직도 jMeter를 돌리면서 체크하더라...개인적으로 jMeter보다 nGrinder를 선호하지만 중요한건 이건 스트레스 테스트 툴이지 안정화 기간 시나리오 체크에는 좀 부적합 하지 않을까 싶었다
그래서 AWS에 Cloudwatch Synthetics Canaries를 도입해보려고 검토를 시작했다.
일단 하나는 셈플로 만들어 보았다. 카나리 테스트항목은 여러개를 만들어서 돌릴수 있는데...하나에서 여러개의 시나리오를 돌리기 보단 여러개의 카나리를 만들어서 돌리는 방식으로 하는게 효율적일것 같다.(이것은 나중에 설명)
이건 셈플로 제공해주는 코드인데 런타임은 Node와 Python이 있다.
nGrinder처럼 스크립트를 만들어서 해당 Web Page또는 URL을 체크해 볼 수 있었다. 환경 변수를 사용해서 동적으로 변경도 가능하고...근데 NCP의 WMS처럼 시나리오를 돌려가면서 테스트는 안되기에 살짝 아쉽긴 하다. 만약 해당 시나리오를 만들기 위해선 환경변수에 여러개를 등록하거나 아니면 스크립트 내에 변수를 선언해서 랜덤하게 잡아 돌리는 방식으로 해야할 것 같다.
물론 실행도 지속이나 크론표현식으로 가능하더라. 로그도 s3나 CloudWatch Logs로 저장이 가능하며 경보를 만들거나 SNS로 알람도 줄 수 있다. 게다가 X-Ray와 연동되서 해당 페이지의 어떤 항목에 문제가 생겼는지 좀더 자세하게 볼 수 있다.
이런식으로 해당 페이지 호출에 연관되는 서비스들과 url들을 모두 시각화 해준다. 우리는 api 테스트기에 저렇게 표현이 안 될것 같긴한데...일단 매우 만족스럽다. 아직까지는...(문제는 비용)
페이지 테스트의 경우 이렇게 화면도 스크린샷으로 찍어서 시각적으로 확인이 가능하니까 매우 좋다. 실패한 경우 해당 에러 페이지가 찍혀서 나오는것 같다. 지표를 보면 응답 시간부터 http code로 실패와 성공 확률이 파악 가능하다.
Canary의 요금은 Canary 실행당 0.0019 USD이다. 물론 S3와 CloudWatch Logs, X-Ray의 비용은 별도고 단순 실행당 요금이다. 100건까지는 무료이고 그 이후로 과금 되는 방식인데 만약 한달간 1분에 한번씩 호출한다면 82달러 한화로 약 10만원 정도 과금된다.
같은 시나리오로 NCP는 비용을 계산하니 url테스트는 12,528원 시나리오는 20,880원이다. WMS를 쓰지 않을 이유가 없네...ㅠㅠ
로그의 데이터 보존 기간도 설정이 가능하고 런타임도 nodes, python으로 스크립트를 만 들수 있고...여러가지로 nGrinder보단 좋은것 같긴 하다.
'Server Infra > AWS' 카테고리의 다른 글
ALB Access Log 분석하기! (0) | 2022.01.18 |
---|---|
Devops환경 구성하기!(CDK, Codepipline) (0) | 2022.01.18 |
EBS 지연 현상 (0) | 2022.01.11 |
AWS Advanced Networking - Specialty 취득 후기 (4) | 2022.01.08 |
AWS Database Migration Service (0) | 2022.01.05 |