728x90

PITR

  • 특정 시점 복구
  • 실수로 인한 쓰기 또는 삭제 작업으로 부터의 테이블 보호
    • 디폴트 값은 false로 유지
    • 최근 35일에 대한 백업본 저장
    • 동일한 리전 또는 백업본을 위한 다른 리전으로 복원도 가능

 

 

On - Demand Backup

  • DynamoDB 백업 삭제 지시까지 영원히 유지
  • 특정 시점에 대한 직접적인 백업본 생성 가능

 

Schedule Backup

  1. AWS Bakcup 에서 Backup vault 생성 필요
  2. 생성한 Backup vault에 따라 dbBackupPlan 세우기

 

 

  • DynamoDB에는 현재 Cold Storage 지원 ❌
  • 예약된 작업에 대한 확인
  • Amazon DynamoDB Workshop & Labs
  • 백업 제한에 대한 IAM 권한 설정 가능
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "backup:DeleteBackupSelection",
                "backup:CreateBackupSelection",
                "backup:StartBackupJob",
                "backup:CreateBackupPlan",
                "backup:ListBackupSelections",
                "backup:ListRecoveryPointsByBackupVault",
                "backup:GetBackupVaultAccessPolicy",
                "backup:GetBackupSelection"
            ],
            "Resource": [
                "arn:aws:backup:us-east-1:123456789:backup-plan:*",
                "arn:aws:backup:us-east-1:123456789:backup-vault:*"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Deny",
            "Action": "backup:DeleteBackupSelection",
            "Resource": "arn:aws:backup:us-east-1:123456789:backup-plan:*"
        }
    ]
}

 

  • DynamoDB 설계
  • RDB → DynamoDB로 마이그레이션

 

  • 온프레미스 VPC source → DMS를 이용한 마이그레이션 수행

 

  • Mysql 환경 구성
    • CloudFormation yaml 파일 구성으로 데이터 삽입
    • 인스턴스 기반으로 돌아감

 

  • DMS 환경 구성
  • 마이그레이션 할 수 있게 도와주는 서비스
  • CloudFormation yaml 파일 구성으로 데이터 삽입

 

 

Explore Source Model

>> mysql -u dbuser -pPassword@123

 

 

  • 소스 모델 view 생성
CREATE VIEW imdb.movies AS\
    SELECT tp.tconst,\
           tp.ordering,\
           tp.nconst,\
           tp.category,\
           tp.job,\
           tp.characters,\
           tb.titleType,\
           tb.primaryTitle,\
           tb.originalTitle,\
           tb.isAdult,\
           tb.startYear,\
           tb.endYear,\
           tb.runtimeMinutes,\
           tb.genres,\
           nm.primaryName,\
           nm.birthYear,\
           nm.deathYear,\
           nm.primaryProfession,\
           tc.directors,\
           tc.writers\
    FROM imdb.title_principals tp\
    LEFT JOIN imdb.title_basics tb ON tp.tconst = tb.tconst\
    LEFT JOIN imdb.name_basics nm ON tp.nconst = nm.nconst\
    LEFT JOIN imdb.title_crew tc ON tc.tconst = tp.tconst;

 

 

Explore Target Model

  • RDBMS 플랫폼은 데이터를 정규화된 관계형 구조로 저장
  • 이 구조는 계층적인 데이터 구조를 줄이고 다중 테이블 간의 데이터를 저장

 

  • 여러 테이블의 데이터를 쿼리 & 프레젠테이션 계층에서 조합
    • 대기시간이 매우 짧은 워크로드에는 효율적이지 않음
    • 짧은 대기 시간으로 트래픽이 많은 쿼리 지원 → NoSQL 시스템을 활용하는 스키마가 합리적

 

  • 인접 목록 디자인 패턴
    • DynamoDB 테이블에 관계형 데이터를 저장하기 위한 기본 키 오버로드 사용
      • 데이터 삽입에 있어서 | 를 이용해서 데이터를 구분한다.
      • 고유 영화 ID에 대해서는 tt 접두사를 붙여서 구현
       

 

  • 엔드 포인트 생성
    • Source DB 정보 구성
    • Target DB 정보 구성

 

 

728x90