View a markdown version of this page

솔루션 모니터링 - AWS 인스턴스 스케줄러

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

솔루션 모니터링

로깅 및 알림

인스턴스 스케줄러는 CloudWatch Logs Insights 쿼리에 최적화된 구조화된 로깅을 사용합니다. 이 솔루션은 태그가 지정된 각 인스턴스에 대한 처리 정보, 인스턴스에 대한 기간 평가 결과, 해당 기간 동안 인스턴스의 원하는 상태, 적용된 작업 및 디버깅 메시지를 로깅합니다.

로그는 다음 두 로그 그룹으로 Amazon CloudWatch Logs에 기록됩니다.

{stackName}-{namespace}-administrative-logs

리소스 등록 및 등록 취소, 사용자 지정 리소스 작업, CLI 요청 및 기타 관리 활동에 대한 로그입니다.

{stackName}-{namespace}-scheduling-logs

오케스트레이션 및 요청 핸들러 실행을 포함한 예약 작업을 위한 로그입니다.

경고 및 오류 로그는 구독한 이메일 주소로 메시지를 보내도록 구성할 수 있는 솔루션 생성 Amazon SNS 주제로도 전달됩니다. 솔루션 스택의 출력 탭에서 Amazon SNS 주제의 이름을 찾을 수 있습니다.

정보 태그

정보 태그 지정이 활성화된 경우(기본값) Instance Scheduler는 관리형 리소스에 직접 태그를 작성하여 솔루션의 예약 활동을 at-a-glance 파악할 수 있습니다. 이러한 태그는 AWS 리소스 그룹 태그 지정 API를 사용하여 적용되며 스케줄러가 리소스를 처리할 때마다 업데이트됩니다.

허브 스택에서 정보 태그 지정 활성화 파라미터를 사용하여이 기능을 활성화하거나 비활성화할 수 있습니다. 자세한 내용은 글로벌 구성 설정 업데이트를 참조하세요.

정보 태그 키

다음 태그는 관리형 리소스에 기록됩니다.

태그 키 설명

IS-ManagedBy

이 리소스를 관리하는 인스턴스 스케줄러 허브 스택의 ARN입니다. 리소스가 예약 및 각 후속 예약 작업에 처음 등록될 때 적용됩니다.

IS-LastAction

UTC 타임스탬프와 함께 리소스에 대해 수행된 마지막 예약 작업입니다. 예: Started 2025-06-15 09:00:00 UTC 또는 Stopped 2025-06-15 17:00:00 UTC. 이 태그는 스케줄러가 리소스를 적극적으로 시작하거나 중지할 때만 업데이트됩니다(리소스를 평가하고 조치가 필요하지 않다고 판단할 때가 아님).

IS-Error

리소스를 처리하는 동안 스케줄러에 오류가 발생하면이 태그에는 오류 코드와 UTC 타임스탬프가 포함됩니다. 예를 들어 StartFailed 2025-06-15 09:00:05 UTC입니다. 이 태그는 다음에 성공한 예약 작업에서 자동으로 지워집니다.

IS-ErrorMessage

사람이 읽을 수 있는 오류 설명입니다. 이 태그는 IS-Error도 있을 때만 존재하며 태그와 함께 지워집니다.

오류 코드

IS-Error 태그에 다음과 같은 오류 코드가 나타날 수 있습니다.

오류 코드 설명

UnknownSchedule

리소스의 일정 태그에 지정된 일정 이름이 구성 테이블에 정의된 일정과 일치하지 않습니다.

UnsupportedResource

리소스 유형은 예약에 지원되지 않습니다(예: 다른 RDS 인스턴스의 읽기 전용 복제본).

IncompatibleSchedule

리소스에 할당된 일정이 리소스 유형과 호환되지 않습니다(예: 지원되지 않는 cron 표현식을 사용하는 ASG 일정).

StartFailed

스케줄러가 리소스를 시작하려고 했지만 작업이 실패했습니다.

StopFailed

