Amazon Web Services 한국 블로그

Amazon CloudWatch Synthetics 서울 리전 출시

Amazon CloudWatch Synthetics는 경량 모듈식 카나리(Canary) 테스트를 사용하여 웹 애플리케이션 모니터링 서비스입니다. 지난 AWS re:Invent에서 미리보기로 출시되었고, 오늘 서울 리전을 비롯 13개 리전으로 확대되었습니다.

CloudWatch Synthetics를 사용하여 전체 트랜잭션에서 끊어진 링크나 작동하지 않는 링크, 단계별 작업 완료, 페이지 로드 오류, UI 자산의 로드 지연 시간, 복잡한 마법사 흐름 또는 체크아웃 흐름을 모니터할 수 있습니다. 애플리케이션에 고객 트래픽이 없더라도 지속적으로 고객 경험을 확인하고, 고객보다 먼저 문제를 발견할 수 있습니다.

REST API, URL 및 웹사이트 콘텐츠 모니터링과 피싱, 코드 주입, 교차 사이트 스크립팅에 관한 무단 변경 사항을 1분마다 엔드포인트에서 검사를 실행해 애플리케이션 엔드포인트가 예상과 다른 동작을 하면 알림을 보냅니다.  맞춤 설정을 통해 가용성, 지연, 트랜잭션, 손상되거나 연결이 끊어진 링크, 단계별 작업 완료 상태, 페이지 부하 오류, UI 자신의 부하 지연, 복잡한 마법사 플로 또는 애플리케이션의 체크아웃 플로를 검사하도록 설정할 수 있습니다. 또한, CloudWatch Synthetics를 사용하여 문제가 있는 애플리케이션 엔드포인트를 분리하고 기본 인프라 문제로 다시 매핑해 문제 해결에 걸리는 시간을 단축할 수 있습니다.

CloudWatch Synthetics 생성하기

CloudWatch 콘솔의 탐색 창에서 Synthetics로 이동해 모니터링 할 URL이나 API를 지정하면 몇 분 이내에 첫 번째 전달 카나리(Canary)를 작성할 수 있습니다. 다른 서버, 드라이버 또는 종속성을 설치하거나 구성할 필요가 없습니다.

우선, 카나리 세부 정보 및 카나리 테스트 실행 결과를 보려면 CloudWatchSyntheticsFullAccess 또는 CloudWatchSyntheticsReadOnlyAccess가 연결되어 있는 IAM 사용자로 로그인해야 합니다. 콘솔에서 모든 Synthetics 데이터를 읽으려면 AmazonS3ReadOnlyAccess, CloudWatchReadOnlyAccess 정책도 필요합니다. 또한 카나리가 사용하는 소스 코드를 보려면 AWSLambdaReadOnlyAccess 정책이 필요합니다.

Create Canary(카나리 생성)를 선택하면, CloudWatch에서 제공하는 “블루프린트”를 사용하여 카나리를 생성하거나 자신의 스크립트를 작성할 수 있습니다. 하트비트 모니터, API 카나리, 잘못된 링크 검사기, GUI 워크플로우 같은 카나리 유형에 대해 블루프린트가 제공됩니다.

