[AWS] AWS Backup for EC2 Instance

[1] 배경

1) 과거

AWS Backup을 아직도 활용하지 않는 조직들이 많이 있다.

예를 들면, 볼륨 스냅샷 백업이나 AMI Backup 을 Lambda function 으로 배포하여 cloudwatch 스케쥴 규칙으로 설정하여 관리하는 조직들이 정말 많았다.

하지만 이렇게 되면 규칙들을 수정할 경우, Cloudwatch 설정 내용을 까봐야하고, 대상을 확인하여 조정을 하기 위해서는 Lambda 를 수정해야 하는 일이 많았다.

무엇보다도 히스토리 관리가 하나도 되어 있지 않으며, 유사시 특정 RPO 시점에서 즉시 복원이 어렵다.


2) 현재

AWS Backup은 AWS 환경에서 리소스 백업을 중앙에서 관리하고 자동화할 수 있도록 설계된 서비스이다.

AWS Backup을 사용하면 데이터를 보호하고 복원 능력을 향상시킬 수 있습니다. AWS Backup을 효과적으로 사용하려면 두 가지 주요 구성 요소를 알면 간단하게 진행 가능하다.

AWS Backup Valut 및 Backup Plan / Assignment 이다. 


AWS Backup vault & AWS Backup Plan 이해를 먼저 살펴봅시다.

[2] AWS Backup vault & AWS Backup Plan 이해

  1. Backup Vault (요약: 고유 AWS KMS Key로 백업 데이터 암호화로 데이터 보안 유지)
    • AWS Backup Vault는 백업 데이터를 저장하는 데 사용되는 전용 컨테이너입니다.
    • Vault를 사용하면 백업 데이터의 무결성과 보안을 유지할 수 있습니다.
    • 각 Vault는 고유한 AWS KMS 키를 사용하여 백업 데이터를 암호화할 수 있습니다.
    • 별도의 vaults를 설정함으로써 다양한 데이터 형식이나 정책을 갖는 백업을 분리하거나 구분할 수 있습니다.
  2. Backup Plan (요약: 다양한 주기, 기간, 리소스, 규칙 등등 커스텀 관리 가능)
    • Backup Plan은 백업 정책 및 규칙을 정의하는데 사용됩니다.
    • 이 계획에는 백업의 주기, 보존 기간, 사용할 리소스 선택 방법 등이 포함될 수 있습니다.
    • 예를 들어, 일부 데이터는 매일 백업되어야 하며, 다른 데이터는 주간 또는 월간으로만 백업될 수 있습니다.
    • Backup Plan을 사용하면 이러한 요구 사항을 명확하게 정의하고 자동화 할 수 있습니다.

[3] 작업 내용

3-1. 작업 순서

  1. AWS Backup vault 설정
  2. AWS Backup plan 설정
  3. AWS EC2 Instance Tag 설정
  4. AWS Protected resources 확인
  5. AMI 확인 (Details / Tags)

3-2. 작업 내용

1) 백업규칙 생성 (사전 정의 사항)

Backup rule name

  • 백업 규칙 이름 설정이 가능하다. 최대한 한눈에 식별이 가능하도록 네이밍하는 것이 좋을 것 같음.
  • Example) Daily-8day-Retention-Rule

Backup vault

  • 서비스, 리소스 속성을 고려한 Default 혹은 Customized 된 백업 볼트 조건이 필요하다(Default 여도 상관없으나 자체적으로 생성하여 적용하는 것이 보안상으로 유리

Frequency

  • 백업이 되는 주기를 설정한다.
  • 커스텀이 가능하며, Hourly, 12Hours, Daily, Weekly, Monthly, or Custom Cron expression 등 원하는 주기 설정 가능

Start time

  • Time zone 별 시간/분 설정 가능.
  • Example) 18:00 UTC (예전에는 UTC 기준이었던 것 같으나, 최근에는 Asia/Seoul (UTC+09:00) 과 같이 Local Area 설정이 가능해져서 편하게 HH:MM 설정이 가능함)

Start within

  • 위 Start time에서 지정된 시간에 백업 진행이 되지 않을때 몇 시간 내 백업이 진행되면 될 지 기간을 설정을 하는 것
  • Start Time 정확도를 가장 높일 수 있는 방법은 (최소값인) Within 1 Hour 이다..

Complete within

  • 백업이 시작되고 몇시간 내 완료할 것인가에 관한 내용이다.
  • 최소값은 2Hours 이지만, 통상 실패 가능성을 염두하여 4Hours 로 설정해도 괜찮다.

Transition to cold storage

  • 콜드 스토리지로 전환할 경우, 다음과 같이 설정이 가능하다. (Default: Disabled)
  • 선택 옵션은, 안함(기본값)/일/주/월/년 으로 되어 있다.
  • 이것을 활성화할 경우, 최소 90일의 보존기간(Retension Duration) 설정이 의무적으로 되어야 설정 가능하다.

Retention period

  • 보존기간을 말한다. 생성된 백업(AMI)에 관하여 보존기간을 설정한다.
  • 일/주/월/년/영구적보관 등이 있다.

Copy to destination

  • 로컬에서 백업이 완료될 때마다 다른 리젼으로 백업 대상을 복사하여 리젼 간 고가용성을 유지하도로 한다.
  • 리젼을 선택할 수 있다.

