본문으로 건너뛰기

AWS ElastiCache에서 카카오클라우드 MemStore로 데이터 이관

AWS ElastiCache의 데이터를 카카오클라우드 MemStore로 이관하는 방법을 설명합니다.

안내
주의

AWS ElastiCache에서 Redis OSS 7 이상 버전을 사용할 경우 호환되지 않아 복원이 지원되지 않습니다. MemStore 서비스 안정성을 위해 백업 시 사용한 엔진 버전과 동일하거나 상위 엔진 버전으로만 복원할 수 있습니다.

시나리오 소개

이번 시나리오에서는 AWS ElastiCache의 데이터를 카카오클라우드 MemStore로 이관하는 방법을 소개합니다. 데이터 이관 작업에는 다양한 클라우드 저장소 간 데이터 전송을 지원하는 Rclone을 사용합니다. 주요 내용은 다음과 같습니다.

  • AWS ElastiCache Redis 클러스터 백업: 데이터 이관을 위한 Redis 클러스터의 백업을 생성하고 Amazon S3에 저장합니다.
  • Rclone을 사용한 백업 파일 이관: Amazon S3에서 카카오클라우드 Object Storage로 백업 파일을 이관하며 정합성을 확인합니다.
  • MemStore 클러스터 복원: 이관된 백업 파일로 카카오클라우드 MemStore 클러스터를 복원합니다.

시나리오 구성 아키텍처

카카오클라우드 환경에서의 사전 작업

카카오클라우드에서 데이터 이관을 진행하기 위해 필요한 리소스를 설정합니다.

  1. Object Storage 버킷 생성: 데이터 이관을 위해 카카오클라우드 Object Storage를 사용합니다. Object Storage 버킷 생성 방법은 카카오클라우드 Object Storage 문서를 참고하세요.
  2. 인터넷 연결이 가능한 데이터 이관용 VM 인스턴스 생성: Rclone을 설치하고 사용할 VM 인스턴스가 필요합니다. VM 인스턴스 생성 문서를 참고하세요.

AWS 환경에서의 사전 작업

AWS에서 데이터를 백업하고 이관할 수 있도록 필요한 리소스를 설정합니다.

  1. AWS ElastiCache 캐시 준비: AWS ElastiCache에서 데이터 이관을 위한 Redis OSS 캐시를 준비합니다. 엔진 버전은 6.2.6 이하여야 합니다.
  2. Amazon S3 버킷 생성: AWS에서 데이터를 백업하고 이관하기 위해 Amazon S3를 사용합니다. S3 버킷을 미리 생성해 두세요.
  3. Amazon S3 액세스 키 발급: S3에 접근하기 위한 액세스 키를 생성해야 합니다.

시작하기

AWS ElastiCache의 데이터를 카카오클라우드 MemStore로 이관하기 위한 실질적인 작업 단계는 다음과 같습니다.

Step 1. AWS ElastiCache Redis 클러스터 백업

  1. AWS 콘솔 > Amazon ElastiCache > Redis OSS 캐시에서 백업할 캐시를 선택합니다.
  2. 우측 상단 [작업] 메뉴에서 [백업] 버튼을 클릭합니다.
  3. 백업 생성 페이지에서 백업 이름을 작성하고 기본 설정된 옵션을 확인한 후, [백업 생성] 버튼을 클릭합니다.
  4. 좌측의 백업 탭에서 백업된 캐시를 확인할 수 있습니다.

Step 2. 백업본을 Amazon S3 Bucket에 내보내기

  1. AWS 콘솔 > Amazon ElastiCache > 백업에서 Amazon S3 Bucket에 내보낼 백업을 선택합니다.
  2. 우측 상단의 [작업] 메뉴에서 [내보내기] 버튼을 클릭합니다.
  3. 내보내기 페이지에서 백업 이름을 작성하고 미리 생성해 둔 대상 S3 버킷을 선택한 후, [내보내기] 버튼을 클릭합니다.
  4. S3 버킷에서 백업본을 확인합니다.

Step 3. Amazon S3에서 카카오클라우드 Object Storage로 백업 파일 이관

