CloudWatch 카나리 실행이 중지된 이유는 무엇인가요?

2분 분량
0

AWS CloudFormation 또는 AWS Command Line Interface(AWS CLI)를 사용하여 Amazon CloudWatch에서 카나리를 생성했습니다. 카나리가 일정 시간이 지나면 자동으로 실행을 중지하는 이유를 알고 싶습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

CloudWatch canary 실행이 중지되면 카나리를 생성할 때 설정한 DurationInSeconds 값을 확인합니다. 이 값은 카나리가 Expression 값의 일정에 따라 정기적으로 실행하는 시간을 지정합니다. 시간의 길이는 초 단위입니다. 0을 지정하면 canary를 중지할 때까지 카나리가 계속 실행됩니다. DurationInSeconds 값을 설정하지 않으면 기본값이 0으로 설정됩니다.

카나리의 DurationInSeconds 파라미터 값을 확인하려면 CloudWatch Synthetics GetCanary API를 실행합니다.

aws synthetics  get-canary --name [canary_name]

다음 출력에서 DurationInSeconds 값을 확인합니다.

{    
     "Canary": {
        "Id": "a1495b85-1c60-4f29-92c1-540f62fa34e3",
        "Name": "canary_name",
        "Code": {
            "SourceLocationArn": "arn:aws:lambda:eu-west-1:YourAccount:layer:cwsyn-canary_name-a1495b85-1c60-4f29-92c1-540f62fa34e3:1",
            "Handler": "CanaryFunction.handler"
        },
        "ExecutionRoleArn": "arn:aws:iam::YourAccount:role/CanaryRoleName",
        "Schedule": {
            "Expression": "rate(2 minutes)",
            "DurationInSeconds": 360
        },
        "RunConfig": {
            "TimeoutInSeconds": 120
        },
        "SuccessRetentionPeriodInDays": 31,
        "FailureRetentionPeriodInDays": 31,
        "Status": {
            "State": "READY"
        },
        "Timeline": {
            "Created": 1594481063.96,
            "LastModified": 1594481063.96
        },
        "ArtifactS3Location": "S3_Bucket_for_artifacts",
        "EngineArn": "arn:aws:lambda:eu-west-1:YourAccount:function:cwsyn-canary_name-a1495b85-1c60-4f29-92c1-540f62fa34e3:1",
        "RuntimeVersion": "syn-1.0",
        "Tags": {}
    }
}

참고: 앞의 출력에서 DurationInSeconds0과 같지 않습니다.

DurationInSeconds 값이 의도한 기간과 일치하지 않는 경우 다음 CloudWatch Synthetics UpdateCanary API를 실행합니다.

aws synthetics  update-canary --name canary_cli --schedule Expression="rate(2 minutes)",DurationInSeconds=0

참고: 카나리가 계속 실행되려면 DurationInSeconds0으로 설정하여 일정 표현식을 작성해야 합니다.

변경 사항을 확인하려면 AWS CLI를 사용하여 get-canary 명령을 실행합니다.

aws synthetics  get-canary --name [canary_name]

{
    "Canary": {
        "Id": "a1495b85-1c60-4f29-92c1-540f62fa34e3",
        "Name": "canary_name",
        "Code": {
            "SourceLocationArn": "arn:aws:lambda:eu-west-1:YourAccount:layer:cwsyn-canary_name-a1495b85-1c60-4f29-92c1-540f62fa34e3:1",
            "Handler": "CanaryFunction.handler"
        },
        "ExecutionRoleArn": "arn:aws:iam::YourAccount:role/CanaryRoleName",
        "Schedule": {
            "Expression": "rate(2 minutes)",
            "DurationInSeconds": 0
        },
        "RunConfig": {
            "TimeoutInSeconds": 120
        },
        "SuccessRetentionPeriodInDays": 31,
        "FailureRetentionPeriodInDays": 31,
        "Status": {
            "State": "READY"
        },
        "Timeline": {
            "Created": 1594481063.96,
            "LastModified": 1594481063.96
        },
        "ArtifactS3Location": "S3_Bucket_for_artifacts",
        "EngineArn": "arn:aws:lambda:eu-west-1:YourAccount:function:cwsyn-canary_name-a1495b85-1c60-4f29-92c1-540f62fa34e3:1",
        "RuntimeVersion": "syn-1.0",
        "Tags": {}
    }
}

출력에서 DurationInSeconds 값이 0인지 확인합니다.