AMI 수명 주기 자동화 - Amazon EBS

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

AMI 수명 주기 자동화

다음 절차에서는 Amazon Data Lifecycle Manager를 사용하여 EBS 지원 AMI 수명 주기를 자동화하는 방법을 보여줍니다.

AMI 수명 주기 정책 생성

다음 절차 중 하나를 사용하여 AMI 수명 주기 정책을 생성합니다.

Console
AMI 정책을 생성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 [Elastic Block Store], [Lifecycle Manager] 및 [수명 주기 정책 생성]을 차례로 선택합니다.

  3. [정책 유형 선택(Select policy type)] 화면에서 [EBS 지원 AMI 정책(EBS-backed AMI policy)]을 선택한 후 [다음(Next)]을 선택합니다.

  4. [대상 리소스(Target resources)] 섹션의 [대상 리소스 태그(Target resource tags)]에서 백업할 볼륨 또는 인스턴스를 식별하는 리소스 태그를 선택합니다. 지정한 태그 키 및 값 페어가 있는 리소스만 정책에 의해 백업됩니다.

  5. [설명(Description)]에 정책에 대한 간략한 설명을 입력합니다.

  6. [IAM 역할(IAM role)]에서 AMI 및 스냅샷을 관리하고 인스턴스를 설명할 권한이 있는 IAM 역할을 선택합니다. Amazon Data Lifecycle Manager가 제공하는 기본 역할을 사용하려면 [기본 역할(Default role)]을 선택합니다. 또는 이전에 생성한 사용자 지정 IAM 역할을 사용하려면 [다른 역할 선택(Choose another role)]을 선택하고 사용할 역할을 선택합니다.

  7. [정책 태그(Policy tags)]에서 수명 주기 정책에 적용할 태그를 추가합니다. 이 태그를 사용하여 정책을 식별 및 분류할 수 있습니다.

  8. [생성 후 정책 상태(Policy status after creation)]에서 [정책 활성화(Enable policy)]를 선택하여 다음 예약 시간에 정책 실행을 시작하거나, [정책 비활성화(Disable policy)]를 선택하여 정책을 실행하지 않습니다. 지금 정책을 활성화하지 않으면 생성 후 수동으로 활성화할 때까지 AMI 생성이 시작되지 않습니다.

  9. [인스턴스 재부팅(Instance reboot)] 섹션에서 AMI 생성 전에 인스턴스를 재부팅해야 할지 여부를 지정합니다. 대상 인스턴스가 재부팅되지 않도록 하려면 [아니요(No)]를 선택합니다. [아니요(No)]를 선택하면 데이터 일관성 문제가 발생할 수 있습니다. AMI 생성 전에 인스턴스를 재부팅하려면 [예(Yes)]를 선택합니다. 이 옵션을 선택하면 데이터 일관성이 보장되지만 여러 대상 인스턴스가 동시에 재부팅될 수 있습니다.

  10. [다음(Next)]을 선택합니다.

  11. [일정 구성(Configure schedule)] 화면에서 정책 일정을 구성합니다. 정책에는 최대 4개의 일정을 구성할 수 있습니다. 일정 1은 필수입니다. 일정 2, 3, 4는 선택 사항입니다. 추가한 각 정책 일정에 대해 다음을 수행합니다.

    1. 일정 세부 정보(Schedule details) 섹션에서 다음을 수행합니다.

      1. 일정 이름(Schedule name)에 일정을 설명하는 이름을 지정합니다.

      2. 빈도(Frequency) 및 관련 필드에서 정책 실행 간격을 구성합니다.

        매일, 매주, 매월 또는 매년 일정에 따라 정책 실행을 구성할 수 있습니다. 또는 사용자 지정 cron 표현식(Custom cron expression)을 선택하여 최대 1년의 간격을 지정합니다. 자세한 내용은 Amazon CloudWatch Events 사용 설명서의 Cron 표현식을 참조하십시오.

      3. [시작 시간(Starting at)]에서 정책 실행을 시작할 시간을 지정합니다. 첫 번째 정책 실행은 예약하는 시간 후 한 시간 이내에 시작됩니다. 시간은 hh:mm UTC 형식으로 입력해야 합니다.

      4. [보존 유형(Retention type)]에서 일정에 따라 생성되는 AMI의 보존 정책을 지정합니다.

        총 수 또는 수명을 기준으로 AMI를 보존할 수 있습니다.

        개수 기반 보존의 경우 범위는 1에서 1000까지입니다. 최대 수에 도달한 후에는 새 AMI를 생성할 때 가장 오래된 AMI가 등록 해제됩니다.

        수명을 기준으로 보존하는 경우 범위는 1일에서 100년까지입니다. 각 AMI의 보존 기간이 만료되면 AMI가 등록 해제됩니다.

        참고

        모든 일정은 동일한 보존 유형을 가져야 합니다. 일정 1에 대해서만 보존 유형을 지정할 수 있습니다. 일정 2, 3, 4는 일정 1에서 보존 유형을 상속합니다. 각 일정에는 고유한 보존 횟수 또는 기간이 있을 수 있습니다.

    2. AMI에 대한 태깅을 구성합니다.

      [태깅(Tagging)] 섹션에서 다음을 수행합니다.

      1. 일정에 따라 소스 인스턴스에서 사용자 정의 태그를 모두 AMI로 복사하려면 [소스에서 태그 복사(Copy tags from source)]를 선택합니다.

      2. 기본적으로 일정에 따라 생성되는 AMI에는 소스 인스턴스의 ID가 자동으로 태깅됩니다. 이 자동 태깅이 발생하지 않도록 하려면 [가변 태그(Variable tags)]를 선택한 다음 instance-id:$(instance-id) 타일을 선택합니다.

      3. 이 일정에 따라 생성된 AMI에 할당할 추가 태그를 지정하려면 [태그 추가(Add tags)]를 선택합니다.

    3. AMI 사용 중단을 구성합니다.

      더 이상 사용하지 않아야 할 AMI를 사용 중단하려면 AMI 사용 중단(AMI deprecation) 섹션에서 이 일정에 대해 AMI 사용 중단 사용(Enable AMI deprecation for this schedule)을 선택한 다음 AMI 사용 중단 규칙을 지정합니다. AMI 사용 중단 규칙은 AMI가 사용 중단되는 시점을 지정합니다.

      일정에 개수 기준 AMI 보존을 사용하는 경우 사용 중단할 가장 오래된 AMI 수를 지정해야 합니다. 사용 중단 수는 일정의 AMI 보존 수보다 작거나 같아야 하며 1,000보다 클 수 없습니다. 예를 들어 최대 5개의 AMI를 보존하도록 일정이 구성된 경우 가장 오래된 AMI를 최대 5개까지 사용 중단하도록 일정을 구성할 수 있습니다.

      일정에 경과 시간 기준 AMI 보존을 사용하는 경우 AMI가 사용 중단되기까지의 기간을 지정해야 합니다. 사용 중단 수는 일정의 AMI 보존 수보다 작거나 같아야 하며 10년(120개월, 520주 또는 3,650일)보다 클 수 없습니다. 예를 들어 10일 동안 AMI를 보존하도록 일정이 구성된 경우, 생성된 날로부터 최대 10일 후에 AMI를 사용 중단하도록 일정을 구성할 수 있습니다.

    4. 크로스 리전 복사를 구성합니다.

      일정에 따라 생성된 AMI를 다른 리전에 복사하려면 [리전 간 복사(Cross-Region copy)] 섹션에서 [리전 간 복사 활성화(Enable cross-Region copy)]를 선택합니다. 계정에서 최대 3개의 추가 리전에 AMI를 복사할 수 있습니다. 각 대상 리전에 대해 별도의 리전 간 복사 규칙을 지정해야 합니다.

      각 대상 리전에 대해 다음을 지정할 수 있습니다.

      • AMI 사본의 보존 정책. 이 보존 기간이 만료되면 대상 리전의 사본이 자동으로 등록 취소됩니다.

      • AMI 사본의 암호화 상태. 소스 AMI가 암호화되거나 암호화가 기본적으로 활성화된 경우 복사된 AMI가 항상 암호화됩니다. 소스 AMI가 암호화되어 있지 않고 암호화가 기본적으로 비활성화된 경우 선택적으로 암호화를 사용할 수 있습니다. KMS 키을(를) 지정하지 않은 경우 AMI는 각 대상 리전에서 EBS 암호화의 기본 KMS 키를 사용하여 암호화됩니다. 대상 리전에 대한 KMS 키을(를) 지정하는 경우 선택한 IAM 역할에 KMS 키에 대한 액세스 권한이 있어야 합니다.

      • AMI 사본의 사용 중단 규칙. 사용 중단 기간이 만료되면 AMI 사본은 자동으로 사용 중단됩니다. 사용 중단 기간은 사본 보존 기간보다 작거나 같아야 하며 10년보다 클 수 없습니다.

      • 소스 AMI에서 모든 태그를 복사할지 아니면 태그를 복사하지 않을지 여부.

      참고

      리전당 동시 AMI 복사본 수를 초과해서는 안 됩니다.

    5. 일정을 더 추가하려면 화면 상단에서 [다른 일정 추가(Add another schedule)]를 선택합니다. 각 추가 일정에 대해, 이 주제의 앞부분에서 설명한 대로 필드를 작성합니다.

    6. 필요한 일정을 추가한 후 [정책 검토(Review policy)]를 선택합니다.

  12. 정책 요약을 검토한 다음 정책 생성(Create policy)을 선택합니다.

    참고

    Role with name AWSDataLifecycleManagerDefaultRoleForAMIManagement already exists 오류가 발생하는 경우 자세한 내용은 문제 해결 섹션을 참조하세요.

