Amazon Web Services 한국 블로그

Amazon Data Lifecycle Manager(DLM) 및 사용자 지정 스크립트 기반 EBS 스냅샷 생성하기

Amazon Data Lifecycle Manager가 이제 AWS Systems Manager 문서에 포함된 사전 스냅샷 및 사후 스냅샷 스크립트 사용을 지원합니다. 이러한 스크립트를 사용하면 Data Lifecycle Manager(DLM)에서 생성한 Amazon Elastic Block Store(Amazon EBS) 스냅샷을 애플리케이션과 일관되도록 적용할 할 수 있습니다. 스크립트는 I/O 작업을 일시 중지 및 재개하고 버퍼링된 데이터를 EBS 볼륨으로 플러시하는 등의 작업을 수행할 수 있습니다. 이번 출시에 맞춰, 자체 관리 관계형 데이터베이스 및 Windows VSS (Volume Shadow Copy Service)와 함께 이 기능을 사용하는 방법을 자세히 소개하는 블로그 게시물도 올려 드리겠습니다.

Data Lifecycle Manager(DLM) 요약
간단히 요약하자면, Data Lifecycle Manager는 Amazon EBS 볼륨 스냅샷을 자동으로 생성, 보존 및 삭제하는 작업을 지원합니다. EC2 인스턴스를 AWS Systems Manager에 온보딩하고 DLM에 대한 IAM 역할을 설정하고, SSM 문서에 태그를 지정하는 등 사전 필수 단계를 완료했다면, 수명 주기 정책을 만든 후, 태그를 통해 해당 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 표시하고 보존 모델을 설정하십시오. 나머지는 DLM이 처리합니다. 정책은 실행 시기와 백업 대상은 물론, 스냅샷을 보존해야 하는 기간도 지정합니다. DLM 시연은 2018년 블로그 게시물인 새로운 소식 – Amazon EBS 스냅샷 수명 주기 관리를 참조하시기 바랍니다.

애플리케이션과 일관된 스냅샷
EBS 스냅샷은 중단 일관성을 띱니다. 즉, 스냅샷은 생성된 시점에 연결된 EBS 볼륨의 상태를 나타낸다는 의미입니다. 활성 관계형 데이터베이스의 상태를 캡처하기 위해 스냅샷을 사용하지 않는 애플리케이션을 비롯한 많은 유형의 애플리케이션의 경우, 이 정도 스냅샷이면 충분합니다. 애플리케이션에 일관되게 적용되는 스냅샷을 만들려면 보류 중인 트랜잭션(트랜잭션이 완료될 때까지 대기 중이거나 트랜잭션이 실패할 경우)을 고려하여 추가 쓰기 작업을 일시적으로 중지하고 스냅샷을 만든 다음, 정상 작업을 다시 시작해야 합니다.

이것이 바로 오늘 출시되는 기능입니다. 이제 DLM은 애플리케이션에 일관되게 적용되는 백업을 준비하도록 인스턴스에 지시할 수 있습니다. 사전 스냅샷 스크립트는 보류 중인 트랜잭션을 관리하고, 메모리 내 데이터를 영구 저장소로 플러시하며, 파일 시스템을 동결하거나 심지어는 애플리케이션 또는 데이터베이스를 중지할 수도 있습니다. 그런 다음, 사후 스냅샷 스크립트를 통해 애플리케이션 또는 데이터베이스를 다시 활성화하고 영구 스토리지에서 인메모리 캐시를 다시 로드하며 파일 시스템의 동결을 해제하는 등의 작업을 수행할 수 있습니다.

사용자 지정 스크립트에 대한 기본 수준 지원 외에도 이 기능을 사용하여 VSS Backup 스냅샷을 자동으로 생성할 수 있습니다.

