canary 생성 - Amazon CloudWatch

canary 생성

중요

소유권 또는 권한이 있는 엔드포인트 및 API만 모니터링하려면 Synthetics canary를 사용해야 합니다. canary 빈도 설정에 따라 이러한 엔드포인트에서 트래픽이 증가할 수 있습니다.

CloudWatch 콘솔을 사용하여 canary를 생성할 때 CloudWatch에서 제공하는 블루프린트를 사용하여 canary를 생성하거나 자체 스크립트를 작성할 수 있습니다. 자세한 내용은 canary 블루프린트 사용 단원을 참조하십시오.

canary에 자체 스크립트를 사용하는 경우 AWS CloudFormation을 사용하여 canary를 생성할 수도 있습니다. 자세한 내용은 AWS CloudFormation 사용 설명서AWS::Synthetics::Canary 단원을 참조하세요.

자체 스크립트를 작성하는 경우 CloudWatch Synthetics가 라이브러리에 기본 제공하는 여러 함수를 사용할 수 있습니다. 자세한 내용은 Synthetics 런타임 버전 단원을 참조하십시오.

참고

canary를 생성할 때 생성되는 계층 중 하나는 앞에 Synthetics가 추가된 Synthetics 계층입니다. 이 계층은 Synthetics 서비스 계정이 소유하며 런타임 코드를 포함합니다.

