인스턴스를 중지, 종료, 재부팅 또는 복구하는 경보 만들기
Amazon CloudWatch 경보 작업을 사용하면 인스턴스를 자동으로 중지, 종료, 재부팅 또는 복구하는 경보를 만들 수 있습니다. 인스턴스를 더 이상 실행할 필요가 없을 때 중지 또는 종료 작업을 사용하여 비용을 절약할 수 있습니다. 재부팅 및 복구 작업을 사용하면 시스템 장애가 발생할 경우 인스턴스를 자동으로 재부팅하거나 새로운 하드웨어로 인스턴스를 복구할 수 있습니다.
참고
Amazon CloudWatch 경보 결제 및 요금 정보는 Amazon CloudWatch 사용 설명서의 CloudWatch 결제 및 비용을 참조하세요.
AWSServiceRoleForCloudWatchEvents
는 AWS 서비스 연결 역할을 통해 사용자를 대신하여 경보 작업을 수행할 수 있습니다. AWS Management Console, AWS CLI 또는 IAM API에서 처음으로 경보를 생성하면 CloudWatch가 사용자를 대신해 서비스 연결 역할을 생성합니다.
인스턴스를 자동으로 중지하거나 종료해야 하는 경우는 매우 다양합니다. 예를 들어 일정 기간 동안 실행한 다음 작업을 완료하는 일괄 급여 처리 작업 또는 과학적 컴퓨팅 작업 전용 인스턴스가 있을 수 있습니다. 이러한 인스턴스를 유휴 상태로 유지하여 비용이 발생하도록 하는 대신 중지하거나 종료하면 비용을 절감할 수 있습니다. 경보 작업 중지와 종료 간의 주요 차이는 나중에 다시 실행해야 하는 경우 중지된 인스턴스는 쉽게 시작할 수 있고 동일한 인스턴스 ID 및 루트 볼륨을 유지할 수 있다는 점입니다. 그러나 종료된 인스턴스를 시작할 수는 없습니다. 대신, 새 인스턴스를 시작해야 합니다. 인스턴스가 중지되거나 종료되면 인스턴스 스토어 볼륨의 데이터가 손실됩니다.
Amazon CloudWatch에서 제공하는 기본 및 세부 모니터링 지표(AWS/EC2
네임스페이스)를 비롯한 인스턴스 측정치당 Amazon EC2 및 InstanceId
값이 실행 중인 유효한 Amazon EC2 인스턴스를 참조하는 경우 차원을 포함하는 모든 사용자 지정 지표에 대해 설정된 경보에 중지, 종료, 재부팅 또는 복구 작업을 추가할 수 있습니다.
중요
누락된 지표 데이터 요소가 있는 경우 상태 검사 경보가 일시적으로 INSUFFICIENT_DATA
상태로 전환될 수 있습니다. 드물기는 하지만, 지표 보고 시스템이 중단되면 인스턴스가 정상인 경우에도 이 문제가 발생할 수 있습니다. 특히 인스턴스를 중지, 종료, 재부팅 또는 복구하도록 경보를 구성할 때는 INSUFFICIENT_DATA
상태를 경보 위반 대신 데이터 누락으로 취급하는 것이 좋습니다.
콘솔 지원
Amazon EC2 콘솔 또는 CloudWatch 콘솔을 사용하여 경보를 만들 수 있습니다. 이 문서의 절차는 Amazon EC2 콘솔을 사용합니다. CloudWatch 콘솔을 사용하는 절차는 Amazon CloudWatch 사용 설명서의 인스턴스를 중지, 종료, 재부팅 또는 복구하는 경보 생성을 참조하세요.
권한
EC2 경보 작업을 수행하는 경보를 생성하거나 수정하려면 iam:CreateServiceLinkedRole
이 있어야 합니다. 서비스 역할은 서비스가 사용자를 대신하여 작업을 수행하는 것으로 가정하는 IAM 역할입니다. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정 및 삭제할 수 있습니다. 자세한 내용은 IAM 사용 설명서의 역할을 생성하여 AWS 서비스에게 권한 위임을 참조하세요.
내용
Amazon CloudWatch 경보에 중지 작업 추가
특정 임계값에 도달한 경우 Amazon EC2 인스턴스를 중지하는 경보를 만들 수 있습니다. 예를 들어 개발 또는 테스트 인스턴스를 실행한 후 종료하는 것을 잊을 수 있습니다. 24시간 동안 평균 CPU 사용률이 10% 아래로 떨어지는 경우 즉, 유휴 상태로 더 이상 사용되지 않는 경우 트리거되는 경보를 만들 수 있습니다. 필요에 맞춰 임계값 및 기간을 조정할 수 있습니다. 또한 경보가 트리거되면 이메일을 받을 수 있도록 Amazon Simple Notification Service(Amazon SNS) 알림을 추가할 수 있습니다.
Amazon EBS 볼륨을 루트 디바이스로 사용하는 인스턴스는 중지하거나 종료할 수 있지만, 인스턴스 스토어를 루트 디바이스로 사용하는 인스턴스는 종료만 할 수 있습니다. 인스턴스가 종료되거나 중지되면 인스턴스 스토어 볼륨의 데이터가 손실됩니다.
유휴 인스턴스를 중지하는 경보를 생성하려면(Amazon EC2 콘솔)
-
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 인스턴스를 선택합니다.
-
인스턴스를 선택하고 [작업(Actions)], [모니터링 및 문제 해결(Monitor and troubleshoot)], [CloudWatch 경보 관리(Manage CloudWatch alarms)]를 선택합니다.
또는 [경보 상태(Alarm status)] 열에서 더하기 기호(
)를 선택해도 됩니다.
-
[CloudWatch 경보 관리(Manage CloudWatch alarms)] 페이지에서 다음을 수행합니다.
-
[경보 생성(Create an alarm)]을 선택합니다.
-
경보가 트리거될 때 이메일을 받으려면 [경보 알림(Alarm notification)]에 대해 기존 Amazon SNS 주제를 선택합니다. 먼저 Amazon SNS 콘솔을 사용하여 Amazon SNS 주제를 생성해야 합니다. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서에서 A2P(Application-to-Person) 메시징에 Amazon SNS 사용을 참조하세요.
-
[경보 작업(Alarm action)]을 켜고 [중지(Stop)]를 선택합니다.
-
[샘플 그룹화 기준(Group samples by)]과 [샘플링할 데이터 유형(Type of data to sample)]에 대해 통계 및 지표를 선택합니다. 이 예에서는 [평균(Average)] 및 [CPU 사용률(CPU utilization)]을 선택합니다.
-
[경보 시기(Alarm When)] 및 [백분율(Percent)]에서 지표 임계값을 지정합니다. 이 예에서는 >= 및 10%를 지정합니다.
-
[연속 기간(Consecutive period)]과 [기간(Period)]에 대해 경보의 평가 기간을 지정합니다. 이 예에서는 [1] 연속 기간([5분(5 Minutes)])을 지정합니다.
-
Amazon CloudWatch에서 자동으로 경보 이름이 생성됩니다. 이름을 변경하려면 [경보 이름(Alarm name)]에 새 이름을 입력합니다. 경보 이름은 ASCII 문자만 포함해야 합니다.
참고
경보 구성은 경보를 만들기 전에 요구사항에 따라 조정하거나 나중에 편집할 수 있습니다. 이러한 구성에는 메트릭, 임계값, 기간, 작업 및 알림 설정이 있습니다. 그러나 경보를 만든 후에는 경보 이름은 편집할 수 없습니다.
-
생성(Create)을 선택합니다.
-
Amazon CloudWatch 경보에 종료 작업 추가
인스턴스에 대해 종료 보호가 비활성화되어 있는 경우에 한해서 특정 임계값에 도달한 경우 EC2 인스턴스를 자동으로 종료하는 경보를 만들 수 있습니다. 예를 들어 인스턴스의 작업 완료 후 해당 인스턴스가 다시 필요 없는 경우 인스턴스를 종료하려고 할 수 있습니다. 나중에 인스턴스를 사용하려는 경우에는 종료하지 말고 중지해야 합니다. 인스턴스가 종료될 때 인스턴스 스토어 볼륨의 데이터가 손실됩니다. 인스턴스 종료 방지 기능의 활성화/비활성화에 대한 자세한 내용은 종료 방지 기능 활성화 섹션을 참조하세요.
유휴 인스턴스를 종료하는 경보를 생성하려면(Amazon EC2 콘솔)
-
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 인스턴스를 선택합니다.
-
인스턴스를 선택하고 [작업(Actions)], [모니터링 및 문제 해결(Monitor and troubleshoot)], [CloudWatch 경보 관리(Manage CloudWatch alarms)]를 선택합니다.
또는 [경보 상태(Alarm status)] 열에서 더하기 기호(
)를 선택해도 됩니다.
-
[CloudWatch 경보 관리(Manage CloudWatch alarms)] 페이지에서 다음을 수행합니다.
-
[경보 생성(Create an alarm)]을 선택합니다.
-
경보가 트리거될 때 이메일을 받으려면 [경보 알림(Alarm notification)]에 대해 기존 Amazon SNS 주제를 선택합니다. 먼저 Amazon SNS 콘솔을 사용하여 Amazon SNS 주제를 생성해야 합니다. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서에서 A2P(Application-to-Person) 메시징에 Amazon SNS 사용을 참조하세요.
-
[경보 작업(Alarm action)]을 켜고 [종료(Terminate)]를 선택합니다.
-
[샘플 그룹화 기준(Group samples by)]과 [샘플링할 데이터 유형(Type of data to sample)]에 대해 통계 및 지표를 선택합니다. 이 예에서는 [평균(Average)] 및 [CPU 사용률(CPU utilization)]을 선택합니다.
-
[경보 시기(Alarm When)] 및 [백분율(Percent)]에서 지표 임계값을 지정합니다. 이 예에서는 => 및 10%를 지정합니다.
-
[연속 기간(Consecutive period)]과 [기간(Period)]에 대해 경보의 평가 기간을 지정합니다. 이 예에서는 [24] 연속 기간([1시간(1 Hour)])을 지정합니다.
-
Amazon CloudWatch에서 자동으로 경보 이름이 생성됩니다. 이름을 변경하려면 [경보 이름(Alarm name)]에 새 이름을 입력합니다. 경보 이름은 ASCII 문자만 포함해야 합니다.
참고
경보 구성은 경보를 만들기 전에 요구사항에 따라 조정하거나 나중에 편집할 수 있습니다. 이러한 구성에는 메트릭, 임계값, 기간, 작업 및 알림 설정이 있습니다. 그러나 경보를 만든 후에는 경보 이름은 편집할 수 없습니다.
-
생성(Create)을 선택합니다.
-
Amazon CloudWatch 경보에 재부팅 작업 추가
Amazon EC2 인스턴스를 모니터링하고 인스턴스를 자동으로 재부팅하는 Amazon CloudWatch 경보를 만들 수 있습니다. 재부팅 경보 작업은 인스턴스 상태 확인 오류(복구 경보 작업은 시스템 상태 확인 오류에 적합)에 권장됩니다. 인스턴스 재부팅은 운영 체제 재부팅과 같습니다. 대부분의 경우 인스턴스를 재부팅하는 데는 몇 분 밖에 걸리지 않습니다. 인스턴스를 재부팅하는 경우 동일한 물리적 호스트에 남아 있으므로 퍼블릭 DNS 이름, 프라이빗 IP 주소 및 인스턴스 스토어 볼륨의 모든 데이터가 유지됩니다.
인스턴스를 재부팅해도 인스턴스를 중지했다가 다시 시작할 때와는 달리 인스턴스 청구 기간(최소 1분 요금 포함)이 새로 시작되지 않습니다. 인스턴스가 재부팅될 때 인스턴스 스토어 볼륨의 데이터가 유지됩니다. 재부팅 후 인스턴스 스토어 볼륨을 파일 시스템에 다시 탑재해야 합니다. 자세한 내용은 인스턴스 재부팅 단원을 참조하십시오.
중요
재부팅과 복원 작업 간에 경합 상태가 발생하지 않도록 하려면 재부팅 경보와 복원 경보에 동일한 평가 기간 값을 설정하지 마세요. 재부팅 경보를 각각 1분의 평가 기간 3회로 설정하는 것이 좋습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 경보 평가를 참조하세요.
인스턴스를 재부팅하는 경보를 생성하려면(Amazon EC2 콘솔)
-
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 인스턴스를 선택합니다.
-
인스턴스를 선택하고 [작업(Actions)], [모니터링 및 문제 해결(Monitor and troubleshoot)], [CloudWatch 경보 관리(Manage CloudWatch alarms)]를 선택합니다.
또는 [경보 상태(Alarm status)] 열에서 더하기 기호(
)를 선택해도 됩니다.
-
[CloudWatch 경보 관리(Manage CloudWatch alarms)] 페이지에서 다음을 수행합니다.
-
[경보 생성(Create an alarm)]을 선택합니다.
-
경보가 트리거될 때 이메일을 받으려면 [경보 알림(Alarm notification)]에 대해 기존 Amazon SNS 주제를 선택합니다. 먼저 Amazon SNS 콘솔을 사용하여 Amazon SNS 주제를 생성해야 합니다. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서에서 A2P(Application-to-Person) 메시징에 Amazon SNS 사용을 참조하세요.
-
[경보 작업(Alarm action)]을 켜고 [재부팅(Reboot)]을 선택합니다.
-
[샘플 그룹화 기준(Group samples by)]과 [샘플링할 데이터 유형(Type of data to sample)]에 대해 통계 및 지표를 선택합니다. 이 예에서는 [평균(Average)] 및 [상태 확인 실패: 인스턴스(Status check failed: instance)]를 선택합니다.
-
[연속 기간(Consecutive period)]과 [기간(Period)]에 대해 경보의 평가 기간을 지정합니다. 이 예에서는 1분의 3 연속 기간을 입력합니다. 1분이 비활성화된 경우 세부 모니터링을 활성화해야 합니다. 그렇지 않으면 5분을 대신 선택할 수 있습니다.
-
Amazon CloudWatch에서 자동으로 경보 이름이 생성됩니다. 이름을 변경하려면 [경보 이름(Alarm name)]에 새 이름을 입력합니다. 경보 이름은 ASCII 문자만 포함해야 합니다.
-
생성(Create)을 선택합니다.
-
Amazon CloudWatch 경보에 복구 작업 추가
Amazon EC2 인스턴스를 모니터링하는 Amazon CloudWatch 경보를 만들 수 있습니다. 기본 하드웨어 장애나 복구에 AWS 개입이 필요한 문제로 인해 인스턴스가 손상된 경우 해당 인스턴스를 자동으로 복구할 수 있습니다. 종료한 인스턴스는 복구할 수 없습니다. 복구된 인스턴스는 인스턴스 ID, 프라이빗 IP 주소, 탄력적 IP 주소 및 모든 인스턴스 메타데이터를 포함하여 원본 인스턴스와 동일합니다.
CloudWatch은 복구 작업을 지원하지 않는 인스턴스에 대한 경보에 복구 작업을 추가할 수 없게 합니다.
StatusCheckFailed_System
경보가 트리거되고 복구 작업이 시작되는 경우 경보를 만들고 복구 작업을 연결할 때 선택한 Amazon SNS 주제별로 통지됩니다. 인스턴스 복구 중에 인스턴스를 재부팅할 때 인스턴스가 마이그레이션되고 모든 인 메모리 데이터가 손실됩니다. 프로세스가 완료되면 해당 경보를 위해 구성해 둔 SNS 주제로 정보가 게시됩니다. 이 SNS 주제에 가입되어 있는 사람은 누구나 복구 시도 상태와 세부 지침이 포함된 이메일 알림을 받게 됩니다. 복구된 인스턴스에서 인스턴스를 재부팅하라는 메시지가 나타납니다.
참고
복구 작업은 StatusCheckFailed_Instance
가 아닌 StatusCheckFailed_System
을 통해서만 사용할 수 있습니다.
다음과 같은 문제가 있을 경우 시스템 상태 확인이 실패할 수 있습니다.
-
네트워크 연결 끊김
-
시스템 전원 중단
-
물리적 호스트의 소프트웨어 문제
-
네트워크 연결성에 영향을 주는 물리적 호스트의 하드웨어 문제
복구 작업은 특정 특성을 충족하는 인스턴스에서만 지원됩니다. 자세한 내용은 인스턴스 복원력 단원을 참조하십시오.
인스턴스에 퍼블릭 IP 주소가 있는 경우 복구 후에도 해당 퍼블릭 IP 주소를 유지합니다.
중요
재부팅과 복원 작업 간에 경합 상태가 발생하지 않도록 하려면 재부팅 경보와 복원 경보에 동일한 평가 기간 값을 설정하지 마세요. 복구 경보는 각각 1분의 평가 기간 2회로 설정하는 것이 좋습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 경보 평가를 참조하세요.
인스턴스를 복구하는 경보를 생성하려면(Amazon EC2 콘솔)
-
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 인스턴스를 선택합니다.
-
인스턴스를 선택하고 [작업(Actions)], [모니터링 및 문제 해결(Monitor and troubleshoot)], [CloudWatch 경보 관리(Manage CloudWatch alarms)]를 선택합니다.
또는 [경보 상태(Alarm status)] 열에서 더하기 기호(
)를 선택해도 됩니다.
-
[CloudWatch 경보 관리(Manage CloudWatch alarms)] 페이지에서 다음을 수행합니다.
-
[경보 생성(Create an alarm)]을 선택합니다.
-
경보가 트리거될 때 이메일을 받으려면 [경보 알림(Alarm notification)]에 대해 기존 Amazon SNS 주제를 선택합니다. 먼저 Amazon SNS 콘솔을 사용하여 Amazon SNS 주제를 생성해야 합니다. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서에서 A2P(Application-to-Person) 메시징에 Amazon SNS 사용을 참조하세요.
참고
경보가 트리거될 때 이메일 알림을 수신하려면 사용자는 지정된 SNS 주제를 구독해야 합니다. AWS 계정 루트 사용자는 SNS 주제가 지정되지 않았거나 루트 사용자가 지정된 SNS 주제를 구독하지 않더라도 자동 인스턴스 복구 작업이 발생하면 항상 이메일 알림을 받습니다.
-
[경보 작업(Alarm action)]을 켜고 [복구(Recover)]를 선택합니다.
-
[샘플 그룹화 기준(Group samples by)]과 [샘플링할 데이터 유형(Type of data to sample)]에 대해 통계 및 지표를 선택합니다. 이 예에서는 [평균(Average)] 및 [상태 확인 실패: 시스템(Status check failed: system)]을 선택합니다.
-
[연속 기간(Consecutive period)]과 [기간(Period)]에 대해 경보의 평가 기간을 지정합니다. 이 예에서는 1분의 2 연속 기간을 입력합니다. 1분이 비활성화된 경우 세부 모니터링을 활성화해야 합니다. 그렇지 않으면 5분을 대신 선택할 수 있습니다.
-
Amazon CloudWatch에서 자동으로 경보 이름이 생성됩니다. 이름을 변경하려면 [경보 이름(Alarm name)]에 새 이름을 입력합니다. 경보 이름은 ASCII 문자만 포함해야 합니다.
-
생성(Create)을 선택합니다.
-
Amazon CloudWatch 콘솔을 사용하여 경보 및 작업 기록 보기
Amazon CloudWatch 콘솔을 사용하여 경보 및 작업 기록을 볼 수 있습니다. Amazon CloudWatch는 지난 2주 간의 경보 및 작업 기록을 보관합니다.
트리거된 경보 및 작업 기록을 보려면(CloudWatch 콘솔)
-
https://console.aws.amazon.com/cloudwatch/
에서 CloudWatch 콘솔을 엽니다. -
탐색 창에서 Alarms를 선택합니다.
-
경보를 선택합니다.
-
세부 정보 탭에 최근 상태 변화가 시간 및 지표 값과 함께 표시됩니다.
-
최신 기록 항목을 보려면 기록 탭을 선택합니다.
Amazon CloudWatch 경보 작업 시나리오
Amazon EC2 콘솔을 사용하여 특정 조건이 충족되면 Amazon EC2 인스턴스를 중지하거나 종료하는 경보 작업을 만들 수 있습니다. 경보 작업을 설정하는 콘솔 페이지의 다음 화면 캡처에서는 설정에 번호가 표시되어 있습니다. 또한 적절한 작업을 만드는 데 도움이 되도록 시나리오의 설정에도 번호를 표시했습니다.
시나리오 1: 유휴 개발 및 테스트 인스턴스 중지
소프트웨어 개발 및 테스트에 사용된 인스턴스가 한 시간 이상 유휴 상태인 경우 중지하는 경보를 만듭니다.
설정 | 값 |
---|---|
1 |
Stop |
2 |
Maximum |
3 |
CPU 사용률 |
4 |
<= |
5 |
10% |
6 |
1 |
7 |
1시간 |
시나리오 2: 유휴 인스턴스 중지
인스턴스가 24시간 동안 유휴 상태인 경우 인스턴스를 중지하고 이메일을 보내는 경보를 만듭니다.
설정 | 값 |
---|---|
1 |
Stop and email |
2 |
Average |
3 |
CPU 사용률 |
4 |
<= |
5 |
5% |
6 |
24 |
7 |
1시간 |
시나리오 3: 트래픽이 비정상적으로 높은 웹 서버에 대해 이메일 보내기
인스턴스가 일일 아웃바운드 네트워크 트래픽인 10GB를 초과하는 경우 이메일을 보내는 경보를 만듭니다.
설정 | 값 |
---|---|
1 |
이메일 |
2 |
Sum |
3 |
네트워크 출력 |
4 |
> |
5 |
10GB |
6 |
24 |
7 |
1시간 |
시나리오 4: 트래픽이 비정상적으로 높은 웹 서버 중지
아웃바운드 트래픽이 시간당 1GB를 초과하는 경우 인스턴스를 중지하고 문자 메시지(SMS)를 보내는 경보를 만듭니다.
설정 | 값 |
---|---|
1 |
Stop and send SMS |
2 |
Sum |
3 |
네트워크 출력 |
4 |
> |
5 |
1GB |
6 |
1 |
7 |
1시간 |
시나리오 5: 손상된 인스턴스 중지
5분 간격으로 수행된 연속 3회의 상태 확인에 실패한 인스턴스를 중지하는 경보를 만듭니다.
설정 | 값 |
---|---|
1 |
Stop |
2 |
Average |
3 |
상태 확인 실패: 시스템 |
4 |
- |
5 |
- |
6 |
1 |
7 |
15분 |
시나리오 6: 배치 처리 작업이 완료되면 인스턴스 종료
결과 데이터를 더 이상 보내지 않는 경우 일괄 작업을 실행하는 인스턴스를 종료하는 경보를 만듭니다.
설정 | 값 |
---|---|
1 |
Terminate |
2 |
Maximum |
3 |
네트워크 출력 |
4 |
<= |
5 |
100,000 bytes |
6 |
1 |
7 |
5분 |