Amazon Elastic Compute Cloud
Linux 인스턴스용 사용 설명서

Amazon EBS 스냅샷 수명 주기 자동화

Amazon EBS 볼륨을 백업하기 위해 만든 스냅샷의 생성, 보관, 삭제를 Amazon 데이터 수명 주기 관리자(Amazon DLM)로 자동화할 수 있습니다. 스냅샷 관리를 자동화하여 다음과 같은 이점을 누려 보십시오.

  • 정기적인 백업 일정을 실행하여 중요한 데이터를 보호합니다.

  • 감사 기관이나 내부 규정 준수 부서에서 요구하는 백업을 보관합니다.

  • 오래된 백업을 삭제하여 스토리지 비용을 절감합니다.

Amazon CloudWatch Events 및 AWS CloudTrail의 모니터링 기능을 Amazon DLM와 조합하면 추가 비용 없이 EBS 볼륨의 완벽한 백업 솔루션을 얻을 수 있습니다.

Amazon DLM 이해

Amazon DLM를 시작하려면 먼저 다음과 같은 핵심 요소를 이해하고 있어야 합니다.

스냅샷

스냅샷은 EBS 볼륨에서 데이터를 백업하는 기본 방법입니다. 스토리지 비용을 절약하기 위해 이전 스냅샷 이후로 변경된 볼륨 데이터만 연속 스냅샷에 증분식으로 포함시킵니다. 특정 볼륨의 스냅샷 시리즈에서 스냅샷 하나를 삭제하면 해당 스냅샷에 있는 데이터만 제거됩니다. 캡처된 볼륨 기록의 나머지는 보존됩니다.

자세한 정보는 Amazon EBS 스냅샷을 참조하십시오.

볼륨 태그

Amazon DLM는 백업할 EBS 볼륨을 리소스 태그로 파악합니다. 태그란 사용자가 AWS 리소스(EBS 볼륨 및 스냅샷 포함)에 할당할 수 있는 사용자 지정 가능한 메타데이터입니다. (아래에 설명된) Amazon DLM 정책은 단일한 고유의 태그를 사용하여 백업용 볼륨을 대상으로 합니다. 여러 정책을 실행하려면 복수의 태그를 볼륨에 할당할 수 있습니다.

'\' 또는 '=' 문자는 태그 키에 사용할 수 없습니다.

Amazon EC2 객체 태그에 대한 자세한 정보는 Amazon EC2 리소스에 태그 지정을 참조하십시오.

스냅샷 태그

Amazon DLM는 정책에 따라 생성된 모든 스냅샷에 다음 태그를 적용하여 다른 방법으로 생성된 스냅샷과 구분합니다.

  • aws:dlm:lifecycle-policy-id

  • aws:dlm:lifecycle-schedule-name

스냅샷을 생성할 때 사용자 지정 태그가 적용되도록 지정할 수도 있습니다.

'\' 또는 '=' 문자는 태그 키에 사용할 수 없습니다.

소스 볼륨의 모든 사용자 정의 태그를 원할 경우 이 정책에서 생성한 볼륨의 스냅샷으로 복사할 수 있습니다.

수명 주기 정책

수명 주기 정책은 다음의 핵심 설정으로 이루어집니다.

  • 리소스 유형 - 정책에서 관리하는 AWS 리소스로, 여기서는 EBS 볼륨입니다.

  • 대상 태그 - 정책으로 관리되도록 EBS 볼륨에 연결해야 하는 태그입니다.

  • 일정 - 스냅샷 생성 빈도와 보관할 최대 스냅샷 수를 정의합니다. 지정된 시작 시간으로부터 한 시간 안에 스냅샷이 생성되기 시작합니다. 스냅샷을 새로 생성하면 해당 볼륨에 보관할 최대 스냅샷 수를 초과하게 되는 경우, 가장 오래된 스냅샷부터 삭제합니다.

