백업 내보내기 - Amazon ElastiCache for Redis

백업 내보내기

Amazon ElastiCache에서는 Amazon Simple Storage Service(Amazon S3) 버킷에 ElastiCache 백업 내보내기가 지원되므로 ElastiCache 외부에서 백업에 액세스할 수 있습니다. ElastiCache 콘솔, AWS CLI 또는 ElastiCache API를 사용하여 백업을 내보낼 수 있습니다.

다른 AWS 리전에서 클러스터를 시작해야 할 경우 백업 내보내기가 유용할 수 있습니다. 한 AWS 리전에서 데이터를 내보내고 .rdb 파일을 새 AWS 리전으로 복사한 후 새 클러스터가 채워질 때까지 기다리는 대신 해당 .rdb 파일을 사용하여 새 클러스터를 시드할 수 있습니다. 새 클러스터 시드에 대한 자세한 내용은 외부에서 생성된 백업으로 새 클러스터 시드 섹션을 참조하세요. 오프라인 처리를 위해 .rdb 파일을 사용하기 위해 클러스터의 데이터를 내보낼 수도 있습니다.

중요
  • ElastiCache 백업과 백업을 복사할 Amazon S3 버킷이 같은 AWS 리전에 있어야 합니다.

    Amazon S3 버킷으로 복사된 백업이 암호화되긴 하지만 백업을 저장하려는 Amazon S3 버킷에 대한 액세스 권한을 다른 사람에게 부여하지 않는 것이 좋습니다.

  • 데이터 계층화를 사용하는 클러스터는 Amazon S3로 백업 내보내기가 지원되지 않습니다. 자세한 내용은 데이터 계층화 섹션을 참조하세요.

Amazon S3 버킷으로 백업을 내보내려면 백업과 같은 AWS 리전에 Amazon S3 버킷이 있어야 합니다. 버킷에 ElastiCache 액세스 권한을 부여합니다. 처음 두 단계에서는 이 작업을 수행할 방법을 보여줍니다.

주의

다음 시나리오에서는 사용자가 원하지 않을 수도 있는 방법으로 데이터를 노출합니다.

  • 백업을 내보낸 Amazon S3 버킷에 대한 액세스 권한이 다른 사람에게 있는 경우.

    백업에 대한 액세스를 제어하려면 데이터에 대한 액세스를 허용할 사람에게만 Amazon S3 버킷에 대한 액세스를 허용합니다. Amazon S3 버킷에 대한 액세스 관리에 대한 자세한 내용은 Amazon S3 개발자 안내서액세스 관리를 참조하세요.

  • 다른 사람이 CopySnapshot API 작업을 사용할 권한을 가진 경우

    CopySnapshot API 작업을 사용할 권한을 가진 사용자나 그룹이 자체 Amazon S3 버킷을 생성하고 백업을 이 버킷에 복사할 수 있습니다. 백업에 대한 액세스를 제어하려면 AWS Identity and Access Management(IAM) 정책을 사용하여 CopySnapshot API를 사용할 수 있는 사람을 제어하세요. IAM을 사용하여 ElastiCache API 작업 사용을 제어하는 방법에 대한 자세한 내용은 ElastiCache 사용 설명서Amazon ElastiCache의 Identity and Access Management 섹션을 참조하세요.

1단계: Amazon S3 버킷 생성

다음 절차에서는 Amazon S3 콘솔을 사용하여 ElastiCache 백업을 내보내고 저장할 Amazon S3 버킷을 생성합니다.

Amazon S3 버킷을 생성하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 버킷 만들기를 선택합니다.

  3. [Create a Bucket - Select a Bucket Name and Region]에서 다음을 수행합니다.

    1. 버킷 이름에서 Amazon S3 버킷의 이름을 입력합니다.

      Amazon S3 버킷의 이름은 DNS를 준수해야 합니다. 그렇지 않으면 ElastiCache가 백업 파일에 액세스할 수 없습니다. DNS 준수 규칙은 다음과 같습니다.

      • 이름은 3자 이상, 63자 이하여야 합니다.

      • 이름은 마침표(.)로 구분된 일련의 레이블(1개 이상)이어야 합니다. 여기서 각 레이블은 다음과 같아야 합니다.

        • 소문자 또는 숫자로 시작합니다.

        • 소문자 또는 숫자로 끝납니다.

        • 소문자, 숫자 및 대시만 포함합니다.

      • 이름에는 IP 주소 형식(예: 192.0.2.0)을 사용할 수 없습니다.

    2. 리전 목록에서 Amazon S3 버킷의 AWS 리전을 선택합니다. 이 AWS 리전은 내보낼 ElastiCache 백업과 동일한 AWS 리전이어야 합니다.

    3. 생성을 선택합니다.