Command line

create-lifecycle-policy명령을 사용하여 AMI 수명 주기 정책을 생성합니다. PolicyTypeIMAGE_MANAGEMENT을 지정합니다.

참고

구문을 단순화하기 위해 다음 예에서는 정책 세부 정보가 포함된 JSON 파일(policyDetails.json)을 사용합니다.

예 1: 경과 시간 기준 보존 및 AMI 사용 중단

이 예제에서는 대상 인스턴스를 재부팅하지 않고 값이 purposeproduction 태그 키가 있는 모든 인스턴스의 AMI를 생성하는 AMI 수명 주기 정책을 만듭니다. 이 정책에는 매일 01:00 UTC에 AMI를 생성하는 하나의 일정이 포함됩니다. 이 정책은 AMI를 2일 동안 보존하며 1일 후에 사용 중단합니다. 또한 소스 인스턴스의 태그를 생성하는 AMI에 복사합니다.

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

다음은 policyDetails.json 파일의 예입니다.

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes": [ "INSTANCE" ], "TargetTags": [{ "Key": "purpose", "Value": "production" }], "Schedules": [{ "Name": "DailyAMIs", "TagsToAdd": [{ "Key": "type", "Value": "myDailyAMI" }], "CreateRule": { "Interval": 24, "IntervalUnit": "HOURS", "Times": [ "01:00" ] }, RetainRule":{ "Interval" : 2, "IntervalUnit" : "DAYS" }, DeprecateRule": { "Interval" : 1, "IntervalUnit" : "DAYS" }, "CopyTags": true } ], "Parameters" : { "NoReboot":true } }