Rclone을 사용하여 아래 순서대로 데이터 이관을 진행합니다. 자세한 내용은 AWS S3에서 카카오클라우드 Object Storage로 데이터 이관 튜토리얼 문서를 참조하세요.

  1. 중계용 VM 인스턴스에 Rclone 패키지를 설치합니다. 자세한 설명은 Rclone Install 문서를 확인하시기 바랍니다.

    Rclone 설치
    ## Rclone 설치 
    curl https://rclone.org/install.sh | sudo bash

    ## Rclone 설치 확인
    rclone --version
  2. rclone.conf 파일에 카카오클라우드와 AWS 설정 정보를 입력합니다.

    cat <<EOL > ~/.config/rclone/rclone.conf

    # 카카오클라우드 Object Storage 설정
    [${KAKAO_BUCKET}]
    type = s3
    provider = Ceph
    env_auth = True
    access_key_id = ${CREDENTIAL_ACCESS_KEY}
    secret_access_key = ${CREDENTIAL_SECRET_ACCESS_KEY}
    region = kr-central-2
    endpoint = https://objectstorage.kr-central-2.kakaocloud.com

    # AWS S3 설정
    [${AWS_BUCKET}]
    type = s3
    provider = AWS
    access_key_id = ${AWS_ACCESS_KEY}
    secret_access_key = ${AWS_SECRET_ACCESS_KEY}
    region = ${AWS_REGION}
    EOL
    환경변수설명
    KAKAO_BUCKET🖌 카카오클라우드 Object Storage 버킷 이름
    CREDENTIAL_ACCESS_KEY🖌 S3 API 사용에 필요한 액세스 키
    CREDENTIAL_SECRET_ACCESS_KEY🖌S3 API 사용에 필요한 비밀 액세스 키
    AWS_BUCKET🖌 AWS S3 버킷 이름
    AWS_ACCESS_KEY🖌AWS 액세스 키
    AWS_SECRET_ACCESS_KEY🖌AWS 비밀 액세스 키
    AWS_REGION🖌AWS 리전
    정보

    카카오클라우드 Object Storage 설정값에는 S3 API 사용을 위한 크리덴셜 발급 정보가 필요합니다. 자세한 방법은 S3 API 사용에 필요한 Credential 발급 문서를 참고하시기 바랍니다.

  3. lsd 명령어를 사용하여 Object Storage의 모든 버킷을 나열합니다. 이를 통해 Rclone이 Object Storage와 정상적으로 연결되었는지 확인할 수 있습니다.

    Rclone과 Object Storage 연결 확인
    # 카카오클라우드 Object Storage 연결 확인
    rclone lsd ${KAKAO_BUCKET}:/

    # AWS S3 연결 확인
    rclone lsd ${AWS_BUCKET}:/

    환경변수설명
    KAKAO_BUCKET🖌 카카오클라우드 Object Storage 버킷 이름
    AWS_BUCKET🖌 AWS S3 버킷 이름
  4. AWS S3에서 카카오클라우드 Object Storage로 백업 파일을 이관합니다.

    # AWS S3를 카카오클라우드 Object Storage로 이관 전 테스트 
    rclone sync aws-s3:/"${AWS_BUCKET}" kakaocloud-obj:/"${KAKAO_BUCKET}" --progress -v \
    --create-empty-src-dirs --metadata --log-file "${LOGFILE}" --log-format date,time,KST,longfile --dry-run

    # AWS S3를 카카오클라우드 Object Storage로 이관
    rclone sync aws-s3:/"${AWS_BUCKET}" kakaocloud-obj:/"${KAKAO_BUCKET}" --progress -v \
    --create-empty-src-dirs --metadata --log-file "${LOGFILE}" --log-format date,time,KST,longfile
    환경변수설명
    AWS_BUCKET🖌AWS Bucket 이름
    KAKAO_BUCKET🖌카카오클라우드 Bucket 이름
    LOGFILE🖌로그 파일명
  5. 백업 파일의 데이터 정합성을 확인합니다.

    # 데이터 정합성 확인
    rclone check aws-s3:/"${AWS_BUCKET}" kakaocloud-obj:/"${KAKAO_BUCKET}" --progress -v

    # 두 Object Storage의 Object 수와 용량 확인
    rclone size aws-s3:/"${AWS_BUCKET}"
    rclone size kakaocloud-obj:/"${KAKAO_BUCKET}"
    환경변수설명
    AWS_BUCKET🖌AWS S3 Bucket 이름
    KAKAO_BUCKET🖌카카오클라우드 Object Storage Bucket 이름
  6. 카카오클라우드 콘솔의 Object Storage 서비스에서 Bucket의 Object를 확인합니다.

Step 4. 이관된 백업 파일로 MemStore 클러스터 복원

주의
  • 복원은 클러스터 사용 안 함 모드에서만 가능합니다.
안내
  • Redis OSS 엔진 버전 7 이상은 복원이 불가능합니다. 본 튜토리얼에서는 Redis OSS 6.2.6 엔진의 AWS ElastiCache를 사용하였습니다.
  • 소스 백업의 캐시 크기가 복원할 클러스터의 메모리 60% 이상인 경우, 복원에 실패할 수 있습니다.
  1. 카카오클라우드 콘솔 > MemStore로 이동하여 [클러스터 생성] 버튼을 클릭합니다.

  2. Cluster 만들기 상세 페이지에서 아래의 표에 따라 항목을 설정한 후, 나머지 항목은 필요에 따라 구성합니다.

    항목설정
    구성 옵션클러스터 복원
    백업 종류사용자 백업 파일
    백업 파일 경로백업 파일이 있는 Object Storage 경로 입력 (ex. BucketName/FolderName/FileName)
  3. [만들기] 버튼 클릭 후, 클러스터가 정상적으로 생성되는지 확인합니다.

  4. MemStore 클러스터의 접속 포트를 사용하여 접속 후, 데이터를 확인합니다. 자세한 방법은 클러스터 관리문서를 참조해 주세요.

    접속 명령어
    redis-cli -h {ENDPOINT} -p {포트 번호} {명령어}
    항목설명
    ENDPOINT세부 정보 탭에서 획득한 엔드포인트 정보
    포트 번호Redis 연결을 위한 포트 번호