다음은 수명 주기 정책에서 고려할 사항입니다.

  • 정책의 활성화 상태를 활성으로 설정해야 정책이 스냅샷을 생성하기 시작합니다. 생성과 동시에 활성화되도록 정책을 구성할 수 있습니다.

  • 지정된 시작 시간으로부터 한 시간 안에 정책에 따라 스냅샷이 생성되기 시작합니다.

  • 대상 태그를 변경하거나 삭제하여 정책을 수정하면 그러한 태그가 있는 EBS 볼륨에는 더 이상 해당 정책이 적용되지 않습니다.

  • 정책의 일정 이름을 수정하면 예전의 일정 이름으로 생성된 스냅샷에는 더 이상 해당 정책이 적용되지 않습니다.

  • 정책마다 볼륨에 대한 고유의 태그를 대상으로 하는 한, EBS 볼륨을 백업하도록 여러 가지 정책을 생성할 수 있습니다. 비활성화된 정책이라 해도 여러 정책에서 대상 태그를 재사용할 수는 없습니다. EBS 볼륨에 12시간마다 스냅샷을 만드는 정책 A의 대상 태그인 태그 A와 24시간마다 스냅샷을 만드는 정책 B의 대상 태그인 태그 B, 이렇게 두 개의 태그가 있다면 Amazon DLM는 양쪽 정책의 일정에 따라 스냅샷을 생성합니다.

  • 정책에 따라 생성된 스냅샷을 복사하는 경우, 보관 일정은 사본으로 이전되지 않습니다. 이렇게 하면 장기간 보관해야 하는 스냅샷을 Amazon DLM에서 삭제하지 않게 됩니다.

예를 들어 태그 계정이 account=Finance인 모든 EBS 볼륨을 관리하는 정책을 만들고, 24시간마다 0900에 스냅샷을 생성하여 최근 스냅샷 다섯 개를 보관할 수 있습니다. 늦어도 0959에는 스냅샷 생성이 시작됩니다.

Amazon DLM 권한

Amazon DLM는 스냅샷을 관리하는 데 필요한 권한을 얻기 위해 IAM 역할을 사용합니다. AWS Management 콘솔을 사용하여 수명 주기 정책을 처음 생성하면 Amazon DLM가 AWSDataLifecycleManagerDefaultRole 역할을 생성합니다. 다음과 같이 create-default-role 명령으로 이 역할을 생성할 수도 있습니다.

aws dlm create-default-role

또는 필요한 권한이 있는 사용자 지정 IAM 역할을 만든 다음, 수명 주기 정책을 생성할 때 이를 선택하는 방법도 있습니다.

사용자 지정 IAM 역할을 생성하려면

  1. 다음 권한의 역할을 만듭니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateSnapshot", "ec2:DeleteSnapshot", "ec2:DescribeVolumes", "ec2:DescribeSnapshots" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*::snapshot/*" } ] }

    자세한 정보는 IAM 사용 설명서역할 생성 단원을 참조하십시오.

  2. 역할에 신뢰 관계를 추가합니다.

    1. IAM 콘솔에서 역할을 선택합니다.

    2. 생성된 역할을 선택하고 신뢰 관계를 선택합니다.

    3. 신뢰 관계 편집을 선택하고 다음 정책을 추가한 뒤 신뢰 정책 업데이트를 선택합니다.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dlm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

IAM 사용자의 권한

IAM 사용자는 다음과 같은 Amazon DLM 사용 권한을 가지고 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/AWSDataLifecycleManagerDefaultRole" }, { "Effect": "Allow", "Action": "dlm:*", "Resource": "*" } ] }

자세한 정보는 IAM 사용 설명서에서 IAM 사용자의 권한 변경을 참조하십시오.

제한

AWS 계정에는 Amazon DLM와 관련된 다음과 같은 제한이 있습니다.

  • 리전마다 최대 100개의 수명 주기 정책을 생성할 수 있습니다.

  • 리소스당 최대 50개의 태그를 추가할 수 있습니다.

  • 수명 주기 정책당 하나의 일정을 생성할 수 있습니다.

콘솔을 사용한 Amazon DLM 작업

다음 예제에서는 Amazon DLM를 사용하여 EBS 볼륨 백업의 일반적인 관리 절차를 수행하는 방법을 보여줍니다.