요청이 성공하면 명령은 새로 생성된 정책의 ID를 반환합니다. 출력의 예제는 다음과 같습니다.

{ "PolicyId": "policy-9876543210abcdef0" }
예 2: 교차 리전 복사를 사용한 개수 기준 보존 및 AMI 사용 중단

이 예에서는 값이 productionpurpose 태그 키가 있는 모든 인스턴스의 AMI를 생성하고 대상 인스턴스를 재부팅하는 AMI 수명 주기 정책을 생성합니다. 이 정책에는 매일 17:30 UTC에 6시간마다 AMI를 생성하는 하나의 일정이 포함됩니다. 이 정책은 3개의 AMI를 보존하며 가장 오래된 2개의 AMI를 자동으로 사용 중단합니다. 또한 AMI를 us-east-1에 복사하고, 2개의 AMI 사본을 보존하며, 가장 오래된 AMI를 자동으로 사용 중단하는 교차 리전 복사 규칙이 포함되어 있습니다.

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

다음은 policyDetails.json 파일의 예입니다.

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes" : [ "INSTANCE" ], "TargetTags": [{ "Key":"purpose", "Value":"production" }], "Parameters" : { "NoReboot": true }, "Schedules" : [{ "Name" : "Schedule1", "CopyTags": true, "CreateRule" : { "Interval": 6, "IntervalUnit": "HOURS", "Times" : ["17:30"] }, "RetainRule":{ "Count" : 3 }, "DeprecateRule":{ "Count" : 2 }, "CrossRegionCopyRules": [{ "TargetRegion": "us-east-1", "Encrypted": true, "RetainRule":{ "IntervalUnit": "DAYS", "Interval": 2 }, "DeprecateRule":{ "IntervalUnit": "DAYS", "Interval": 1 }, "CopyTags": true }] }] }

AMI 수명 주기 정책 고려 사항

