AWS EC2 Windows 인스턴스의 자동 (일일) 스냅 샷을 예약하는 방법은 무엇입니까?


12

Amazon EC2에서 호스팅되는 일부 Windows 서버가 있습니다. 일부는 Windows Server 2003을 실행하고 다른 일부는 Windows Server 2008을 실행합니다. 이들은 EBS 지원 인스턴스입니다. 대부분의 인스턴스에는 일부 추가 EBS 볼륨이 연결되어 있습니다.

매일 백업을 사용할 수 있도록 Windows 시스템 (및 연결된 EBS 볼륨)의 일일 스냅 샷을 S3에 예약하려고합니다.

이는 매우 일반적인 요구 사항이며 AWS Management Console을 통해 사용할 수 있다고 생각하지만 아쉽습니다. 어떤 접근법이 있습니까? Windows 서버에서 매일 스냅 샷을 예약하려면 어떻게합니까?

Linux에서는 온라인으로 사용할 수있는 스크립트 예제가 몇 개 있지만 Windows에는 그다지 많지 않습니다. 나는 http://sehmer.blogspot.com/2011/04/amazon-ec2-daily-snapshot-script-for.htmlhttps://github.com/ronmichael/aws-snapshot-을 보았습니다. 스케줄러 . 누구든지 이러한 접근 방식 중 하나를 사용했으며 작동합니까?

또한 Skeddly 와 같은 서비스 를 처음에는 저렴하게 보았지만 여러 서버에 사용하면 가격이 곧 상승하여 자체 솔루션을 만드는 더 나은 옵션 인 것처럼 보일 수 있습니다. 미래에 새로운 서버. Skeddly를 사용하면 각 서버에 대해 비용을 지불합니다.

Windows 인스턴스의 일일 스냅 샷을 어떻게 예약합니까?

답변:


9

Amazon Web Services는 최근 Windows 용 PowerShell 명령 줄 도구를 발표 했으며 AWS 도구 for .NET SDK 와 함께 패키지되었습니다 .

AWS Powershell 도구를 사용하면 스냅 샷을 매우 쉽게 만들 수 있습니다.

New-EC2Snapshot "vol-371acd04" -Description "My Snapshot"

다음과 같이 스냅 샷을 쿼리 할 수 ​​있습니다.

PS C:\Program Files (x86)\AWS Tools\PowerShell> Get-EC2Snapshot | more


SnapshotId  : snap-18be2b28
VolumeId    : vol-371acd04
Status      : completed
StartTime   : 2012-12-28T08:17:00.000Z
Progress    : 100%
OwnerId     : 383816850479
VolumeSize  : 30
Description : My Snapshot
OwnerAlias  :
Tag         : {}

AWS Powershell 도구가 설치되어 있는지 확인하고 위의 스 니펫과 유사한 powershell 스크립트를 사용하여 스냅 샷을 예약하는 예약 된 작업을 생성하면됩니다.

연결된 EBS 볼륨을 쿼리하도록 업데이트되었습니다.

인스턴스에 연결된 EBS 볼륨을 쿼리 한 다음 각 볼륨을 스냅 샷하려면 다음과 같이하십시오.