수명 주기 정책 생성 방법

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Elastic Block Store, Lifecycle Manager(수명 주기 관리자), Create snapshot lifecycle policy(스냅샷 수명 주기 정책 생성)를 선택합니다.

  3. 필요에 따라 정책에 대한 다음 정보를 제공합니다.

    • 설명 - 정책 설명.

    • Target volumes with tags(태그가 있는 대상 볼륨) - 백업할 볼륨을 식별하는 리소스 태그.

    • Schedule Name(일정 이름) - 백업 일정의 이름.

    • Create snapshots every n Hours(n시간마다 스냅샷 생성) - 정책 실행의 시간 간격. 지원되는 값은 12 및 24입니다.

    • Snapshot creation start time hh:mm UTC(스냅샷 생성 시작 시간 hh:mm UTC) - 하루 중 정책 실행을 시작하도록 예약한 시간. 예약 시간 후 한 시간 이내에 정책 실행을 시작합니다.

    • Retention rule(보존 규칙) - 볼륨당 보존할 최대 스냅샷 수. 지원 범위는 1~1000입니다. 제한에 도달하면 새 스냅샷을 만들 때 가장 오래된 스냅샷을 삭제합니다.

    • 태그 복사 - 소스 볼륨의 모든 사용자 정의 태그를 이 정책에서 생성한 볼륨의 스냅샷으로 복사합니다.

    • Tag created snapshots(태그가 생성된 스냅샷) - 생성된 스냅샷에 적용되는 리소스 태그. 이런 태그는 Amazon DLM에 적용되는 태그 외의 태그입니다.

    • IAM 역할 - 스냅샷을 생성, 삭제, 설명하고 볼륨을 지정할 권한이 있는 IAM 역할입니다. AWS가 기본 역할 AWSDataLifecycleManagerDefaultRole을 제공하거나, 고객이 사용자 지정 IAM 역할을 만듭니다.

    • Policy status after creation(생성 후 정책 상태) - Enable policy(정책 활성화)를 선택하면 다음 예약 시간에 정책 실행을 시작하고, Disable policy(정책 비활성화)를 선택하면 정책을 실행하지 않습니다.

  4. 정책 생성을 선택합니다.

수명 주기 정책을 표시하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Elastic Block Store, Lifecycle Manager(수명 주기 관리자)를 선택합니다.

  3. 목록에서 수명 주기 정책을 선택합니다. 세부 정보 탭에 해당 정책에 대한 다음 정보가 표시됩니다.

    • 정책 ID

    • 생성 날짜

    • 수정 날짜

    • Target volumes with these tags(이 태그가 있는 대상 볼륨)

    • Rule summary(규칙 요약)

    • 설명

    • Policy state(정책 상태)

    • Tags added to snapshots(스냅샷에 추가된 태그)

수명 주기 정책을 수정하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Elastic Block Store, Lifecycle Manager(수명 주기 관리자)를 선택합니다.

  3. 목록에서 수명 주기 정책을 선택합니다.

  4. 작업, Modify policy(정책 수정)를 선택합니다.

  5. 기존의 수명 주기 정책에서 다음과 같은 정책 값을 수정할 수 있습니다.

    • 설명 - 정책 설명.

    • Target volumes with tags(태그가 있는 대상 볼륨) - 백업할 볼륨을 식별하는 리소스 태그.

    • Schedule Name(일정 이름) - 백업 일정의 이름.

    • Create snapshots every n Hours(n시간마다 스냅샷 생성) - 정책 실행의 시간 간격. 지원되는 값은 12 및 24입니다.

    • Snapshot creation start time hh:mm UTC(스냅샷 생성 시작 시간 hh:mm UTC) - 하루 중 정책 실행을 시작하도록 예약한 시간. 예약 시간 후 한 시간 이내에 정책 실행을 시작합니다.

    • Retention rule(보존 규칙) - 볼륨당 보존할 최대 스냅샷 수. 지원 범위는 1~1000입니다. 제한에 도달하면 새 스냅샷을 만들 때 가장 오래된 스냅샷을 삭제합니다.

    • 태그 복사 - 소스 볼륨의 모든 사용자 정의 태그를 이 정책에서 생성한 볼륨의 스냅샷으로 복사합니다.

    • Tag created snapshots(태그가 생성된 스냅샷) - 생성된 스냅샷에 적용되는 리소스 태그. 이런 태그는 Amazon DLM에 적용되는 태그 외의 태그입니다.

    • IAM 역할 - 스냅샷을 생성, 삭제, 설명하고 볼륨을 지정할 권한이 있는 IAM 역할입니다. AWS가 기본 역할 AWSDataLifecycleManagerDefaultRole을 제공하거나, 고객이 사용자 지정 IAM 역할을 만듭니다.

    • Policy status after creation(생성 후 정책 상태) - Enable policy(정책 활성화)를 선택하면 다음 예약 시간에 정책 실행을 시작하고, Disable policy(정책 비활성화)를 선택하면 정책을 실행하지 않습니다.