Amazon S3 버킷 생성에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서버킷 생성을 참조하세요.

2단계: Amazon S3 버킷에 대한 ElastiCache 액세스 권한 부여

ElastiCache에서 스냅샷을 Amazon S3 버킷에 복사할 수 있게 하려면 버킷 정책을 업그레이드하여 버킷에 대한 ElastiCache 액세스 권한을 부여해야 합니다.

주의

Amazon S3 버킷으로 복사된 백업이 암호화되더라도 Amazon S3 버킷에 대한 액세스 권한이 있는 사람이 데이터에 액세스할 수 있습니다. 따라서 이 Amazon S3 버킷에 대한 무단 액세스를 방지하도록 IAM 정책을 설정하는 것이 좋습니다. 자세한 정보는 Amazon S3 사용 설명서액세스 관리를 참조하세요.

Amazon S3 버킷에 대한 적절한 권한을 생성하려면 다음 단계를 수행합니다.

S3 버킷에 ElastiCache 액세스 권한 부여
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 백업을 복사할 Amazon S3 버킷 이름을 선택합니다. 1단계: Amazon S3 버킷 생성에서 생성한 S3 버킷이어야 합니다.

  3. 권한(Permissions) 탭을 선택하고 권한(Permissions)에서 ACL(액세스 제어 목록)(Access control list (ACL))을 선택한 다음 편집(Edit)을 선택합니다.

  4. 다음 옵션을 사용하여 피부여자 정식 ID 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353을 추가합니다.

    • 객체: 나열, 쓰기(Objects: List, Write)

    • 버킷 ACL: 읽기, 쓰기(Bucket ACL: Read, Write)

      참고

      GovCloud 리전의 경우 정식 ID는 40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6입니다.

  5. 저장(Save)을 선택합니다.

3단계: ElastiCache 백업 내보내기

이제 S3 버킷을 생성하고 ElastiCache에 액세스할 수 있는 권한을 부여했습니다. 그런 다음 ElastiCache 콘솔, AWS CLI 또는 ElastiCache API를 사용하여 스냅샷을 내보낼 수 있습니다. 다음 예제에서는 IAM 함수 호출자에 다음 추가 S3 관련 IAM 권한이 있다고 가정합니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*" }] }

2019년 3월 20일 이전에 도입된 AWS 리전은 기본적으로 활성 상태입니다. 이러한 AWS 리전에서는 즉시 작업을 시작할 수 있습니다. 아시아 태평양(홍콩) 및 중동(바레인)과 같이 2019년 3월 20일 이후에 도입된 리전은 기본적으로 비활성 상태입니다. 사용하려면 먼저 AWS 일반 참조의 AWS 리전 관리에 설명된 대로 리전을 활성화하거나 옵트인해야 합니다.

옵트인 리전의 경우, 업데이트된 S3 버킷 정책은 다음 예와 유사합니다. (이 예에서는 아시아 태평양(홍콩) 리전을 사용합니다.)

