Amazon EC2 인스턴스에 영향을 주는 예약 이벤트용 사용자 지정 이벤트 창 생성
Amazon EC2 인스턴스에 영향을 주는 예약 이벤트용 사용자 지정 이벤트 창 생성
Amazon EC2 인스턴스를 재부팅, 중지, 또는 종료하는 예약 이벤트용으로 매주 반복되는 사용자 지정 이벤트 창(event window)을 정의할 수 있어요. 이벤트 창에 하나 이상의 인스턴스를 연결할 수 있습니다. 해당 인스턴스에 대한 예약 이벤트가 계획되면 AWS는 연결된 이벤트 창 내에서 이벤트를 예약합니다.
이벤트 창을 사용하면 워크로드의 비수기(off-peak) 시간에 발생하는 이벤트 창을 지정해 워크로드 가용성을 최대화할 수 있어요. 또한 이벤트 창을 내부 유지 관리 일정에 맞출 수도 있습니다.
이벤트 창은 시간 범위 세트를 지정해 정의합니다. 최소 시간 범위는 2시간입니다. 결합된 시간 범위는 총 4시간 이상이어야 합니다.
인스턴스 ID 또는 인스턴스 태그를 사용해 하나 이상의 인스턴스를 이벤트 창에 연결할 수 있습니다. 호스트 ID를 사용해 Dedicated Hosts를 이벤트 창에 연결할 수도 있어요.
경고 — 이벤트 창은 인스턴스를 중지, 재부팅, 또는 종료하는 예약 이벤트에만 적용됩니다. 이벤트 창은 다음에는 적용되지 않아요.
- 신속 처리(expedited) 예약 이벤트와 네트워크 유지 관리 이벤트
- 자동 인스턴스 복구와 계획되지 않은 재부팅 같은 예약되지 않은 유지 관리
출처: 문서
고려 사항
- 모든 이벤트 창 시간은 UTC입니다.
- 이벤트 창은 여러 시간 범위를 포함할 수 있습니다. 각 개별 범위는 최소 2시간이어야 하지만, 모든 범위의 총 기간은 최소 4시간이어야 합니다.
- 하나의 대상 유형(인스턴스 ID, Dedicated Host ID, 또는 인스턴스 태그)만 이벤트 창에 연결할 수 있어요.
- 대상(인스턴스 ID, Dedicated Host ID, 또는 인스턴스 태그)은 하나의 이벤트 창에만 연결할 수 있습니다.
- 최대 100개의 인스턴스 ID, 또는 50개의 Dedicated Host ID, 또는 50개의 인스턴스 태그를 이벤트 창에 연결할 수 있어요. 인스턴스 태그는 원하는 수의 인스턴스에 연결할 수 있습니다.
- AWS 리전당 최대 200개의 이벤트 창을 만들 수 있어요.
- 이벤트 창에 연결된 여러 인스턴스에 예약 이벤트가 동시에 발생할 수 있습니다.
- AWS가 이미 이벤트를 예약했다면 이벤트 창을 수정해도 예약 이벤트의 시간은 바뀌지 않아요. 이벤트에 기한 날짜가 있다면 이벤트를 다시 예약할 수 있습니다.
- 예약 이벤트 전에 인스턴스를 중지했다가 시작할 수 있어요. 그러면 인스턴스가 새 호스트로 마이그레이션되고 이벤트가 지워집니다.
이벤트 창 생성
하나 이상의 이벤트 창을 만들 수 있어요. 각 이벤트 창에 대해 하나 이상의 시간 블록을 지정합니다. 예를 들어 매일 오전 4시에 2시간 동안 발생하는 시간 블록이 있는 이벤트 창을 만들 수 있습니다. 또는 일요일 오전 2시4시와 수요일 오전 3시5시에 발생하는 시간 블록이 있는 이벤트 창을 만들 수도 있어요.
이벤트 창은 삭제할 때까지 매주 반복됩니다.
콘솔
- Amazon EC2 콘솔을 엽니다.
- 탐색 창에서 Events를 선택합니다.
- Actions > Manage event windows를 선택합니다.
- Create instance event window를 선택합니다.
- Event window name에 이벤트 창을 설명하는 이름을 입력합니다.
- Event window schedule에서 cron 일정 빌더를 사용하거나 시간 범위를 지정해 이벤트 창의 시간 블록을 지정합니다.
- Cron schedule builder를 선택한 경우 다음을 지정합니다.
- Days (UTC) — 이벤트 창이 발생하는 요일을 지정합니다.
- Start time (UTC) — 이벤트 창이 시작되는 시간을 지정합니다.
- Duration — 이벤트 창의 시간 블록 기간을 지정합니다. 시간 블록당 최소 기간은 2시간입니다. 이벤트 창의 최소 기간은 총 4시간 이상이어야 합니다. 모든 시간은 UTC입니다.
- Time ranges를 선택한 경우 Add new time range를 선택하고 시작 요일·시간과 종료 요일·시간을 지정합니다. 각 시간 범위에 대해 반복합니다. 시간 범위당 최소 기간은 2시간입니다. 모든 시간 범위의 최소 기간 합계는 총 4시간 이상이어야 합니다.
- Cron schedule builder를 선택한 경우 다음을 지정합니다.
- (선택) Target details에서 하나 이상의 인스턴스를 이벤트 창에 연결합니다. 인스턴스를 연결하려면 인스턴스 ID 또는 인스턴스 태그를 사용합니다. Dedicated Hosts를 연결하려면 호스트 ID를 사용해요. 이러한 대상이 유지 관리로 예약되면 이벤트는 이 이벤트 창 동안 발생합니다. 이벤트 창에 대상을 연결하지 않은 채 만들 수도 있습니다. 나중에 이벤트 창을 수정해 하나 이상의 대상을 연결할 수 있어요.
- (선택) Event window tags에서 Add tag를 선택하고 태그의 키와 값을 입력합니다. 각 태그에 대해 반복합니다.
- Create event window를 선택합니다.
AWS CLI — 시간 범위로 이벤트 창 생성
create-instance-event-window 명령을 사용하세요.
aws ec2 create-instance-event-window \
--time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \
--tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \
--name myEventWindowName
다음은 예시 출력입니다.
{
"InstanceEventWindow": {
"InstanceEventWindowId": "iew-0abcdef1234567890",
"TimeRanges": [
{
"StartWeekDay": "monday",
"StartHour": 2,
"EndWeekDay": "wednesday",
"EndHour": 8
}
],
"Name": "myEventWindowName",
"State": "creating",
"Tags": [
{
"Key": "K1",
"Value": "V1"
}
]
}
}
AWS CLI — cron 식으로 이벤트 창 생성
create-instance-event-window 명령을 사용하세요.
aws ec2 create-instance-event-window \
--cron-expression "* 21-23 * * 2,3" \
--tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \
--name myEventWindowName
다음은 예시 출력입니다.
{
"InstanceEventWindow": {
"InstanceEventWindowId": "iew-0abcdef1234567890",
"Name": "myEventWindowName",
"CronExpression": "* 21-23 * * 2,3",
"State": "creating",
"Tags": [
{
"Key": "K1",
"Value": "V1"
}
]
}
}
PowerShell — 시간 범위로 이벤트 창 생성
New-EC2InstanceEventWindow cmdlet을 사용하세요.
$timeRange = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange.StartWeekDay = "monday"
$timeRange.EndWeekDay = "wednesday"
$timeRange.StartHour = 2
$timeRange.EndHour = 8
$tag = @{Key="key1"; Value="value1"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "instance-event-window"
$tagspec.Tags.Add($tag)
New-EC2InstanceEventWindow `
-Name my-event-window `
-TagSpecification $tagspec `
-TimeRange @($timeRange)
다음은 예시 출력입니다.
AssociationTarget :
CronExpression :
InstanceEventWindowId : iew-0abcdef1234567890
Name : my-event-window
State : creating
Tags : {key1}
TimeRanges : {Amazon.EC2.Model.InstanceEventWindowTimeRange}
PowerShell — cron 식으로 이벤트 창 생성
New-EC2InstanceEventWindow cmdlet을 사용하세요.
$tag = @{Key="key1"; Value="value1"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "instance-event-window"
$tagspec.Tags.Add($tag)
New-EC2InstanceEventWindow `
-Name my-event-window `
-TagSpecification $tagspec`
-CronExpression "* 21-23 * * 2,3"
다음은 예시 출력입니다.
AssociationTarget :
CronExpression : * 21-23 * * 2,3
InstanceEventWindowId : iew-0abcdef1234567890
Name : my-event-window
State : creating
Tags : {key1}
TimeRanges : {}
이벤트 창에 대상 연결
이벤트 창을 만든 뒤에는 이벤트 창에 대상을 연결할 수 있어요. 이벤트 창에는 한 가지 유형의 대상만 연결할 수 있습니다. 인스턴스 ID, Dedicated Host ID, 또는 인스턴스 태그를 지정할 수 있습니다.
콘솔
- Amazon EC2 콘솔을 엽니다.
- 탐색 창에서 Events를 선택합니다.
- 수정할 이벤트 창을 선택합니다.
- Actions > Modify instance event window를 선택합니다.
AWS CLI — 인스턴스 태그 연결
associate-instance-event-window 명령을 사용하세요.
aws ec2 associate-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"
다음은 예시 출력입니다.
{
"InstanceEventWindow": {
"InstanceEventWindowId": "iew-0abcdef1234567890",
"Name": "myEventWindowName",
"CronExpression": "* 21-23 * * 2,3",
"AssociationTarget": {
"InstanceIds": [],
"Tags": [
{
"Key": "k2",
"Value": "v2"
},
{
"Key": "k1",
"Value": "v1"
}
],
"DedicatedHostIds": []
},
"State": "creating"
}
}
AWS CLI — 인스턴스 ID 연결
aws ec2 associate-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"
AWS CLI — Dedicated Host 연결
aws ec2 associate-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--association-target "DedicatedHostIds=h-029fa35a02b99801d"
PowerShell — 인스턴스 태그 연결
Register-EC2InstanceEventWindow cmdlet을 사용하세요.
$tag1 = @{Key="key1"; Value="value1"}
$tag2 = @{Key="key2"; Value="value2"}
Register-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890 `
-AssociationTarget_InstanceTag @($tag1,$tag2)
PowerShell — 인스턴스 ID 연결
Register-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890 `
-AssociationTarget_InstanceId i-1234567890abcdef0, i-0598c7d356eba48d7
PowerShell — Dedicated Host 연결
Register-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890 `
-AssociationTarget_DedicatedHostId h-029fa35a02b99801d
이벤트 창에서 대상 분리
콘솔
- Amazon EC2 콘솔을 엽니다.
- 탐색 창에서 Events를 선택합니다.
- 수정할 이벤트 창을 선택합니다.
- Actions > Modify instance event window를 선택합니다.
AWS CLI — 인스턴스 태그 분리
disassociate-instance-event-window 명령을 사용하세요.
aws ec2 disassociate-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"
AWS CLI — 인스턴스 ID 분리
aws ec2 disassociate-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"
AWS CLI — Dedicated Host 분리
aws ec2 disassociate-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--association-target DedicatedHostIds=h-029fa35a02b99801d
PowerShell — 인스턴스 태그 분리
Unregister-EC2InstanceEventWindow cmdlet을 사용하세요.
$tag1 = @{Key="key1"; Value="value1"}
$tag2 = @{Key="key2"; Value="value2"}
Unregister-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890 `
-AssociationTarget_InstanceTag @($tag1, $tag2)
PowerShell — 인스턴스 ID 분리
Unregister-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890 `
-AssociationTarget_InstanceId i-1234567890abcdef0, i-0598c7d356eba48d7
PowerShell — Dedicated Host 분리
Unregister-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890 `
-AssociationTarget_DedicatedHostId h-029fa35a02b99801d
이벤트 창 수정
이벤트 창의 ID를 제외한 모든 필드를 수정할 수 있어요. 예를 들어 일광 절약 시간이 시작될 때 이벤트 창 일정을 수정하고 싶을 수 있습니다. 기존 이벤트 창의 경우 대상을 추가하거나 제거하고 싶을 수 있어요.
이벤트 창을 수정할 때 시간 범위 또는 cron 식 중 하나를 수정할 수 있지만, 둘 다는 수정할 수 없습니다.
콘솔
- Amazon EC2 콘솔을 엽니다.
- 탐색 창에서 Events를 선택합니다.
- Actions > Manage event windows를 선택합니다.
- 수정할 이벤트 창을 선택한 뒤 Actions > Modify instance event window를 선택합니다.
- 이벤트 창의 필드를 수정한 뒤 Modify event window를 선택합니다.
AWS CLI — 시간 범위 수정
modify-instance-event-window 명령을 사용하세요.
aws ec2 modify-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8
AWS CLI — 시간 범위 세트 수정
aws ec2 modify-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--time-range '[{"StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8},
{"StartWeekDay": "thursday", "StartHour": 2, "EndWeekDay": "friday", "EndHour": 8}]'
AWS CLI — cron 식 수정
aws ec2 modify-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--cron-expression "* 21-23 * * 2,3"
PowerShell — 시간 범위 수정
Edit-EC2InstanceEventWindow cmdlet을 사용하세요.
$timeRange1 = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange1.StartWeekDay = "monday"
$timeRange1.EndWeekDay = "wednesday"
$timeRange1.StartHour = 2
$timeRange1.EndHour = 8
$timeRange2 = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange2.StartWeekDay = "thursday"
$timeRange2.EndWeekDay = "friday"
$timeRange2.StartHour = 1
$timeRange2.EndHour = 6
Edit-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890 `
-TimeRange @($timeRange1, $timeRange2)
PowerShell — cron 식 수정
Edit-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890 `
-CronExpression "* 21-23 * * 2,3"
이벤트 창 삭제
한 번에 하나의 이벤트 창을 삭제할 수 있어요.
콘솔
- Amazon EC2 콘솔을 엽니다.
- 탐색 창에서 Events를 선택합니다.
- Actions > Manage event windows를 선택합니다.
- 삭제할 이벤트 창을 선택한 뒤 Actions > Delete instance event window를 선택합니다.
- 메시지가 표시되면
delete를 입력하고 Delete를 선택합니다.
AWS CLI
delete-instance-event-window 명령을 사용하고 삭제할 이벤트 창을 지정합니다.
aws ec2 delete-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890
이벤트 창이 현재 대상과 연결되어 있다면 --force-delete 파라미터를 사용하세요.
aws ec2 delete-instance-event-window \
--instance-event-window-id iew-0abcdef1234567890 \
--force-delete
PowerShell
Remove-EC2InstanceEventWindow cmdlet을 사용하세요.
Remove-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890
강제 삭제하려면 -ForceDelete $true를 사용하세요.
Remove-EC2InstanceEventWindow `
-InstanceEventWindowId iew-0abcdef1234567890 `
-ForceDelete $true