사전 및 사후 스크립트
새 스크립트는 인스턴스의 DLM 정책에 적용됩니다. 사전 스냅샷 및 사후 스냅샷 스크립트가 포함된 SSM 문서를 참조하는 정책을 만들었는데 이 정책이 단일 인스턴스에 적용되는 경우를 가정해 보겠습니다. 정책이 그 일정에 따라 실행될 때 발생하는 상황은 다음과 같습니다.

  1. 사전 스냅샷 스크립트가 SSM 문서에서 시작됩니다.
  2. 스크립트의 각 명령이 실행되고 스크립트 수준 상태(성공 또는 실패)가 캡처됩니다. 정책에서 활성화되면 DLM은 실패한 스크립트를 재시도합니다.
  3. 다중 볼륨 EBS 스냅샷은 인스턴스에 연결된 EBS 볼륨에 대해 시작되며 정책을 통해 추가 제어가 가능합니다.
  4. 사후 스냅샷 스크립트는 SSM 문서에서 시작됩니다.
  5. 스크립트의 각 명령이 실행되고 스크립트 수준 상태(성공 또는 실패)가 캡처됩니다.

정책에는 스크립트 중 하나가 제한 시간을 초과하거나 실패할 때 수행되는 작업(재시도, 계속 또는 건너뛰기)을 제어할 수 있는 옵션이 포함되어 있습니다. 상태가 기록되고 Amazon CloudWatch 메트릭이 게시되며 Amazon EventBridge 이벤트가 출력되고 상태는 각 스냅샷에 자동으로 할당되는 태그로도 인코딩됩니다.

사전 스냅샷과 사후 스냅샷 스크립트는 명령 문서에서 허용되는 모든 작업 즉, 쉘 스크립트 실행, PowerShell 스크립트 실행 등을 수행할 수 있습니다. 작업은 정책에 지정된 제한 시간 내에 완료되어야 하며, 제한 시간의 허용 범위는 10초부터 120초까지입니다.

시작하기
강력한 스크립트 쌍을 구축하려면 애플리케이션 또는 데이터베이스를 자세히 이해해야 합니다. 스크립트는 모든 것이 순조롭게 진행되는 ‘성공 경로’를 처리하는 것 외에도 여러 가지 실패 시나리오에 대비한 계획을 세워야 합니다. 예를 들어, 사전 스냅샷 스크립트는 사후 스냅샷 스크립트가 예상대로 작동하지 않을 경우를 대비하여 안전장치(페일 세이프) 역할을 하는 백그라운드 작업을 분기해야 합니다. 각 스크립트는 여기에 설명된 대로 쉘 수준 상태 코드를 반환해야 합니다.

스크립트를 작성하고 테스트하여 SSM 문서로 패키징한 후, EC2 콘솔에서 Data Lifecycle Manager(DLM) 페이지를 열고 EBS 스냅샷 정책을 선택한 후 다음 단계를 클릭합니다.

프로덕션 모드로 태그가 지정된 모든 인스턴스를 대상으로 하고 기본 IAM 역할을 사용하며(다른 역할을 사용하는 경우에는 SSM에 대한 액세스를 활성화해야 함) 나머지 값은 그대로 두고 다음과 같이 계속 진행합니다.

다음 페이지에서는 사전 및 사후 스크립트까지 아래로 스크롤하여 섹션을 펼칩니다. 사전 및 사후 스크립트 활성화를 클릭하고 사용자 지정 SSM 문서를 선택한 다음, 메뉴에서 내 SSM 문서를 선택합니다. 또한 제한 시간 및 재시도 옵션을 설정하고 스크립트 중 하나가 실패할 경우 기본적으로 중단 일관성 백업을 실행하도록 선택합니다. 정책 검토를 클릭하고 마지막 확인을 한 후 다음 페이지에서 정책 생성을 클릭합니다.

정책이 생성되었으며 즉시 적용됩니다. 일단 한 번 실행한 후에는 CloudWatch 메트릭을 검사하여 시작, 완료 및 실패를 확인할 수 있습니다.

추가 자료
앞서 말씀해 드린 자세한 블로그 게시물 중 첫 번째는 다음과 같습니다.

AWS는 올해 하반기에 더 세부적인 내용을 공개할 예정이며, 공개되면 위의 목록을 업데이트하겠습니다.

설명서에서도 자세한 내용을 확인하실 수 있습니다.

DLM 비디오
글을 마치기 전에 몇 가지 유용한 비디오를 소개하면 다음과 같습니다.

지금 바로 이 새로운 기능을 사용할 수 있으며 오늘부터 사용을 시작할 수 있습니다.

Jeff