다음은 AMI 수명 주기 정책 생성에 적용되는 일반적인 고려 사항입니다.

  • AMI 수명 주기 정책은 정책과 동일한 리전에 있는 인스턴스만 대상으로 합니다.

  • 지정된 시작 시간 후 1시간 내에 첫 번째 AMI 생성 작업이 시작됩니다. 후속 AMI 생성 작업은 예약된 시간으로부터 1시간 이내에 시작됩니다.

  • Amazon Data Lifecycle Manager AMI의 등록을 취소하면 백업 스냅샷이 자동으로 삭제됩니다.

  • 대상 리소스 태그는 대소문자를 구분합니다.

  • 정책의 대상이 되는 인스턴스에서 대상 태그를 제거할 경우, Amazon Data Lifecycle Manager는 표준 티어의 기존 AMI를 더 이상 관리하지 않습니다. 따라서 더 이상 필요하지 않은 경우 수동으로 AMI를 삭제해야 합니다.

  • 인스턴스를 백업하도록 여러 정책을 생성할 수 있습니다. 인스턴스에 12시간마다 AMI를 만드는 정책 A의 대상 태그인 태그 A와 24시간마다 AMI를 만드는 정책 B의 대상 태그인 태그 B, 이렇게 2개의 태그가 있다면 Amazon Data Lifecycle Manager는 양쪽 정책의 일정에 따라 AMI를 생성합니다. 여러 일정이 있는 단일 정책을 생성해도 동일한 결과를 얻을 수 있습니다. 예를 들어 태그 A만 대상으로 지정하는 단일 정책을 생성하고 12시간 간격과 24시간 간격의 2개 일정을 지정할 수 있습니다.

  • 정책이 생성된 후 대상 인스턴스에 연결된 새 볼륨은 다음 정책 실행 시 백업에 자동으로 포함됩니다. 정책이 실행되면 인스턴스에 연결된 모든 볼륨이 포함됩니다.

  • 사용자 지정 cron 기반 예약이 있는 정책이 단일 AMI만 생성하도록 구성된 경우 이 정책은 보존 임계값에 도달할 때 AMI를 자동으로 등록 취소하지 않습니다. 더 이상 필요하지 않은 경우 마지막 AMI를 수동으로 등록 취소해야 합니다.

  • 보존 기간이 생성 빈도보다 짧은 경과 시간 기반 정책을 생성할 경우, Amazon Data Lifecycle Manager는 항상 다음 AMI가 생성될 때까지 마지막 AMI를 보존합니다. 예를 들어 경과 시간 기반 정책에서 보존 기간이 7일인 AMI를 매달 한 개씩 생성하는 경우, 보존 기간이 7일이더라도 Amazon Data Lifecycle Manager는 각 AMI를 한 달 동안 보존합니다.

  • 수량 기반 정책의 경우 Amazon Data Lifecycle Manager는 보존 정책에 따라 가장 오래된 AMI의 등록을 취소하기 전에 항상 생성 빈도에 따라 AMI를 생성합니다.

  • AMI를 등록 취소하고 관련 기반 스냅샷을 삭제하는 데 몇 시간이 걸릴 수 있습니다. 이전에 생성한 AMI의 등록이 취소되기 전에 Amazon Data Lifecycle Manager가 다음 AMI를 생성할 경우, 일시적으로 보존 수량보다 많은 AMI를 보존하게 될 수 있습니다.

다음은 정책에 의해 대상으로 지정된 인스턴스 종료에 적용되는 고려 사항입니다.

  • 개수 기반 보존 일정을 사용하는 정책에 의해 대상으로 지정된 인스턴스를 종료할 경우, 이전에 종료된 인스턴스에서 생성한 AMI는 더 이상 정책으로 관리되지 않습니다. 더 이상 필요하지 않은 이전의 AMI는 수동으로 등록 취소해야 합니다.

  • 연령 기반 보존 일정을 사용하는 정책에 의해 대상으로 지정된 인스턴스를 종료할 경우, 정책은 이전에 정의된 일정의 종료된 인스턴스에서 생성된 AMI를 계속 등록 취소합니다(마지막 AMI 제외). 더 이상 필요하지 않은 경우 마지막 AMI를 수동으로 등록 취소해야 합니다.

