외부에서 생성된 백업으로 새 클러스터 시드 - Amazon ElastiCache for Redis

외부에서 생성된 백업으로 새 클러스터 시드

새 Redis 클러스터를 만들 때 Redis .rdb 백업 파일의 데이터로 이 클러스터를 시드할 수 있습니다. 현재 ElastiCache 외부에서 Redis 인스턴스를 관리하면서 새 ElastiCache for Redis 클러스터에 기존의 Redis 데이터를 채우려는 경우 클러스터 시드가 유용합니다.

Amazon ElastiCache에서 생성한 Redis 백업 파일에서 새 Redis 클러스터를 시드하려면 선택적으로 클러스터 크기를 조정하여 백업에서 복원 섹션을 참조하세요.

Redis .rdb 파일을 사용하여 새 Redis 클러스터를 시드할 때 다음을 수행할 수 있습니다.

  • 분할되지 않은 클러스터에서 Redis 버전 3.2.4를 실행하는 Redis(클러스터 모드 활성화됨) 클러스터로 업그레이드합니다.

  • 새 클러스터에서 여러 샤드(API 및 CLI에서 노드 그룹이라고 함)를 지정합니다. 이 숫자는 백업 파일을 생성하는 데 사용된 클러스터의 샤드 수와 다를 수 있습니다.

  • 백업을 만든 클러스터에 사용된 것보다 크거나 작은 새 클러스터의 다른 노드 유형을 지정합니다. 더 작은 노드 유형으로 조정하는 경우 새로운 노드 유형에 충분한 메모리가 있어 데이터와 Redis 오버헤드를 수용할 수 있어야 합니다. 자세한 정보는 충분한 메모리를 확보하여 Redis 스냅샷 생성을 참조하십시오.

  • 백업 파일 생성에 사용한 클러스터에서와 다른 새 Redis(클러스터 모드 활성화됨) 클러스터의 슬롯에 키를 배포합니다.

참고

Redis(클러스터 모드 활성화됨) 클러스터에서 생성된 .rdb 파일에서 Redis(클러스터 모드 비활성화됨) 클러스터를 시드할 수 없습니다.

중요
  • Redis 백업 데이터가 노드의 리소스를 초과하지 않아야 합니다. 예를 들어 Redis 데이터가 5GB인 .rdb 파일을 메모리가 2.9GB인 cache.m3.medium 노드에 업로드할 수 없습니다.

    백업이 너무 크면 결과 클러스터의 상태는 restore-failed가 됩니다. 이 경우 클러스터를 삭제하고 다시 시작해야 합니다.

    노드 유형 및 사양의 전체 목록은 Redis 노드 유형별 파라미터Amazon ElastiCache 제품 기능 및 세부 정보를 참조하세요.

  • Amazon S3 서버 측 암호화(SSE-S3)만으로 Redis .rdb 파일을 암호화할 수 있습니다. 자세한 내용은 서버 측 암호화를 사용하여 데이터 보호를 참조하세요.

아래에서는 ElastiCache for Redis 외부에서 ElastiCache for Redis로 Redis 클러스터를 마이그레이션하는 과정을 안내하는 항목을 찾을 수 있습니다.

1단계: Redis 백업 생성

ElastiCache for Redis 인스턴스를 시드할 Redis 백업을 생성하려면
  1. 기존의 Redis 인스턴스에 연결합니다.

  2. Redis BGSAVE 또는 SAVE 작업을 실행하여 백업을 생성합니다. .rdb 파일의 위치를 메모합니다.

    BGSAVE는 비동기식이며 처리하는 동안 다른 클라이언트를 차단하지 않습니다. 자세한 내용은 Redis 웹 사이트의 BGSAVE를 참조하세요.

    SAVE는 동기식이며 마칠 때까지 다른 프로세스를 차단합니다. 자세한 내용은 Redis 웹 사이트의 SAVE를 참조하세요.

백업 생성에 대한 추가 정보는 Redis 웹 사이트의 Redis 지속성(Redis persistence)을 참조하세요.

2단계: Amazon S3 버킷 및 폴더 생성

