MySQL / Amazon RDS 데이터베이스를 S3에 백업하는 권장 방법은 무엇입니까?


31

나는 이것에 대한 두 가지 목적이 있습니다.

  1. Amazon Web Services에 지역 전체에 문제가있는 경우 오프 사이트 백업을 수행합니다.
  2. 프로덕션 결제 계정에서 베타 결제 계정으로 프로덕션 데이터를 복사합니다.

현재 아마존은이 두 가지 사용 사례 중 하나를 즉시 지원하는 것으로 보이지 않습니다.

mysqldump와 xtrabackup ( 포스트 참조 )이 언급 된 것을 보았습니다 .

나는 또한 더 복잡한 과정을 보았습니다 ( here )

  1. 원본 결제 계정 (prod)의 새 RDS 서버가 최근 백업에서 분리되었습니다.
  2. 1 단계에서 RDS 서버에 액세스 할 수있는 새로운 EC2 인스턴스가 스핀 업됩니다.
  3. mysqldump는이 데이터베이스의 백업을 만드는 데 사용됩니다.
  4. 백업이 오프 사이트 위치 (S3?)로 복사됩니다.
  5. 별도의 계정 및 / 또는 리전에서 새로운 RDS 서버가 회전합니다.
  6. 데이터베이스 덤프를 가져옵니다.

팁과 제안을 부탁드립니다.

답변:


22

RDS를 백업하는 권장 방법은 자동 백업DB 스냅 샷을 사용하는 것 입니다. DB 스냅 샷은 기본적으로 EBS 스냅 샷과 동일합니다. EBS 스냅 샷은 장면 뒤의 S3에 저장되지만 동일한 리전 내에서만 사용할 수 있습니다.

교차 리전 내결함성 (좋은 계획!)이 필요한 경우 mysqldump에서 "어려운 방법"을 수행하지 않고 다른 리전 에서 데이터를 복원 할 방법이 없습니다 . 대안은 mysqldump를 사용하여 백업하거나 (적당한 크기의 데이터 집합에 대해 느리고 끔찍한) 다른 지역에서 자체 EC2 기반 슬레이브를 설정하고 사용 가능한 방법 (xtrabackup, EBS 스냅 샷 등)을 사용하여 백업하는 것입니다. 그러나 자체 MySQL 인스턴스 관리로 돌아 왔으므로 RDS를 완전히 포기할 수도 있습니다.

돈을 위해 RDS는 성능, 유연성 및 안정성면에서 실질적인 이점과 전혀 단점을 제공하지 않습니다. RDS가 ​​어떤 가치를 제공하는지 스스로에게 묻겠습니다.


내 현재 요구에 대해 mysqldump가 정상적으로 작동 할 수 있습니다. 대규모 데이터 세트를 기대하지 않으며 일반적으로 데이터를 너무 빨리 이동할 필요가 없습니다. RDS가 ​​다른 계정의 스냅 샷에서 새 서버를 가동시키는 기능을 지원하기를 희망합니다. 또 다른 유용한 기능은 S3 또는 해당 가져 오기 / 내보내기 서버를 사용하여 스냅 샷을 Amazon에서 가져 오거나 내보내는 것입니다. 어쨌든, 답변 주셔서 감사합니다.
피터 스티븐스

4
RDS 스냅 샷을 이제 다른 지역으로 복사 할 수 있습니다. 자세한 내용은 이 공지이 설명서 를 참조하십시오.
shelley

9

나는 같은 문제가 있었다. 내 솔루션은 간단한 bash 스크립트 를 작성하는 것이 었습니다 . 그러나 단일 지역으로 제한됩니다.

문제의 스크립트는 다음과 같습니다.

#!/bin/bash
NOWDATE=`date +%Y-%m-%d`
BACKUPNAME="$NOWDATE.sql.gz"

echo "Creating backup of database finances to $BACKUPNAME"
mysqldump user=user password=password database_name | gzip -9 > $BACKUPNAME

echo "Succesfully created database backup"

echo "Uploading backup to Amazon S3 bucket…"
s3cmd put $BACKUPNAME s3://path/to/file/$BACKUPNAME

echo "Successfully uploaded backup to S3"

echo "Deleting backup file…"
rm $BACKUPNAME

echo "Done"

mysqldump를 실행할 때 --single-transaction을 추천합니다
user1250

7

AWS RDS는 이제 교차 리전 및 교차 계정 스냅 샷 복사를 지원하므로 RDS 를 사용하여 간단하게 목표를 달성 할 수 있습니다.

이 시점에서 덤프 스크립트 방법을 사용하여 S3로 백업을 가져와야합니다. RDS 백업 비용이 S3 Standard 이상 (db에 따라 다름)이므로 S3-IA 또는 Glacier를 사용하는 기능은 비용 절감 측면에서 우수합니다.


1
계정 당 리 전당 100 개의 수동 스냅 샷으로 제한됩니다.
Jude
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.