다음 고려 사항은 AMI 정책 및 AMI 사용 중단에 적용됩니다.

  • 개수 기준 보존이 적용된 일정에 대한 AMI 사용 중단 수를 늘리면 해당 일정에 의해 생성된 모든 AMI(기존 및 신규)에 변경 사항이 적용됩니다.

  • 경과 시간 기반 보존 일정에서 AMI 사용 중단 기간을 늘리면 변경 사항은 새 AMI에만 적용됩니다. 기존 AMI는 영향을 받지 않습니다.

  • 일정에서 AMI 사용 중단 규칙을 제거해도 Amazon Data Lifecycle Manager는 이전에 해당 일정에 의해 사용 중단된 AMI의 사용 중단을 취소하지 않습니다.

  • 일정의 AMI 사용 중단 수 또는 기간을 줄여도 Amazon Data Lifecycle Manager는 이전에 해당 일정에 의해 사용 중단된 AMI의 사용 중단을 취소하지 않습니다.

  • AMI 정책에 의해 생성된 AMI를 수동으로 사용 중단할 경우 Amazon Data Lifecycle Manager는 사용 중단을 재정의하지 않습니다.

  • AMI 정책에 의해 이전에 생성된 AMI의 사용 중단을 수동으로 취소할 경우 Amazon Data Lifecycle Manager는 취소를 재정의하지 않습니다.

  • 충돌하는 여러 일정에 의해 AMI가 생성되고 하나 이상의 일정에 AMI 사용 중단 규칙이 없는 경우 Amazon Data Lifecycle Manager는 해당 AMI를 사용 중단하지 않습니다.

  • 충돌하는 여러 일정에 의해 AMI가 생성되고 해당하는 모든 일정에 AMI 사용 중단 규칙이 있는 경우 Amazon Data Lifecycle Manager는 사용 중단 날짜가 가장 늦은 결과로 사용 중단 규칙을 사용합니다.

다음은 AMI 정책과 휴지통에 적용되는 고려 사항입니다.

  • 정책의 보존 임계값에 도달하면 Amazon Data Lifecycle Manager가 AMI 등록을 취소하고 휴지통으로 보내고 사용자가 휴지통에서 해당 AMI를 수동으로 복원하는 경우 더 이상 필요하지 않을 때 AMI를 수동으로 등록 취소해야 합니다. Amazon Data Lifecycle Manager는 더 이상 AMI를 관리하지 않습니다.

  • 정책에 의해 생성된 AMI를 수동으로 등록 취소하고 정책의 보존 임계값에 도달했을 때 해당 AMI가 휴지통에 있는 경우 Amazon Data Lifecycle Manager는 AMI 등록을 취소하지 않습니다. Amazon Data Lifecycle Manager는 휴지통에 있는 AMI를 관리하지 않습니다.

    정책의 보존 임계값에 도달하기 전에 AMI가 휴지통에서 복원되는 경우 정책의 보존 임계값에 도달하면 Amazon Data Lifecycle Manager가 AMI 등록을 취소합니다.

    정책의 보존 임계값에 도달한 후 AMI가 휴지통에서 복원되면 Amazon Data Lifecycle Manager가 더 이상 AMI를 등록 취소하지 않습니다. 더 이상 필요하지 않은 AMI는 수동으로 삭제해야 합니다.

다음 고려 사항은 오류 상태인 AMI 정책에 적용됩니다.

  • 수명 기반 보존 일정이 포함된 정책의 경우 정책이 error 상태일 때 만료되도록 설정된 AMI는 무기한 보존됩니다. AMI는 수동으로 등록 취소해야 합니다. 정책을 다시 활성화하고 보존 기간이 만료되면 Amazon Data Lifecycle Manager가 AMI 등록 취소를 재개합니다.

  • 개수 기반 보존 일정이 있는 정책의 경우 error 상태인 동안 AMI 생성 및 등록 취소를 중단합니다. 정책을 다시 활성화하면 Amazon Data Lifecycle Manager가 AMI 생성을 재개하고 보존 임계값이 충족되면 AMI 등록 취소를 재개합니다.

다음은 AMI 정책 및 AMI 비활성화에 적용되는 고려 사항입니다.

  • Amazon Data Lifecycle Manager에서 생성한 AMI를 비활성화하고, 보존 임계값에 도달했을 때 해당 AMI가 비활성화되는 경우, Amazon Data Lifecycle Manager에서 AMI 등록을 취소하고 연결된 스냅샷을 삭제합니다.

  • Amazon Data Lifecycle Manager에서 생성한 AMI를 비활성화하고 연결된 스냅샷을 수동으로 보관하고, 보존 임계값에 도달했을 때 이러한 스냅샷이 보관되는 경우, Amazon Data Lifecycle Manager에서 이러한 스냅샷을 삭제하지 않으며 더 이상 관리하지 않습니다.

추가적인 리소스

자세한 내용은 Amazon Data Lifecycle Manager AWS 스토리지를 사용한 Amazon EBS 스냅샷 및 AMI 관리 자동화 블로그를 참조하십시오.