2) 작업 진행 사항 확인

  • AWS Backup > Protected resources > 목표 대상이 정상적으로 백업 완료되었는지 확인
  • AMI 와 Snapshot 에서 정상적으로 백업 되었

3-3. 작업 시나리오(핸즈온)

1) 백업 볼트 생성

  • AWS Backup의 Backup Vault(백업 볼트)는 백업 데이터를 저장하고 관리하는 전용 공간입니다.
  • 데이터 분리를 통해 별도의 Backup Vault를 만들어서 다양한 프로젝트, 애플리케이션 또는 환경(예: 개발, 스테이징, 프로덕션)에 대한 백업을 분리하고 조직화할 수 있습니다. 이는 데이터 관리의 명확성과 효율성을 높입니다.
  • 그 밖에 보안향상, 복원의 용이성(아래에서 자세히 설명), 접근제어, 리소스 최적화, 모니터링 및 알림 등 장점이 있습니다.

2) 백업 계획 생성

: 백업 계획은 생성은 크게 4가지로 나뉩니다.

  1. 백업 볼트 생성본 확인(앞에서 생성)
  2. 백업 규칙 생성
  3. 백업 리소스 할당
  4. 백업 계획 태그
  • 위 내용은 전체 설정이 완료되었을때의 오버뷰입니다.

3) 백업 규칙 생성

  • 백업 규칙이 생성되었습니다

4) 리소스 할당

  • 앞서 생성한 백업 계획에서 리소스 할당을 진행합니다.
  • 인스턴스 내 Tag (Key / Vault) 설정으로 백업 계획을 할 리소스를 정의해줍니다.

향후 아래와 같이 설정을 하면 매우 쉽게 관리할 수 있습니다. 단 해당 인스턴스를 Termaination 한 후 AMI 또는 신규로 Launch 할 경우, 시 태그를 다시 걸어놓아야 하는 번거로움이 있습니다.

3-4. 백업 현황 확인

1) 보호된 리소스 확인

2) AMI 및 Snapshot 에서 확인

  • 이미지 > AMI 에서 자동으로 등록된 AMI 확인 가능합니다.
  • 백업 규칙에 따라 자동 등록된 AMI의 Snapshot 입니다.
  • volume 으로 생성하여 언제든 Re-attach 가능합니다.

  • 백업 볼트 > 복구 시점 카테고리에서 언제든 복원 가능합니다.

[4] 결론

AWS 고객사의 신규 구성시 EC2 인스턴스를 백업하는 것은 필수 중에 필수입닏. 

고객과의 협상에서 이러한 중요성을 간과하여 백업 계획을 스킵하고 운영을 이어지는 것만큼 큰 리스크도 없습니다.



AWS 고객사가 EC2 인스턴스를 백업하지 않는다면, 위와 같은 이점들을 놓칠 가능성이 있습니다. 

데이터 손실은 단순한 비용 문제를 넘어서, 비즈니스의 브랜드 가치, 고객 신뢰도 및 시장에서의 위치에 큰 영향을 미칠 수 있습니다. 

따라서, 비용의 이슈를 고려할 때도 백업의 중요성을 우선시하는 것이 합리적입니다.


그렇다면 AWS Backup 을 도입하면 어떤 이점이 있는지 살펴봅시다.

1. 데이터 손실의 위험 감소: 하드웨어나 소프트웨어의 장애, 데이터베이스 오류, 악의적 공격 또는 실수로 인해 발생할 수 있는 데이터 손실을 예방하기 위해 백업이 필요합니다. 데이터는 오늘날의 비즈니스에서 가장 중요한 자산 중 하나입니다.

2. 비즈니스 연속성 보장: 장애 상황에서 데이터를 복구할 수 있다면, 비즈니스는 중단 없이 계속 운영될 수 있습니다. 이는 고객 신뢰도 유지 및 잠재적 손실 최소화에 도움이 됩니다.

3. 인적 실수 대비: 사람은 항상 실수할 가능성이 있습니다. 실수로 중요한 데이터를 삭제하거나 변경할 경우, 백업된 데이터를 통해 원래 상태로 복원할 수 있습니다.

4. 악의적 행위로부터의 보호: 보안 위협, 특히 랜섬웨어 공격과 같은 악의적 행위로부터 데이터를 보호하는 데 백업이 중요합니다. 공격자가 데이터를 암호화하더라도 백업된 데이터로 복원할 수 있습니다.

5. 규정 준수: 많은 산업 분야에서는 데이터 보존 및 복구에 대한 특정 요구 사항이 정의되어 있습니다. AWS Backup을 사용하면 이러한 규정 준수 요구 사항을 쉽게 충족시킬 수 있습니다.

6. 비용 효율성: 데이터 손실로 인한 비즈니스 중단의 비용은 종종 백업의 비용을 크게 초과합니다. 즉, 초기 투자로 큰 손실을 예방할 수 있습니다.

7. 프로젝트 롤백: 개발 중인 프로젝트에서 문제가 발생했을 때, 백업을 사용하면 특정 시점으로 롤백하여 문제를 빠르게 해결할 수 있습니다.

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x