스케줄러가 리소스를 중지하려고 했지만 작업이 실패했습니다.

ConfigurationFailed

스케줄러가 Auto Scaling 그룹에서 예약된 조정 규칙을 구성하려고 했지만 작업이 실패했습니다.

UnknownError

리소스를 처리하는 동안 예기치 않은 오류가 발생했습니다.

태그 동작

  • 리소스를 예약에 처음 등록하면 IS-ManagedBy 태그가 즉시 적용됩니다.

  • 리소스가 등록 취소되면(일정 태그가 제거됨) 모든 정보 태그(IS-ManagedBy, IS-LastAction, IS-Error, IS-ErrorMessage)가 리소스에서 제거됩니다.

  • 동일한 오류가 지속되고 기존 태그가 리소스에 여전히 있는 경우 각 예약 간격에서 오류 태그가 다시 작성되지 않습니다. 오류 코드가 변경될 때만 업데이트됩니다.

  • 모든 태그 값은 AWS 태그 지정 제한을 준수하기 위해 256자로 잘립니다.

태그 거버넌스 고려 사항

중요

인스턴스 스케줄러는 정상 작업의 일부로 관리형 리소스에 위에 나열된 태그를 생성하고 업데이트합니다. 조직에서 AWS Config 규칙, 태그 정책, 서비스 제어 정책 또는 자동 문제 해결을 통해 태그 거버넌스를 적용하는 경우 변경 관리 제어가 다음 태그 키를 허용하도록 구성되어 있는지 확인합니다.

  • IS-ManagedBy

  • IS-LastAction

  • IS-Error

  • IS-ErrorMessage

  • IS-PreferredInstanceTypes (대체 인스턴스 유형을 사용하는 경우)

  • IS-MinDesiredMax (Auto Scaling 그룹을 예약하는 경우)

거버넌스 정책에서 이러한 태그를 수용할 수 없는 경우 허브 스택No에서 정보 태그 지정 활성화 파라미터를 로 설정하여 정보 태그 지정을 비활성화합니다. 이렇게 하면 리소스 등록을 확인하는 데 사용되는 IS-ManagedBy 태그도 비활성화됩니다.

제어 태그

Instance Scheduler는 정보 태그 외에도 특정 기능에 대해 다음과 같은 제어 태그를 사용합니다.

태그 키 설명

IS-PreferredInstanceTypes

용량 부족으로 인해 인스턴스 시작에 실패할 때 시도할 대체 EC2 인스턴스 유형의 쉼표로 구분된 목록입니다. 자세한 내용은 EC2 용량 부족 오류 처리를 참조하세요.

IS-MinDesiredMax

형식의 Auto Scaling 그룹에 대한 최소, 원하는 및 최대 용량 값입니다min,desired,max. 자세한 내용은 EC2 Auto Scaling 그룹 예약을 참조하세요.

태그 용량

중요

AWS 리소스는 일반적으로 리소스당 50개의 태그로 제한됩니다. 인스턴스 스케줄러는 리소스에서 최대 6개의 태그(정보 태그 4개와 제어 태그 최대 2개)를 사용할 수 있습니다. 리소스에 기존 태그 지정 전략과 함께 인스턴스 스케줄러 태그를 수용할 수 있는 충분한 태그 용량이 있는지 확인합니다.

리소스가 50개 태그 제한에 가까워지면 정보 태그 쓰기가 실패할 수 있습니다. 스케줄러는 이러한 실패를 로깅하지만 예약 작업은 계속합니다. 태그 지정 문제가 의심되는 경우 CloudWatch Logs를 확인합니다.

CloudWatch Logs Insights 쿼리

인스턴스 스케줄러의 구조화된 로깅 형식을 사용하면 CloudWatch Logs Insights를 사용하여 효율적으로 쿼리할 수 있습니다. Logs Insights를 사용하여 로그 데이터를 검색, 분석 및 시각화하여 운영 문제를 해결하고 예약 활동을 모니터링할 수 있습니다.