백업 파일을 만들었으면 Amazon S3 버킷에 있는 폴더에 업로드해야 합니다. 그러려면 먼저 Amazon S3 버킷과 버킷 내의 폴더가 있어야 합니다. 적절한 권한을 가진 Amazon S3 버킷과 폴더가 이미 있으면 3단계: Amazon S3에 백업 업로드 섹션으로 건너뛸 수 있습니다.

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

  2. Amazon Simple Storage Service 사용 설명서에서 버킷 생성의 Amazon S3 버킷 생성 지침을 따릅니다.

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

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

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

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

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

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

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

    새 ElastiCache for Redis 클러스터와 동일한 AWS 리전에 Amazon S3 버킷을 생성해야 합니다. 이 방법은 ElastiCache가 Amazon S3에서 .rdb 파일을 읽을 때 최고의 데이터 전송 속도를 경험할 수 있도록 합니다.

    참고

    데이터를 최대한 안전하게 유지하려면 Amazon S3 버킷에 대한 권한을 최대한 제한적으로 설정합니다. 또한 새 Redis 클러스터를 시드하는 데 버킷과 버킷의 콘텐츠를 사용하기 위해 권한이 계속 필요합니다.

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

  2. .rdb 파일을 업로드할 버킷 이름을 선택합니다.

  3. [Create folder]를 선택합니다.

  4. 새 폴더의 이름을 입력합니다.

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

    버킷 이름과 폴더 이름을 모두 메모합니다.

3단계: Amazon S3에 백업 업로드

이제 1단계: Redis 백업 생성에서 생성한 .rdb 파일을 업로드합니다. 2단계: Amazon S3 버킷 및 폴더 생성에서 생성한 Amazon S3 버킷과 폴더로 업로드합니다. 이 작업에 대한 자세한 내용은 버킷에 객체 추가를 참조하세요. 2단계와 3단계 사이에 생성된 폴더 이름을 선택합니다.

.rdb 파일을 Amazon S3 폴더에 업로드하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 2단계에서 만든 Amazon S3 버킷 이름을 선택합니다.

  3. 2단계에서 만든 폴더 이름을 선택합니다.

  4. 업로드를 선택합니다.

  5. [Add Files]를 선택합니다.

  6. 업로드할 파일을 찾아 선택합니다. 파일을 여러 개 선택하려면 Ctrl 키를 누른 상태로 각 파일 이름을 선택합니다.

  7. [Open]을 선택합니다.

  8. [Upload] 대화 상자에서 정확한 파일 이름이 표시되는지 확인하고 [Upload]를 선택합니다.

.rdb 파일에 대한 경로를 기록합니다. 예를 들어 버킷 이름이 myBucket이고 경로가 myFolder/redis.rdb이면 myBucket/myFolder/redis.rdb를 입력합니다. 이 백업의 데이터로 새 클러스터를 시드하려면 이 경로가 필요합니다.

자세한 내용은 Amazon Simple Storage Service 사용 설명서버킷 규제 및 제한을 참조하세요.

4단계: ElastiCache에 .rdb 파일에 대한 읽기 액세스 부여

이제 ElastiCache에 .rdb 백업 파일에 대한 읽기 액세스 권한을 부여합니다. 버킷이 기본 AWS 리전인지 아니면 옵트인 AWS 리전인지에 따라 ElastiCache에 다른 방식으로 백업 파일에 대한 액세스 권한을 부여합니다.

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

AWS 리전에 따라 접근 방식을 선택합니다.

ElastiCache에 기본 리전의 .rdb 파일에 대한 읽기 액세스 권한 부여

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