Canary 빌더에서 먼저 카나리의 이름을 입력합니다. 이 이름은 여러 페이지에서 사용되므로 생성한 다른 카나리와 구별되는 설명이 포함된 이름을 지정하는 것이 좋습니다. 카나리에 대한 블루프린트를 사용하는 경우 카나리를 테스트할 애플리케이션 또는 엔드포인트 URL을 입력해야 할 수 있습니다. 이 URL에는 프로토콜(예: https://)이 포함되어야 합니다.

카나리에 대해 사용자 고유의 스크립트를 사용하는 경우 Lambda handler(Lambda 핸들러)에 카나리를 시작할 진입점을 입력합니다. 입력하는 문자열은 .handler로 끝나야 합니다.

CloudWatch에서 카나리를 기반으로 경보를 생성하도록 할 수 있습니다. 카나리에 대해 경보를 활성화할 경우 카나리 실행 빈도에 따라 카나리 테스트 실행이 일정 횟수만큼 실패하면 경보가 ALARM 상태로 전환됩니다.

  • 분당 1회 실행되는 경우, 5번 연속으로 실패하면 경보가 ALARM 상태로 전환됩니다.
  • 분당 1회 및 5분당 1회 사이로 실행되는 경우, 2번 연속으로 실패하면 경보가 ALARM 상태로 전환됩니다.
  • 5분당 1회 미만으로 실행되는 경우, 실패할 때마다 경보가 ALARM 상태로 전환됩니다.

일정에서 이 카나리를 한 번 실행할지 아니면 정기적으로 실행할지를 선택합니다. Data retention(데이터 보존)에서 실패한 카나리 실행과 성공한 카나리 실행에 대한 정보를 보존할 기간을 지정합니다. 범위는 1-600일입니다.

Thresholds(임계값)에서 이 카나리에 대해 CloudWatch 경보를 생성할지 여부를 선택합니다. 경보 설정은 경보를 사용하는 모든 카나리에 대해 동일합니다. 자세한 내용은 카나리에 대한 경보 임계값 설정을 참조하십시오.

CloudWatch Synthetics 살펴보기

생성된 카나리 결과를 보려면, 탐색 창 왼쪽 메뉴에 Canaries(카나리)를 선택합니다.사용자가 생성한 카나리에 대한 세부 정보가 포함된 화면이 표시됩니다.

먼저, 상태는 가장 최근 테스트 실행을 통과한 카나리 수를 시각적으로 보여줍니다. Canary test runs(카나리 테스트 실행) 아래의 그래프에서 각 포인트는 카나리 테스트 실행의 1분을 나타냅니다. 포인트에서 일시 중지하여 세부 정보를 볼 수 있습니다. 단일 카나리에 대한 세부 정보를 보려면 상태 그래프에서 포인트를 선택하거나 Canaries(카나리) 표에서 카나리의 이름을 선택합니다.

그래프 아래에서 스크린샷, HAR file(HAR 파일) 또는 로그를 선택하여 이러한 유형의 세부 정보를 볼 수 있습니다. 카나리 테스트 실행에 대한 로그는 CloudWatch Logs가 아닌 Amazon S3 버킷에 저장됩니다.

마이크로서비스 환경이라면 좀 더 세부적인 상태를 파악하기 위해, AWS X-Ray에서도 CloudWatch Synthetics Canary를 사용할 수 있습니다. X-Ray를 통해 문제의 근본 원인을 파악한 후 영향을 받는 업스트림 및 다운스트림 서비스를 식별할 수 있습니다. 또한 CloudWatch Synthetics Canary에 표시된 성능 병목 현상과 추세를 식별하여 Canary에서 최종 사용자 경험을 비교하고 엔드포인트 및 URL의 적절한 테스트 범위를 결정할 수 있습니다.

X-Ray Service Map with Synthetics node showing errors

CloudWatch Synthetics와 함께 AWS X-Ray를 사용하기 시작하려면 Synthetics Canary에서 모니터링하는 API, 웹 애플리케이션 엔드포인트 및 URL에 대한 X-Ray 추적을 활성화하면 됩니다. 자세한 내용은 블로그 게시물에서 제공하는 개요 안내서나 AWS 기술 문서를 참조하시기 바랍니다.

카나리 코드와 카나리 테스트 실행의 결과에는 중요한 정보가 포함될 수 있으므로 항상 https://로 시작하는 것과 같이 항상 암호화된 연결을 사용합니다. 특히, 액세스 키 또는 데이터베이스 자격 증명과 같은 암호는 AWS Secrets Manager를 사용하고, 카나리 소스 코드에 포함하지 않아야 합니다.

CloudWatch Synthetics가 만들거나 사용하는 리소스에 대한 액세스를 제한하는 것이 좋습니다. 카나리가 테스트 실행 결과와 로그 및 스크린샷과 같은 기타 아티팩트를 저장하는 Amazon S3 버킷에 대해 엄격한 권한을 사용하기를 권장합니다.

좀 더 자세한 것은 Amazon CloudWatch Synthetics 설명서를 참조하시기 바랍니다.

– Channy(윤석찬);