{ "Version": "2012-10-17", "Id": "Policy15397346", "Statement": [ { "Sid": "Stmt15399483", "Effect": "Allow", "Principal": { "Service": "elasticache.amazonaws.com" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::hkg-elasticache-backup", "arn:aws:s3:::hkg-elasticache-backup/*" ] }, { "Sid": "Stmt15399484", "Effect": "Allow", "Principal": { "Service": "ap-east-1.elasticache-snapshot.amazonaws.com" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::hkg-elasticache-backup", "arn:aws:s3:::hkg-elasticache-backup/*" ] } ] }

다음 프로세스에서는 ElastiCache 외부에서 액세스할 수 있도록 ElastiCache 콘솔을 사용하여 Amazon S3 버킷에 백업을 내보냅니다. Amazon S3 버킷이 ElastiCache 백업과 동일한 AWS 리전에 있어야 합니다.

Amazon S3 버킷으로 ElastiCache 백업을 내보내려면
  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/elasticache/에서 ElastiCache 콘솔을 엽니다.

  2. 백업 목록을 표시하려면 왼쪽 탐색 창에서 [Backups]를 선택합니다.

  3. 백업 목록에서 내보낼 백업의 이름 왼쪽에 있는 상자를 선택합니다.

  4. Copy(복사)를 선택합니다.

  5. 백업 복사본을 생성에서 다음 작업을 수행하세요.

    1. [New backup name] 상자에 새 백업의 이름을 입력합니다.

      이름은 1~1,000자여야 하며 UTF-8 인코딩일 수 있습니다.

      ElastiCache에서는 여기에 입력하는 값에 인스턴스 식별자 및 .rdb를 추가합니다. 예를 들어 my-exported-backup을 입력하면 ElastiCache에서 my-exported-backup-0001.rdb를 생성합니다.

    2. 대상 S3 위치 목록에서 백업을 복사할 Amazon S3 버킷(1단계: Amazon S3 버킷 생성에서 생성한 버킷)을 선택합니다.

      대상 S3 위치는 내보내기 프로세스가 성공할 수 있는 다음 권한이 있으며 백업의 AWS 리전에 있는 Amazon S3 버킷이어야 합니다.

      • 객체 액세스 - 읽기쓰기.

      • 권한 액세스 - 읽기.

      자세한 내용은 2단계: Amazon S3 버킷에 대한 ElastiCache 액세스 권한 부여 섹션을 참조하세요.

    3. Copy(복사)를 선택합니다.

참고

ElastiCache에서 백업을 내보내는 데 필요한 권한이 S3 버킷에 없으면 다음 오류 메시지 중 하나를 받습니다. 2단계: Amazon S3 버킷에 대한 ElastiCache 액세스 권한 부여로 돌아가 지정한 권한을 추가하고 백업 내보내기를 다시 시도하세요.

  • S3 버킷에 대한 READ 권한이 ElastiCache에 부여되지 않았습니다.

    해결 방법: 버킷에 대한 읽기 권한을 추가합니다.

  • S3 버킷에 대한 WRITE 권한이 ElastiCache에 부여되지 않았습니다.

    해결 방법: 버킷에 대한 쓰기 권한을 추가합니다.

  • S3 버킷에 대한 READ_ACP 권한이 ElastiCache에 부여되지 않았습니다.

    해결 방법: 버킷에 대한 권한 액세스로 [Read]를 추가합니다.

다른 AWS 리전에 백업을 복사하려면 Amazon S3을 사용하여 백업을 복사합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서객체 복사를 참조하세요.

다음 파라미터와 함께 copy-snapshot CLI 작업을 사용하여 Amazon S3 버킷에 백업을 내보냅니다.

파라미터
  • --source-snapshot-name - 복사할 백업의 이름입니다.

  • --target-snapshot-name - 백업 복사본의 이름입니다.

    이름은 1~1,000자여야 하며 UTF-8 인코딩일 수 있습니다.

    ElastiCache에서는 여기에 입력하는 값에 인스턴스 식별자 및 .rdb를 추가합니다. 예를 들어 my-exported-backup을 입력하면 ElastiCache에서 my-exported-backup-0001.rdb를 생성합니다.

  • --target-bucket - 백업을 내보낼 Amazon S3 버킷의 이름입니다. 지정한 버킷에 백업 복사본이 생성됩니다.

    --target-bucket은 내보내기 프로세스가 성공할 수 있는 다음 권한이 있으며 백업의 AWS 리전에 있는 Amazon S3 버킷이어야 합니다.

    • 객체 액세스 - 읽기쓰기.

    • 권한 액세스 - 읽기.

    자세한 내용은 2단계: Amazon S3 버킷에 대한 ElastiCache 액세스 권한 부여 섹션을 참조하세요.

다음 작업은 my-s3-bucket에 백업을 복사합니다.

Linux, macOS 또는 Unix의 경우:

aws elasticache copy-snapshot \ --source-snapshot-name automatic.my-redis-primary-2016-06-27-03-15 \ --target-snapshot-name my-exported-backup \ --target-bucket my-s3-bucket

Windows의 경우:

aws elasticache copy-snapshot ^ --source-snapshot-name automatic.my-redis-primary-2016-06-27-03-15 ^ --target-snapshot-name my-exported-backup ^ --target-bucket my-s3-bucket
참고

ElastiCache에서 백업을 내보내는 데 필요한 권한이 S3 버킷에 없으면 다음 오류 메시지 중 하나를 받습니다. 2단계: Amazon S3 버킷에 대한 ElastiCache 액세스 권한 부여로 돌아가 지정한 권한을 추가하고 백업 내보내기를 다시 시도하세요.

  • S3 버킷에 대한 READ 권한이 ElastiCache에 부여되지 않았습니다.

    해결 방법: 버킷에 대한 읽기 권한을 추가합니다.

  • S3 버킷에 대한 WRITE 권한이 ElastiCache에 부여되지 않았습니다.

    해결 방법: 버킷에 대한 쓰기 권한을 추가합니다.

  • S3 버킷에 대한 READ_ACP 권한이 ElastiCache에 부여되지 않았습니다.

    해결 방법: 버킷에 대한 권한 액세스로 [Read]를 추가합니다.

자세한 내용은 AWS CLI 명령 참조copy-snapshot을 참조하세요.

다른 AWS 리전에 백업을 복사하려면 Amazon S3 복사본을 사용합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서객체 복사를 참조하세요.

이러한 파라미터와 함께 CopySnapshot API 작업을 사용하여 Amazon S3 버킷에 백업을 내보냅니다.

파라미터
  • SourceSnapshotName - 복사할 백업의 이름입니다.

  • TargetSnapshotName - 백업 복사본의 이름입니다.

    이름은 1~1,000자여야 하며 UTF-8 인코딩일 수 있습니다.

    ElastiCache에서는 여기에 입력하는 값에 인스턴스 식별자 및 .rdb를 추가합니다. 예를 들어 my-exported-backup을 입력하면 my-exported-backup-0001.rdb가 생깁니다.

  • TargetBucket - 백업을 내보낼 Amazon S3 버킷의 이름입니다. 지정한 버킷에 백업 복사본이 생성됩니다.

    TargetBucket은 내보내기 프로세스가 성공할 수 있는 다음 권한이 있으며 백업의 AWS 리전에 있는 Amazon S3 버킷이어야 합니다.

    • 객체 액세스 - 읽기쓰기.

    • 권한 액세스 - 읽기.

    자세한 내용은 2단계: Amazon S3 버킷에 대한 ElastiCache 액세스 권한 부여 섹션을 참조하세요.

다음 예제에서는 Amazon S3 버킷 my-s3-bucket에 자동 백업 복사본을 만듭니다.

https://elasticache.us-west-2.amazonaws.com/ ?Action=CopySnapshot &SourceSnapshotName=automatic.my-redis-primary-2016-06-27-03-15 &TargetBucket=my-s3-bucket &TargetSnapshotName=my-backup-copy &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2016-01-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>
참고

ElastiCache에서 백업을 내보내는 데 필요한 권한이 S3 버킷에 없으면 다음 오류 메시지 중 하나를 받습니다. 2단계: Amazon S3 버킷에 대한 ElastiCache 액세스 권한 부여로 돌아가 지정한 권한을 추가하고 백업 내보내기를 다시 시도하세요.

  • S3 버킷에 대한 READ 권한이 ElastiCache에 부여되지 않았습니다.

    해결 방법: 버킷에 대한 읽기 권한을 추가합니다.

  • S3 버킷에 대한 WRITE 권한이 ElastiCache에 부여되지 않았습니다.

    해결 방법: 버킷에 대한 쓰기 권한을 추가합니다.

  • S3 버킷에 대한 READ_ACP 권한이 ElastiCache에 부여되지 않았습니다.

    해결 방법: 버킷에 대한 권한 액세스로 [Read]를 추가합니다.

자세한 내용은 Amazon ElastiCache API 참조에서 CopySnapshot을 참조하세요.

다른 AWS 리전에 백업을 복사하려면 Amazon S3 복사본을 사용하여 내보낸 백업을 다른 AWS 리전의 Amazon S3 버킷에 복사합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서객체 복사를 참조하세요.