인스턴스 스케줄러는 CloudWatch Logs 콘솔의 저장된 쿼리 섹션에서 액세스할 수 있는 사전 형식의 로그 쿼리를 제공합니다.

SchedulingHistory

시작 및 중지 작업을 포함하여 리소스에 대해 수행된 쿼리 예약 작업입니다.

RegistrationEvents

리소스 등록 및 등록 취소 이벤트를 쿼리합니다.

Errors

오류 로그를 쿼리하여 솔루션 관련 문제를 해결합니다.

CloudWatch Logs Insights에 대한 자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 CloudWatch Logs Insights를 사용하여 로그 데이터 분석을 참조하세요. Amazon CloudWatch

운영 인사이트 대시보드

Operational Insights 대시보드는 예약된 인스턴스 관리의 솔루션 성능과 비용 절감에 대한 가시성을 제공합니다.

대시보드에 액세스하려면 허브 스택 파라미터에서 운영 모니터링이 "활성화"로 설정되어 있는지 확인합니다. CloudWatch로 이동하여 탐색 메뉴에서 "대시보드"를 선택합니다. 대시보드 이름은 *{stack-name}-Operational-Insights-Dashboard*입니다.

대시보드에는 관리형 인스턴스 수, 저장된 실행 시간 및 Lambda 함수 성능 지표가 표시됩니다.

운영 인사이트 대시보드 개요

OpsDashboardOverview
참고

이러한 그래프의 정보는 솔루션 허브 스택에 구성된 예약 간격에 따라 달라집니다. 솔루션의 예약 간격을 업데이트할 때 대시보드에는 가장 최근 일정 간격 업데이트 후의 일정 지표만 표시됩니다.

Lambda 실행 시간을 모니터링하여 최적의 성능을 보장합니다(할당량 참조). 실행 시간이 일관되게 제한 시간 임계값에 도달하는 경우 Lambda 크기 속성을 늘리거나 관리형 리전에 지연 시간이 더 짧은 리전에 인스턴스 스케줄러를 배포하는 것이 좋습니다.

기간 및 오류 수를 보여주는 Lambda 지표

OpsDashboardLambdaMetrics

이 기능과 관련된 추가 비용

이 운영 대시보드는 추가 비용이 발생하는 솔루션에서 수집한 사용자 지정 CloudWatch 지표를 기반으로 합니다. 솔루션 허브 스택에서 “운영 모니터링”을 비활성화하여 이 기능을 끌 수 있습니다. 이 기능은 월 3.00 USD의 추가 비용과 배포 규모에 따른 추가 스케일링 비용이 부과됩니다. 비용은 다음과 같습니다.

사용자 지정 CloudWatch 대시보드 3 USD

per-instance-type 지표

인스턴스 유형당 0.90 USD*

API 사용

활성 대상당 ~$0.10**

*이러한 비용은 서비스 범주(EC2/RDS)별로 추적되며 실제로 예약에 사용되는 인스턴스 유형에 대해서만 추적됩니다.

*

EventBridge 이벤트 모니터링

인스턴스 스케줄러는 스케줄링 및 등록 이벤트를 EventBridge 이벤트 버스에 게시하여 솔루션 작업에 대한 가시성을 제공하고 다른 AWS 서비스와 통합할 수 있도록 합니다.

이벤트 유형

솔루션은 두 가지 주요 이벤트 범주를 게시합니다.

이벤트 예약: 인스턴스 스케줄러가 관리형 리소스를 시작, 중지 또는 구성하는 작업을 수행할 때 게시됩니다. 이러한 이벤트에는 인스턴스, 일정 및 수행한 작업에 대한 세부 정보가 포함됩니다. 관리형 리소스를 시작, 중지 또는 구성합니다. 이러한 이벤트에는 인스턴스, 일정 및 수행한 작업에 대한 세부 정보가 포함됩니다.

등록 이벤트: 리소스가 태그 지정 작업에 따라 예약에 등록되거나 등록 취소될 때 게시됩니다.