# Find my instance ID from the EC2 metadata
$myInstanceID = (New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")

# Query for volumes that are attached to my Instance Id
$volumes = (Get-EC2Volume).Attachment | where {$_.InstanceId -eq $myInstanceID } | Select VolumeId

# Iterate through these volumes and snapshot each of them
foreach ($volume in $volumes)
{
    New-EC2Snapshot $volume.VolumeId -Description "My Snapshot"
}

대단히 감사합니다. 이것은 내가 찾고있는 것 같습니다. New-EC2Snapshot 명령이 특정 볼륨의 스냅 샷 만 찍는 것처럼 보입니다. 제 경우에는 인스턴스가 있으며 EBS 볼륨도 첨부되어 있습니다. 루트 디바이스 및 연결된 EBS 볼륨을 포함하여 전체 인스턴스의 전체 스냅 샷을 어떻게 캡처합니까?
Stanley

@Stanley는 인스턴스에 연결된 EBS 볼륨을 쿼리하고 각 스냅 샷을 스냅 샷으로 업데이트했습니다.
Ameer Deen

고마워요 이는 각 볼륨마다 별도의 스냅 샷이 있음을 의미합니다. 나는 이것이 의미하는 것을 이해하고 싶습니다. 실패한 경우 대체 인스턴스를 어떻게 가져올 수 있습니까? EBS 루트 볼륨과 마운트 된 개별 EBS 볼륨의 스냅 샷이 모두 분리됩니다. 다른 스냅 샷에서 마운트 된 드라이브로 교체 인스턴스를 가져 오려면 어떻게합니까?
Stanley

EC2 대시 보드를 통해이를 설정할 수없는 이유는 무엇입니까? 대본에 지나치게 자신감이없는 사람들을 위해?
leen3o

5

2018 업데이트 2018 년 말 현재 EBS 스냅 샷을 자동화하는 두 가지 방법이 있습니다. 몇 년 동안 잘 작동했기 때문에 CloudWatch 이벤트의 원래 방법을 계속 사용하며 변경의 여지가 없습니다.

Ops Automator (OA)

Ops Automator 는 AWS에서 제공하는 매우 유연한 람다 스크립트 세트입니다. 위 페이지에있는 CloudWatch 템플릿과 함께 배포됩니다.

설정 단계는

  1. AWS CloudFormation 템플릿은 트리거 이벤트, 리소스 선택, 작업 실행, 동시성 제어 및 완료를 관리하는 마이크로 서비스 제품군 (AWS Lambda 함수)을 포함하는 핵심 프레임 워크를 시작합니다.
  2. 트리거 이벤트, 작업 수행 방법, 작업에 의해 선택된 리소스 및 이러한 리소스의 위치를 ​​정의하는 작업 구성 데이터는 Amazon DynamoDB 테이블에 저장됩니다.
  3. 솔루션 생성 AWS CloudFormation 템플릿은 사용자가 정의한 파라미터와 계정 간 작업을 수행하는 데 필요한 역할을 기반으로 작업을 구성합니다.
  4. 이 솔루션은 프로세스의 모든 단계, 선택한 리소스 및 가능한 오류를 포함한 작업 결과를 DynamoDB 테이블에서 추적합니다.
  5. 이 솔루션은 또한 Amazon CloudWatch Logs를 활용하여 로깅합니다. 경고 및 오류 메시지는 솔루션이 생성 한 Amazon Simple Notification Service (Amazon SNS) 주제에 게시되어 구독 한 이메일 주소로 메시지를 보냅니다.

데이터 수명주기 관리자 (DLM)

DLM 설명서 . 이는 12 시간 또는 24 시간마다 볼륨을 백업 할 수있는 더 단순하지만 유연성이 낮은 솔루션입니다. 매주, 매월 또는 가변 빈도가 구현하기 쉬운 AWS가 왜 DLM에 이러한 제한을 두 었는지 의아해합니다.

DLM은 AWS 콘솔에 통합되어 있습니다. AWS가 업데이트를 잘 유지하고 링크가 거의 끊어지지 않으므로 문서를 복사하여 붙여 넣지 않습니다.

2019 년 현재 DLM에서는 짧은 간격 을 2 시간까지 지정할 수 있지만 여전히 24 시간 이상의 간격을 지정할 수는 없습니다.

2017 년 업데이트

2017 년 현재 Cloudwatch Events를 사용하여 정기적 인 스냅 샷을 생성하는 다른 방법이 있습니다 .

이를 통해 스냅 샷을 예약 할 수 있지만 사용중인 볼륨의 문제를 해결하지 못하므로 부분적인 해결책 일뿐입니다. CloudWatch Events를 사용하여 볼륨을 정지시키는 무언가를 트리거하는 방법이있을 수 있습니다.

  1. https://console.aws.amazon.com/cloudwatch/ 에서 CloudWatch 콘솔을 엽니 다 .

  2. 탐색 창에서 이벤트를 선택하십시오.

  3. 규칙 생성을 선택하십시오.

  4. 이벤트 소스의 경우 다음을 수행하십시오.

    -> 일정을 선택하십시오.

    -> 고정 비율을 선택하고 일정 간격 (예 : 5 분)을 지정하십시오. 또는 Cron 표현식을 선택하고 Cron 표현식을 지정하십시오 (예 : 현재 시간에서 시작하여 월요일부터 금요일까지 15 분마다).

  5. 대상에 대해 대상 추가를 선택한 다음 EC2 Create Snapshot API call을 선택하십시오.

  6. 볼륨 ID에서 EBS 볼륨을 선택하십시오.

  7. 세부 사항 구성을 선택하십시오.

  8. 규칙 정의에 규칙의 이름과 설명을 입력하십시오.

  9. AWS 권한의 경우 새 역할을 생성하는 옵션을 선택하십시오. 그러면 새 탭에서 IAM 콘솔이 열립니다. 새로운 역할은 사용자를 대신하여 리소스에 액세스 할 수있는 기본 제공 대상 권한을 부여합니다. 허용을 선택하십시오. IAM 창이있는 탭이 닫힙니다.

  10. 규칙 생성을 선택하십시오.


AWS를위한 무료, 단순 및 기본 솔루션.
Vlastimil Ovčáčík

1
수명주기 관리자는 이제 2/3/4/6/8/12/24 시간 빈도를 허용합니다.
Dan Pritts

3

검색에서 나를 시작한 오래된 답변에 뛰어 들었습니다. 위의 스크립트에 대한 위의 Ameer Deen에게, btw.

데이터 수집 및 EBS 스냅 샷 프로세스를 완전히 자동화하기 위해 PowerShell 스크립트와 훨씬 더 깊은이 게시물을 찾았습니다.

http://messor.com/aws-disaster-recovery-automation-w-powershell/

그런 다음 모두 현재 평가되지 않은 AWS SDK v1.0 용으로 작성되었다는 것을 알았으므로 마지막 날에 수정하여 v2.0에서 모두 작동하게했습니다.

https://github.com/noahlh/aws-automated-backup-powershell

즐겨!


3

AutomatiCloud는 필요한 것을 정확하게 수행합니다. EBS 볼륨 또는 RDS 인스턴스의 백업을 예약 할 수있는 Windows 도구를 사용하기 쉽습니다. www.automaticoud.net

당신은 할 수 있습니다

  • 인스턴스 ID 또는 태그를 기반으로 스냅 샷 및 AMI 생성
  • 매크로를 사용하여 동적 태그 생성
  • 3 단계의 보존 기간 정의 (GFS 백업)
  • 이메일 알림 보내기
  • Windows 인스턴스 용 VSS 에이전트 추가
  • 백업 전 / 후 스크립트 실행
  • 그리고 훨씬 더 ...

이거 정말 좋아 보인다! 오늘 다운로드하여 나중에 사용하도록하겠습니다.
leen3o

1
자동 음료는 무료입니까? 한동안 사용한 후에 돈을 요구합니까?
EricP

AutomatiCloud는 무료입니다. 고급 기능은 등록이 필요합니다.
Stephan Buhre


0

EC2 API와 통신하여 해당 스냅 샷을 예약하는 스크립트를 작성할 수 있습니다. 기존 인스턴스 중 하나에서 실행되거나 Windows 호스트의 스냅 샷을 시작하는 유일한 기능을 가진 t1.micro에서이 목적으로 작은 Linux 인스턴스를 설정할 수 있습니다. 스크립트는 선택한 시간에 매일 실행되는 크론 작업으로 Linux 호스트에 배치 될 수 있습니다.

첫 번째 링크는 Windows 호스트에서 제공하는 스크립팅의 예이며 Windows의 예약 된 작업으로 쉽게 자동화 할 수 있습니다.

두 번째 링크에서 링크 한 응용 프로그램을 사용하지 않았습니다.


좀 더 자세히 설명해 주시겠습니까? 나는 해결책이 아마도 일종의 스크립트를 작성하는 것이 될 것이라는 것을 알고 있지만, 그 자체 로이 지식만으로는 문제를 해결하기에 충분하지 않습니다. 언급 한 스크립트의 링크 나 샘플이 있습니까?
Stanley

귀하의 질문에서 연결 한 것이 실제로 잘 작동합니다. AWS API 명령 줄 도구에 대해 잘 알고 있습니까?
Nathan V

0

Windows 인스턴스의 현재 EBS 스냅 샷 기능은 여기에 설명되어 있습니다. http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-creating-snapshot.html

일관된 스냅 샷을 얻으려면 스냅 샷이 완료 될 정도로 볼륨에 대한 쓰기를 일시 중지해야합니다. 일반적으로 이는 볼륨을 마운트 해제해야 함을 의미합니다. AWS 문서는 Windows에서 명령 줄을 통해이 작업을 수행하는 방법에 대해 설명하지 않지만 다음 수퍼 유저 스레드에서이를 확인할 수 있습니다. /superuser/704870/mount-and-dismount-hard-drive-through -스크립트 소프트웨어

시스템 부팅 볼륨의 스냅 샷을 얻으려면 인스턴스를 중지해야합니다.

희망이 도움이됩니다.


0

나는 이것이 오래된 질문이라는 것을 알고 있지만 우리의 해결책을 공유 할 것입니다.

우리는 Ylastic 이라는 서비스를 사용합니다 . Pro 요금제 ($ 50 / 월)에는 EBS 스냅 샷 예약이 포함되며 서버 나 디스크 수에는 제한이 없습니다. 원하는 경우 이전 백업도 제거합니다. 고유 한 보존 정책을 사용하여 여러 일정 (예 : 매일, 매주 등)을 만들 수 있습니다.

또한 인터페이스를 통해 백업에서 새 인스턴스를 생성 할 수 있습니다.

약 20 개의 인스턴스와 40 개의 EBS 볼륨으로 수년간 우리를 위해 안정적으로 작동했습니다. 아마도 더 저렴한 방법이 있지만 가격은 우리가 직접 무언가를 만들고 유지하지 않아도 될 정도로 충분히 낮습니다.

이 기능에 대한 자세한 내용 은 http://blog.ylastic.com/post/148519929496/multi-region-ebs-instance-backup-management 를 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.