수명 주기 정책을 삭제하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Elastic Block Store, Lifecycle Manager(수명 주기 관리자)를 선택합니다.

  3. 목록에서 수명 주기 정책을 선택합니다.

  4. 작업, Delete policy(정책 삭제)를 선택합니다.

명령줄을 사용한 Amazon DLM 작업

다음 예제에서는 Amazon DLM를 사용하여 EBS 볼륨 백업의 일반적인 관리 절차를 수행하는 방법을 보여줍니다.

예: 수명 주기 정책 생성

create-lifecycle-policy 명령을 사용하여 수명 주기 정책을 생성합니다. 구문을 간단히 하기 위해 이 예에서는 정책의 세부 정보가 들어 있는 JSON 파일(policyDetails.json)을 참조합니다.

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

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

{ "ResourceTypes": [ "VOLUME" ], "TargetTags": [ { "Key": "costcenter", "Value": "115" } ], "Schedules":[ { "Name": "DailySnapshots", "TagsToAdd": [ { "Key": "type", "Value": "myDailySnapshot" } ], "CreateRule": { "Interval": 24, "IntervalUnit": "HOURS", "Times": [ "03:00" ] }, "RetainRule": { "Count":5 }, "CopyTags": false } ] }

성공할 경우, 이 명령은 새로 생성된 정책의 ID를 반환합니다. 다음은 예제 출력입니다.

{ "PolicyId": "policy-0123456789abcdef0" }

예: 수명 주기 정책 표시

get-lifecycle-policy 명령을 사용하여 수명 주기 정책에 대한 정보를 표시합니다.

aws dlm get-lifecycle-policy --policy-id policy-0123456789abcdef0

다음은 예제 출력입니다. 여기에는 사용자가 지정한 정보와 AWS에서 삽입한 메타데이터가 들어 있습니다.

{ "Policy":{ "Description": "My first policy", "DateCreated": "2018-05-15T00:16:21+0000", "State": "ENABLED", "ExecutionRoleArn": "arn:aws:iam::210774411744:role/AWSDataLifecycleManagerDefaultRole", "PolicyId": "policy-0123456789abcdef0", "DateModified": "2018-05-15T00:16:22+0000", "PolicyDetails": { "ResourceTypes": [ "VOLUME" ], "TargetTags": [ { "Value": "115", "Key": "costcenter" } ], "Schedules": [ { "TagsToAdd": [ { "Value": "myDailySnapshot", "Key": "type" } ], "RetainRule": { "Count": 5 }, "CopyTags": false, "CreateRule": { "Interval": 24, "IntervalUnit": "HOURS", "Times": [ "03:00" ] }, "Name": "DailySnapshots" } ] } } }

예 수명 주기 정책을 수정하려면

update-lifecycle-policy 명령을 사용하여 수명 주기 정책의 정보를 수정합니다. 구문을 간단히 하기 위해 이 예에서는 정책의 세부 정보가 들어 있는 JSON 파일(policyDetailsUpdated.json)을 참조합니다.

aws dlm update-lifecycle-policy --state DISABLED --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole" --policy-details file://policyDetailsUpdated.json

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

{ "ResourceTypes":[ "VOLUME" ], "TargetTags":[ { "Key": "costcenter", "Value": "120" } ], "Schedules":[ { "Name": "DailySnapshots", "TagsToAdd": [ { "Key": "type", "Value": "myDailySnapshot" } ], "CreateRule": { "Interval": 12, "IntervalUnit": "HOURS", "Times": [ "15:00" ] }, "RetainRule": { "Count" :5 }, "CopyTags": false } ] }

업데이트된 정책을 보려면 get-lifecycle-policy 명령을 사용하십시오. 상태, 태그 값, 스냅샷 간격, 스냅샷 시작 시간이 변경된 것을 알 수 있습니다.

예: 수명 주기 정책 삭제

delete-lifecycle-policy 명령을 사용하여 수명 주기 정책을 삭제하고, 정책에 지정된 대상 태그를 해제하여 재사용할 수 있도록 합니다.