canary를 생성하려면
  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 Application Signals, Synthetics canary를 선택합니다.

  3. Create Canary(canary 생성)를 선택합니다.

  4. 다음 중 하나를 선택합니다.

    • 블루프린트 스크립트를 기반으로 canary를 생성하려면 블루프린트 사용을 선택한 다음 생성할 canary 유형을 선택합니다. 각 유형의 블루프린트 작업에 대한 자세한 내용은 canary 블루프린트 사용 단원을 참조하세요.

    • 사용자 고유의 Node.js 스크립트를 업로드하여 사용자 지정 canary를 생성하려면 Upload a script(스크립트 업로드)를 선택합니다.

      그런 다음 스크립트를 스크립트 영역으로 드래그하거나 파일 찾아보기를 선택하여 파일 시스템의 스크립트로 이동할 수 있습니다.

    • S3 버킷에서 스크립트를 가져오려면 [S3에서 가져오기(Import from S3)]를 선택합니다. 그런 다음 소스 위치에 canary에 대한 전체 경로를 입력하거나 S3 찾아보기를 선택합니다.

      사용하는 S3 버킷에 대한 s3:GetObjects3:GetObjectVersion 권한이 있어야 합니다. 버킷은 canary를 생성할 리전과 동일한 AWS 리전에 있어야 합니다.

  5. 이름에 canary의 이름을 입력합니다. 이 이름은 여러 페이지에서 사용되므로 다른 canary와 구별되는 설명이 포함된 이름을 지정하는 것이 좋습니다.

  6. 애플리케이션 또는 엔드포인트 URL(Application or endpoint URL)에서 canary로 테스트할 URL을 입력합니다. 이 URL에는 프로토콜(예: https://)이 포함되어야 합니다.

    canary가 VPC에 있는 엔드포인트를 테스트하도록 하려면 이 절차의 뒷부분에서 VPC에 대한 정보도 입력해야 합니다.

  7. canary에 대해 사용자 고유의 스크립트를 사용하는 경우 Lambda 핸들러에 canary를 시작할 진입점을 입력합니다. syn-nodejs-puppeteer-3.4 또는 syn-python-selenium-1.1 이전 버전의 런타임을 사용하는 경우 입력하는 문자열은 .handler로 끝나야 합니다. syn-nodejs-puppeteer-3.4 또는 syn-python-selenium-1.1 이상의 런타임을 사용하는 경우 이 제한이 적용되지 않습니다.

  8. 스크립트에서 환경 변수를 사용할 경우 [환경 변수(Environment variables)]를 선택한 다음, 스크립트에 정의된 각 환경 변수에 대해 값을 지정합니다. 자세한 내용은 환경 변수 단원을 참조하십시오.

  9. [일정(Schedule)]에서 이 canary를 한 번만 실행할지, rate 표현식을 사용하여 지속적으로 실행할지 또는 cron 표현식을 사용하여 일정을 지정할지 선택합니다.

    • CloudWatch 콘솔을 사용하여 지속적으로 실행되는 canary를 생성할 경우 1분에 한 번에서 1시간에 한 번 사이의 실행 비율을 선택할 수 있습니다.

  10. (선택 사항) canary에 대한 시간 초과 값을 설정하려면 Additional configuration(추가 구성)을 선택한 다음 시간 초과 값을 지정합니다. Lambda 콜드 스타트와 canary 계측 부팅에 걸리는 시간을 15초 이상 허용합니다.

  11. 데이터 보존(Data retention)에서 실패한 canary 실행과 성공한 canary 실행에 대한 정보를 보존할 기간을 지정합니다. 범위는 1~455일입니다.

    이 설정은 CloudWatch Synthetics가 콘솔에 저장하고 표시하는 데이터에만 영향을 줍니다. Amazon S3 버킷에 저장된 데이터나 canary에서 게시하는 로그 또는 지표에는 영향을 주지 않습니다.

  12. 데이터 스토리지(Data Storage)에서 canary 테스트 실행의 데이터를 저장하는 데 사용할 S3 버킷을 선택합니다. 버킷 이름은 마침표(.)를 포함할 수 없습니다. 이 값을 비워 두면 기본 S3 버킷이 사용 또는 생성됩니다.

    syn-nodejs-puppeteer-3.0 이상 런타임을 사용하는 경우 텍스트 상자에 버킷의 URL을 입력할 때 현재 리전 또는 다른 리전의 버킷을 지정할 수 있습니다. 이전 런타임 버전을 사용하는 경우 버킷이 현재 리전에 있어야 합니다.

  13. (선택 사항) 기본적으로 canary는 Amazon S3에 아티팩트를 저장하고, 해당 아티팩트는 AWS 관리형 AWS KMS 키를 사용하여 저장 시 암호화됩니다. 데이터 스토리지(Data Storage) 섹션의 추가 구성(Additional configuration)을 선택하여 다른 암호화 옵션을 사용할 수 있습니다. 그런 다음, 암호화에 사용할 키 유형을 선택할 수 있습니다. 자세한 내용은 canary 아티팩트 암호화 단원을 참조하십시오.

  14. [액세스 권한(Access permissions)]에서 canary를 실행할 IAM 역할을 생성할지 아니면 기존 역할을 사용할지 여부를 선택합니다.

    CloudWatch Synthetics에서 역할을 생성하도록 하면 필요한 모든 권한이 자동으로 포함됩니다. 역할을 직접 생성하는 경우 필요한 권한에 대한 내용은 canary에 필요한 역할 및 권한 섹션을 참조하세요.

    canary를 생성할 때 CloudWatch 콘솔을 사용하여 canary에 대한 역할을 생성하는 경우 다른 canary에 대한 역할을 재사용할 수 없습니다. 이러한 역할은 하나의 canary에만 적용되기 때문입니다. 여러 canary에 사용할 수 있는 역할을 수동으로 생성한 경우에만 기존 역할을 사용할 수 있습니다.

    기존 역할을 사용하려면 해당 역할을 Synthetics 및 Lambda에 전달할 iam:PassRole 권한이 있어야 합니다. 또한 iam:GetRole 권한도 있어야 합니다.

  15. (선택 사항) [경보(Alarms)]에서 이 canary에 대해 기본 CloudWatch 경보를 생성할지 여부를 선택합니다. 경보를 생성하기로 선택한 경우 경보는 Synthetics-Alarm-canaryName-index 와 같은 이름 규칙으로 생성됩니다.

    index는 이 canary에 대해 생성된 각기 다른 경보를 나타내는 숫자입니다. 예를 들면 첫 번째 경보의 인덱스는 1이고 두 번째 경보의 인덱스는 2입니다.

  16. (선택 사항) 이 canary가 VPC에 있는 엔드포인트를 테스트하도록 하려면 VPC 설정을 선택하고 다음을 수행합니다.

    1. 엔드포인트를 호스팅하는 VPC를 선택합니다.

    2. VPC에서 하나 이상의 서브넷을 선택합니다. 실행 중에 Lambda 인스턴스에 IP 주소를 할당할 수 없는 경우 퍼블릭 서브넷에서 Lambda 인스턴스를 실행하도록 구성할 수 없으므로 프라이빗 서브넷을 선택해야 합니다. 자세한 내용은 VPC의 리소스에 액세스하도록 Lambda 함수 구성 단원을 참조하세요.

    3. VPC에서 보안 그룹을 하나 이상 선택합니다.

    엔드포인트가 VPC에 있는 경우 CloudWatch 및 Amazon S3에 정보를 보내도록 canary를 사용 설정해야 합니다. 자세한 내용은 VPC에서 canary 실행 단원을 참조하십시오.

  17. (선택 사항) 태그에서 이 canary에 대한 태그로 하나 이상의 키-값 페어를 추가합니다. 태그를 사용하면 AWS 리소스를 식별 및 구성하고 AWS 비용을 추적할 수 있습니다. 자세한 내용은 Amazon CloudWatch 리소스 태그 지정 단원을 참조하십시오.

  18. (선택 사항) [활성 추적(Active tracing)]에서 이 canary에 대해 활성 X-Ray 추적을 사용할지 여부를 선택합니다. 이 옵션은 canary가 런타임 버전 syn-nodejs-2.0 이상을 사용하는 경우에만 사용할 수 있습니다. 자세한 내용은 canary 및 X-Ray 추적 단원을 참조하십시오.

canary에 대해 생성되는 리소스

canary를 생성할 때 다음 리소스가 생성됩니다.

  • 이름이 CloudWatchSyntheticsRole-canary-name-uuid인 IAM 역할(CloudWatch 콘솔을 사용하여 canary를 생성하고 canary에 대해 새 역할을 생성하도록 지정하는 경우)

  • 이름이 CloudWatchSyntheticsPolicy-canary-name-uuid인 IAM 정책

  • 이름이 cw-syn-results-accountID-region인 S3 버킷

  • 이름이 Synthetics-Alarm-MyCanaryName인 경보(canary에 대해 경보를 생성하려는 경우)

  • Lambda 함수 및 계층(블루프린트를 사용하여 canary를 생성하는 경우) 이러한 리소스에는 접두사 cwsyn-MyCanaryName이 있습니다.

  • 이름이 /aws/lambda/cwsyn-MyCanaryName-randomId인 CloudWatch Logs 로그 그룹