ElastiCache에 기본적으로 활성화된 AWS 리전의 백업 파일에 대한 읽기 액세스 권한을 부여하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. .rdb 파일이 포함된 S3 버킷 이름을 선택합니다.

  3. .rdb 파일이 포함된 폴더 이름을 선택합니다.

  4. .rdb 백업 파일 이름을 선택합니다. 선택한 파일 이름은 페이지 맨 위의 탭 위에 나타납니다.

  5. 권한(Permissions)을 선택합니다.

  6. aws-scs-s3-readonly 또는 다음 목록에 있는 정식 ID 중 하나가 사용자로 나열되지 않으면 다음을 수행합니다.

    1. 다른 AWS 계정에 대한 액세스에서 피부여자 추가를 선택합니다.

    2. 상자에서 다음 목록에 표시된 대로 AWS 리전의 정식 ID를 추가합니다.

      • AWS GovCloud(미국 서부) 리전:

        40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6
        중요

        백업이 AWS GovCloud (US)의 S3 버킷에 있어야 AWS GovCloud (US)의 Redis 클러스터로 백업을 다운로드할 수 있습니다.

      • (기본적으로 활성화되는 AWS 리전:

        540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
    3. 다음에 대해 를 선택하여 버킷에 대한 권한을 설정합니다.

      • 나열/쓰기 객채(List/write object)

      • 읽기/쓰기 객체 ACL 권한(Read/write object ACL permissions)

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

  7. 개요를 선택한 다음 다운로드를 선택합니다.

ElastiCache에 옵트인 리전의 .rdb 파일에 대한 읽기 액세스 권한 부여

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

이제 ElastiCache에 .rdb 백업 파일에 대한 읽기 액세스 권한을 부여합니다.

ElastiCache에 백업 파일에 대한 읽기 액세스 권한 부여
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. .rdb 파일이 포함된 S3 버킷 이름을 선택합니다.

  3. .rdb 파일이 포함된 폴더 이름을 선택합니다.

  4. .rdb 백업 파일 이름을 선택합니다. 선택한 파일 이름은 페이지 맨 위의 탭 위에 나타납니다.

  5. 권한(Permissions) 탭을 선택합니다.

  6. 권한(Permissions)에서 버킷 정책(Bucket policy)을 선택한 다음 편집(Edit)을 선택합니다.

  7. 정책을 업데이트하여 ElastiCache에 작업을 수행하는 데 필요한 권한을 부여합니다.

    • [ "Service" : "region-full-name.elasticache-snapshot.amazonaws.com" ]Principal에 추가합니다.

    • Amazon S3 버킷으로 스냅샷을 내보내는 데 필요한 다음 권한을 추가합니다.

      • "s3:GetObject"

      • "s3:ListBucket"

      • "s3:GetBucketAcl"

    다음은 업데이트된 정책의 예입니다.

    { "Version": "2012-10-17", "Id": "Policy15397346", "Statement": [ { "Sid": "Stmt15399483", "Effect": "Allow", "Principal": { "Service": "ap-east-1.elasticache-snapshot.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::example-bucket", "arn:aws:s3:::example-bucket/backup1.rdb", "arn:aws:s3:::example-bucket/backup2.rdb" ] } ] }
  8. [Save changes]를 선택합니다.

5단계: .rdb 파일 데이터로 ElastiCache 클러스터 시드

이제 ElastiCache 클러스터를 생성하고 .rdb 파일의 데이터로 클러스터를 시드할 수 있습니다. 클러스터를 생성하려면 클러스터 생성 또는 Redis 복제 그룹을 처음부터 새로 생성의 지시를 따릅니다. Redis를 클러스터 엔진으로 선택해야 합니다.

Amazon S3에 업로드한 Redis 백업의 위치를 ElastiCache에 알리는 데 사용하는 방법은 클러스터 생성에 사용한 방법에 따라 결정됩니다.

ElastiCache for Redis 클러스터 또는 .rdb 파일 데이터 포함 복제 그룹 시드
  • ElastiCache 콘솔 사용

    Redis 엔진을 선택한 후 고급 Redis 설정 섹션을 확장하고 클러스터로 데이터 가져오기를 찾습니다. RDB 파일 시드 S3 위치 상자에 파일의 Amazon S3 경로를 입력합니다. .rdb 파일이 여러 개 있으면 쉼표로 구분된 목록에 각 파일의 경로를 입력합니다. Amazon S3 경로는 myBucket/myFolder/myBackupFilename.rdb처럼 표시될 수 있습니다.

  • AWS CLI 사용

    create-cache-cluster 또는 create-replication-group 작업을 사용하는 경우 --snapshot-arns 파라미터를 사용하여 각 .rdb 파일의 정규화된 ARN을 지정합니다. 예: arn:aws:s3:::myBucket/myFolder/myBackupFilename.rdb ARN은 Amazon S3에 저장한 백업 파일로 확인되어야 합니다.

  • ElastiCache API 사용

    CreateCacheCluster 또는 CreateReplicationGroup ElastiCache API 작업을 사용하는 경우SnapshotArns 파라미터 를 사용하여 각 .rdb 파일의 정규화된 ARN을 지정합니다. 예: arn:aws:s3:::myBucket/myFolder/myBackupFilename.rdb ARN은 Amazon S3에 저장한 백업 파일로 확인되어야 합니다.

중요

Redis(클러스터 모드 활성화됨) 클러스터 시드 시 새 클러스터 또는 복제 그룹에서 각 노드 그룹(샤드)을 구성해야 합니다. 이를 수행하려면 --node-group-configuration(API: NodeGroupConfiguration) 파라미터를 사용합니다. 자세한 정보는 다음 자료를 참조하세요.

클러스터 생성 프로세스 중에 Redis 백업의 데이터가 클러스터에 쓰여집니다. ElastiCache 이벤트 메시지를 보면서 프로세스를 모니터링할 수 있습니다. 그러려면 ElastiCache 콘솔 화면에서 캐시 이벤트(Cache Events)를 선택합니다. AWS ElastiCache 명령줄 인터페이스나 ElastiCache API를 사용하여 이벤트 메시지를 가져올 수도 있습니다. 자세한 정보는 ElastiCache 이벤트 보기을 참조하십시오.