이벤트 대상

IS-LocalEvents 이벤트 버스: IS-LocalEvents 이벤트 버스는 각 멤버 계정(허브 계정 포함)의 각 관리형 리전에 배포됩니다. 각 버스는 해당 리전 내에서 작업 및 리소스 등록을 예약하기 위한 이벤트를 수신합니다.

IS-GlobalEvents 이벤트 버스: 허브 계정의 IS-GlobalEvents 이벤트 버스는 모든 이벤트 버스로 전송된 각 IS-LocalEvents 이벤트의 사본을 수신하여 모든 계정 및 리전에서 중앙 집중식 모니터링을 제공합니다.

EventBridge 이벤트 사용

EventBridge 규칙을 생성하여 다음을 수행할 수 있습니다.

  • 인프라 전반의 예약 작업 모니터링

  • 인스턴스가 시작되거나 중지될 때 알림 트리거

  • 자동화된 워크플로를 위해 다른 AWS 서비스와 통합

  • 규정 준수 모니터링 및 알림 구현

이벤트 구조

모든 이벤트는 표준 EventBridge 형식을 사용합니다. 다음 예제에서는 각 이벤트 유형의 구조를 보여줍니다.

이벤트 예약:

{ "Source": "instance-scheduler", "DetailType": "Scheduling Action", "Resources": ["arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"], "Detail": { "account": "123456789012", "region": "us-east-1", "service": "ec2", "resource_id": "i-1234567890abcdef0", "requested_action": "Start", "action_taken": "Started", "schedule": "office-hours" } }

등록 이벤트:

{ "Source": "instance-scheduler", "DetailType": "Resource Registered", "Resources": ["arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"], "Detail": { "account": "123456789012", "region": "us-east-1", "service": "ec2", "resource_id": "i-1234567890abcdef0", "schedule": "office-hours" } }

각 이벤트에는 다음과 같은 키 필드가 포함됩니다.

  • Source - 이벤트 소스를 "instance-scheduler"로 식별합니다.

  • DetailType - 이벤트 범주를 지정합니다. 인스턴스 작업의 경우 "예약 작업", 이벤트 태그 지정의 경우 "리소스 등록"

  • Resources - 영향을 받는 AWS 리소스의 ARNs 포함된 배열

  • Detail - 계정 ID, 리전, 서비스 유형(ec2/rds), 리소스 ID, 일정 이름, 요청된 작업 및 실제 결과 모두의 이벤트 예약에 대한 이벤트 페이로드를 포함합니다.

이벤트 예약에 사용할 수 있는 requested_action 값:

  • Start: 인스턴스를 시작하기 위한 스케줄러

  • Stop: 인스턴스를 중지하기 위한 스케줄러

  • Configure: 인스턴스를 구성하기 위한 스케줄러

이벤트 예약에 사용할 수 있는 action_taken 값:

  • Started: 인스턴스가 시작됨

  • Stopped: 인스턴스가 중지되었습니다.

  • Hibernated: 인스턴스가 최대 절전 모드로 전환되었습니다.

  • Configured: 인스턴스 구성이 수정되었습니다.

  • Error: 예약 작업 중에 오류가 발생했습니다.

EventBridge 규칙 생성

인스턴스 스케줄러 이벤트를 모니터링하려면:

  1. AWS 계정의 EventBridge 콘솔로 이동합니다.

  2. IS-GlobalEvents 이벤트 버스(중앙 모니터링용) 또는 IS-LocalEvents 이벤트 버스(로컬 모니터링용)를 대상으로 하는 새 규칙 생성

  3. 인스턴스 스케줄러 이벤트와 일치하는 이벤트 패턴 정의

  4. SNS 주제, Lambda 함수 또는 CloudWatch Logs와 같은 대상 구성

EventBridge에 대한 자세한 내용은 Amazon EventBridge란 무엇입니까?를 참조하세요. Amazon EventBridge 사용 설명서의 .