aws dlm delete-lifecycle-policy --policy-id policy-0123456789abcdef0

API를 사용하여 Amazon DLM 작업

Amazon 데이터 수명 주기 관리자 API 참조에 Amazon DLM 쿼리 API의 데이터 유형과 각 작업에 대한 설명 및 구문이 나와 있습니다.

아니면 AWS SDK 중 하나를 통해 사용 중인 프로그래밍 언어나 플랫폼에 맞는 API에 액세스해도 됩니다. 자세한 정보는 AWS SDK를 참조하십시오.

스냅샷 수명 주기 모니터링

다음 기능을 사용하여 스냅샷의 수명 주기를 모니터링할 수 있습니다.

콘솔 및 AWS CLI

Amazon EC2 콘솔 또는 AWS CLI를 사용하여 수명 주기 정책을 볼 수 있습니다. 정책에 따라 생성된 각 스냅샷에는 타임스탬프 및 해당 정책과 관련된 태그가 있습니다. 이 태그로 스냅샷을 필터링하여 백업이 의도대로 생성되고 있는지 확인할 수 있습니다. 콘솔에서 수명 주기 정책을 보는 방법에 대한 자세한 정보는 수명 주기 정책을 표시하려면 단원을 참조하십시오. CLI를 사용하여 수명 주기 정책에 대한 정보를 표시하는 방법은 예: 수명 주기 정책 표시 단원을 참조하십시오.

CloudWatch 이벤트

Amazon EBS 및 Amazon DLM는 수명 주기 정책 작업과 관련된 이벤트를 발생시킵니다. AWS Lambda 및 Amazon CloudWatch Events를 사용하여 이벤트 알림을 프로그래밍 방식으로 처리할 수 있습니다. 자세한 정보는 Amazon CloudWatch Events 사용 설명서를 참조하십시오.

다음과 같은 이벤트를 사용할 수 있습니다.

  • createSnapshot - CreateSnapshot 작업이 성공하거나 실패할 때 생기는 Amazon EBS 이벤트입니다. 자세한 정보는 Amazon EBS용 Amazon CloudWatch Events 단원을 참조하십시오.

  • DLM Policy State Change - 수명 주기 정책이 오류 상태가 될 때 생기는 Amazon DLM 이벤트입니다. 이 이벤트에는 오류의 원인에 대한 설명이 포함되어 있습니다. 다음은 IAM 역할에서 부여한 권한이 충분할 때 나타나는 이벤트의 예입니다.

    { "version": "0", "id": "01234567-0123-0123-0123-0123456789ab", "detail-type": "DLM Policy State Change", "source": "aws.dlm", "account": "123456789012", "time": "2018-05-25T13:12:22Z", "region": "us-east-1", "resources": [ "arn:aws:dlm:us-east-1:123456789012:policy/policy-0123456789abcdef" ], "detail": { "state": "ERROR", "cause": "Role provided does not have sufficient permissions", "policy_id": "arn:aws:dlm:us-east-1:123456789012:policy/policy-0123456789abcdef" } }

    다음은 한도를 초과할 때 발생하는 이벤트의 예입니다.

    { "version": "0", "id": "01234567-0123-0123-0123-0123456789ab", "detail-type": "DLM Policy State Change", "source": "aws.dlm", "account": "123456789012", "time": "2018-05-25T13:12:22Z", "region": "us-east-1", "resources": [ "arn:aws:dlm:us-east-1:123456789012:policy/policy-0123456789abcdef" ], "detail":{ "state": "ERROR", "cause": "Maximum allowed active snapshot limit exceeded", "policy_id": "arn:aws:dlm:us-east-1:123456789012:policy/policy-0123456789abcdef" } }

AWS CloudTrail

AWS CloudTrail로 사용자 활동과 API 사용을 추적하여 내부 정책 및 규제 표준에 대한 준수 사실을 입증할 수 있습니다. 자세한 정보는 AWS CloudTrail User Guide를 참조하십시오.

AWS CloudFormation

AWS CloudFormation을 사용하여 리소스 스택을 배포할 때 AWS CloudFormation 템플릿에 Amazon DLM 정책을 포함할 수 있습니다. 자세한 정보는 Amazon 데이터 수명 주기 관리자 리소스 유형 참조를 참조하십시오.