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시에 발생하는 시간 블록이 있는 이벤트 창을 만들 수도 있어요.

이벤트 창은 삭제할 때까지 매주 반복됩니다.

콘솔

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창에서 Events를 선택합니다.
  3. Actions > Manage event windows를 선택합니다.
  4. Create instance event window를 선택합니다.
  5. Event window name에 이벤트 창을 설명하는 이름을 입력합니다.
  6. Event window schedule에서 cron 일정 빌더를 사용하거나 시간 범위를 지정해 이벤트 창의 시간 블록을 지정합니다.
    • Cron schedule builder를 선택한 경우 다음을 지정합니다.
      • Days (UTC) — 이벤트 창이 발생하는 요일을 지정합니다.
      • Start time (UTC) — 이벤트 창이 시작되는 시간을 지정합니다.
      • Duration — 이벤트 창의 시간 블록 기간을 지정합니다. 시간 블록당 최소 기간은 2시간입니다. 이벤트 창의 최소 기간은 총 4시간 이상이어야 합니다. 모든 시간은 UTC입니다.
    • Time ranges를 선택한 경우 Add new time range를 선택하고 시작 요일·시간과 종료 요일·시간을 지정합니다. 각 시간 범위에 대해 반복합니다. 시간 범위당 최소 기간은 2시간입니다. 모든 시간 범위의 최소 기간 합계는 총 4시간 이상이어야 합니다.
  7. (선택) Target details에서 하나 이상의 인스턴스를 이벤트 창에 연결합니다. 인스턴스를 연결하려면 인스턴스 ID 또는 인스턴스 태그를 사용합니다. Dedicated Hosts를 연결하려면 호스트 ID를 사용해요. 이러한 대상이 유지 관리로 예약되면 이벤트는 이 이벤트 창 동안 발생합니다. 이벤트 창에 대상을 연결하지 않은 채 만들 수도 있습니다. 나중에 이벤트 창을 수정해 하나 이상의 대상을 연결할 수 있어요.
  8. (선택) Event window tags에서 Add tag를 선택하고 태그의 키와 값을 입력합니다. 각 태그에 대해 반복합니다.
  9. 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, 또는 인스턴스 태그를 지정할 수 있습니다.

콘솔

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창에서 Events를 선택합니다.
  3. 수정할 이벤트 창을 선택합니다.
  4. 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

이벤트 창에서 대상 분리

콘솔

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창에서 Events를 선택합니다.
  3. 수정할 이벤트 창을 선택합니다.
  4. 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 식 중 하나를 수정할 수 있지만, 둘 다는 수정할 수 없습니다.

콘솔

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창에서 Events를 선택합니다.
  3. Actions > Manage event windows를 선택합니다.
  4. 수정할 이벤트 창을 선택한 뒤 Actions > Modify instance event window를 선택합니다.
  5. 이벤트 창의 필드를 수정한 뒤 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"

이벤트 창 삭제

한 번에 하나의 이벤트 창을 삭제할 수 있어요.

콘솔

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창에서 Events를 선택합니다.
  3. Actions > Manage event windows를 선택합니다.
  4. 삭제할 이벤트 창을 선택한 뒤 Actions > Delete instance event window를 선택합니다.
  5. 메시지가 표시되면 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

더 알아보기