빠른 데이터베이스 복제 및 역추적으로 애플리케이션 개발 가속화

애플리케이션 개발 가속화

Amazon Aurora는 기존 엔터프라이즈 데이터베이스의 성능과 가용성에 오픈 소스 데이터베이스의 간편성과 비용 효율성을 결합한 MySQL 및 PostgreSQL 호환 관계형 데이터베이스입니다. 이 자습서에서는 개발 및 테스트를 위해 Aurora DB 클러스터를 복제하는 방법과 역추적을 활성화 및 사용하여 지정한 시간에 DB 클러스터를 "되감는" 방법에 대해 알아봅니다.

데이터베이스 변경의 영향을 평가하거나 워크로드 집약적인 작업(예: 데이터 내보내기 또는 분석 쿼리 실행)을 수행하거나 개발 또는 테스트 환경에서 프로덕션 데이터베이스의 사본을 활용하려고 하는 경우에는 Aurora 클러스터를 복제하는 것이 매우 유용합니다. Aurora DB 클러스터의 복제본은 여러 개 만들 수 있습니다. 다른 복제본에서 추가적인 복제본을 생성할 수도 있지만, 이러한 경우에는 복제 데이터베이스가 소스 데이터베이스와 동일한 리전에서 생성되어야 한다는 제약 사항이 있습니다.

역추적을 사용하면 사용자가 지정한 시간으로 Aurora DB 클러스터를 되감을 수 있습니다. 역추적을 활성화하면 Aurora는 데이터베이스의 변경 내용을 계속해서 기록하여 사용자는 이전의 일관된 상태로 전환할 수 있습니다. 이 기능을 통해 사용자는 실수한 경우 편리하게 실행을 취소할 수 있습니다. 예를 들어, 실수로 안전하지 않은 작업(예: WHERE 절을 사용하지 않는 DELETE)을 수행하는 경우 해당 사고 시점 이전의 상태로 빠르게 역추적하는 것이 가능합니다. 보다 속도가 느린 작업인 스냅샷 또는 자동 백업에서 복구와 달리, 역추적을 사용하면 몇 분 만에 시간 상에서 앞뒤로 이동할 수 있습니다.

이 자습서에서는 역추적 기능이 활성화된 Aurora DB 클러스터를 생성합니다. 그리고 클러스터에 데이터를 추가한 후 역추적 기능을 사용하여 시간 상에서 앞뒤로 이동하는 실습을 하며, 데이터베이스를 복제하고 해당 사본에서 쿼리를 수행합니다.

이 자습서는 프리 티어로 제공되지 않으며, 비용은 자습서의 단계를 따르고 자습서 종료 시 리소스를 종료하는 경우 1 USD 미만입니다.

사전 조건

데이터베이스에 연결하고 데이터베이스에 명령을 내릴 수 있어야 합니다. DB 클러스터에 퍼블릭 IP 주소를 지정하지 않는 것이 권장되므로, DB 클러스터와 동일한 VPC에 EC2 인스턴스가 있어야 합니다. 아직 실행한 EC2 인스턴스가 없으면 이 지침에 따라 인스턴스를 프로비저닝하십시오.

그러면 sudo yum install mysql을 실행하여 MySQL 클라이언트를 설치할 수 있습니다. 

자습서 소개
시간 10-20분                                           
요금 1 USD 미만
사용 사례 데이터베이스
제품 Amazon Aurora, Amazon RDS
대상 데이터베이스 관리자, 개발자
레벨 중급자용
최종 업데이트 날짜 2019년 7월 17일

1단계: Aurora DB 클러스터 만들기

1.1 - 브라우저를 열고 Amazon RDS 콘솔로 이동합니다. 이미 AWS 계정이 있으면 콘솔에 로그인합니다. 그렇지 않으면, 새 AWS 계정을 만든 후 시작합니다.

1.2 - 오른쪽 상단 모서리에서 Aurora DB 클러스터를 시작할 리전을 선택합니다.

1.3 - Amazon Aurora 창에서 [데이터베이스 생성]을 클릭합니다.

계속하기 전에, 새 데이터베이스 생성 흐름으로 전환:

엔진 옵션

1.4 - 데이터베이스 엔진에서 [Amazon Aurora]를 선택합니다.

1.5 - [에디션]에서 [MySQL 호환성이 추가된 Amazon Aurora]를 선택합니다.

1.6 - [버전]에서 MySQL 5.6과 호환되는 최신 Aurora 버전을 선택합니다. 이러한 이유로 역추적은 해당 버전에서만 사용할 수 있습니다.

1.7 - [데이터베이스 위치]에서 [리전]을 선택합니다.

데이터베이스 기능

1.8 - [단일 작성자 및 다중 리더]를 선택합니다.

템플릿

1.9 - [프로덕션]을 선택합니다.

설정

1.10 - Aurora DB 클러스터에 대한 식별자(예: "database-1")를 선택합니다.

DB 인스턴스 크기

1.11 - DB 인스턴스 크기에 대하여, 라지 인스턴스(.large로 끝남)를 선택합니다.

가용성 및 지속성

1.12 - [Aurora 복제본/리더 생성]을 선택합니다.

연결

1.13 - 데이터베이스를 생성할 VPC를 선택합니다.

생성한 이후에는 다른 VPC로 마이그레이션할 수 없음에 유의하십시오.

1.14 - [추가 연결 구성]을 클릭합니다.

1.15 - 서브넷 그룹에 대한 기본 값을 선택합니다.

1.16 - [공개적으로 액세스할 수 있음]에서 [아니요]를 선택합니다.

즉, 동일 VPC 내의 EC2 인스턴스에서 데이터베이스에 연결해야 합니다.

1.17 - VPC 보안 그룹에서 [새로 만들기]를 선택합니다. 3306 포트에서 수신 TCP 연결을 허용하는 보안 그룹이 있는 경우에는 이 그룹을 대신 사용해도 됩니다. 

1.18 - 새 VPC 보안 그룹 이름에 “aurora-tutorial”을 입력합니다.

추가 구성

1.19 역추적을 활성화합니다.

1.20 [대상 역추적 창]에서 24를 입력합니다. 역추적 창은 되감을 수 있는 시간을 결정하며 Aurora는 해당 시간을 지원하기에 충분한 로그 정보를 유지합니다.

1.21 - [삭제 보호]에서 [삭제 보호 사용]의 선택을 해제합니다.

모범 사례는 삭제 보호를 사용하는 것이지만, 자습서의 마지막에 데이터베이스를 삭제하려면 이 옵션을 선택 해제 상태로 유지합니다. 

검토 및 생성

양식의 모든 필드를 빠르게 검토한 후 계속 진행합니다.

1.22 - [데이터베이스 생성]을 클릭합니다.

인스턴스가 생성되는 동안 자격 증명을 얻을 수 있는 방법을 설명하는 배너가 표시됩니다. 이때만 이 암호를 볼 수 있기 때문에 자격 증명을 저장할 수 있습니다.

1.23 - [자격 증명 세부 정보 보기]를 클릭합니다.

1.24 - 사용자 이름, 암호 및 엔드포인트를 저장합니다.

2단계: 데이터베이스 채우기

터미널 창을 열고 애플리케이션 인스턴스에 로그인한 후 mysql 명령줄 클라이언트를 사용하여 Aurora DB 클러스터에 연결합니다. 그러면 데이터베이스를 생성하고 테이블을 생성하며 레코드를 작성할 수 있습니다.

2.1 - 기본 데이터베이스에 연결:

$ mysql -h endpoint -P 3306 -u admin -p

명령에서 엔드포인트를 읽을 때마다 1.24단계에서 저장한 엔드포인트 호스트 이름을 입력해야 합니다.

유사하게, 암호를 입력하라는 메시지가 표시되면 1.24단계에서 저장한 암호를 입력합니다.

2.2 - 데이터베이스를 생성하고 데이터를 작성합니다.

mysql> CREATE database tutorial;
Query OK, 1 row affected (0.01 sec)

지금은 자습서 데이터베이스를 사용하여 테이블을 생성하고 레코드를 추가할 수 있습니다.

3단계: 데이터베이스 역추적

3.1 - Aurora DB 클러스터를 클릭합니다.

3.2 - [작업]을 클릭하고 [역추적]을 선택합니다.

DB 클러스터 역추적

3.3 - 날짜 및 시간을 선택합니다. Aurora는 새로운 DB 클러스터를 생성하지 않고 지정된 시점으로 DB 클러스터를 되감습니다. 데이터베이스 또는 테이블을 생성한 시점 이전의 시간을 선택할 수 있습니다.

3.4 - [DB 클러스터 역추적]을 선택합니다.

역추적 작업이 실행 중임을 설명하는 파란색 배너가 있는 화면이 표시됩니다.

잠시 후에 역추적 작업이 완료되었음을 나타내는 녹색 배너가 표시됩니다.

이제 2단계에서와같이 데이터베이스에 연결한 후 데이터베이스가 이전 상태로 돌아갔는지 확인할 수 있습니다. 역추적 작업을 반복하여 시간 상 앞으로 이동할 수도 있습니다.

4단계: 데이터베이스 복제

4.1 - 데이터베이스를 선택합니다.

4.2 - [작업]을 클릭하고 [복제본 생성]을 선택합니다.

4.3 - 식별자(예: “database-1-clone”)를 선택합니다.

4.4 - [복제본 생성]을 클릭합니다.

Aurora DB 클러스터가 복제된 데이터베이스 목록이 표시됩니다.

이 복제본에서 수행하는 작업은 원본 DB 클러스터에 어떠한 영향도 주지 않습니다. 복제된 클러스터의 이름을 클릭하면 복제된 DB 및 복제본의 엔드포인트를 확인할 수 있습니다.

그러면 “엔드포인트” 섹션 아래에서 엔드포인트를 확인할 수 있습니다.

이제 2단계에서와같이 복제된 데이터베이스를 연결한 후 생성한 데이터베이스, 테이블, 사용자 및 레코드가 복제된 데이터베이스에 포함되었는지 확인하여 데이터베이스가 복제된 데이터베이스와 동일한지 확인할 수 있습니다. 복제본을 수정하고 원하는 모든 작업을 수행한 후 원본 데이터베이스가 영향을 받지 않았음을 확인할 수 있습니다.

5단계: 클러스터 삭제

이 자습서의 마지막 단계로 더 이상 필요하지 않은 Aurora DB 클러스터를 삭제하는 방법에 대해 알아보겠습니다. Aurora DB 클러스터를 삭제하려면 RDS 대시보드로 이동한 후 다음 지침을 따릅니다. 

5.1 - 왼쪽 창에서 [데이터베이스]를 선택합니다.

그러면 모든 Aurora DB 클러스터 목록이 표시됩니다. 복제된 데이터베이스를 삭제하여 이 작업을 시작합니다. 

5.2 - 쓰기 인스턴스를 선택합니다.

5.3 - [작업]을 클릭하고 [삭제]를 선택합니다.

최종 백업 생성 여부를 묻는 메시지가 표시됩니다. 최종 백업을 생성하는 것은 권장되지만, 이 자습서에서는 필요하지 않습니다.

5.4 - [최종 스냅샷 생성] 상자의 선택을 해제하고 [확인] 상자를 선택합니다.

5.5 - “delete me”를 입력하고 [삭제]를 클릭합니다.

클러스터의 상태가 [삭제 중]으로 변경됩니다.

5.6 - 이 자습서에서 생성한 Aurora DB 클러스터의 리더 인스턴스를 선택합니다. 

5.7 - [작업]을 클릭하고 [삭제]를 선택합니다.

5.8 - 작업을 확인하라는 메시지가 표시됩니다. “delete me”를 입력하고 [삭제]를 클릭합니다.

5.9 - 이 자습서에서 생성한 Aurora DB 클러스터의 쓰기 인스턴스를 선택합니다.

5.10 - [작업]을 클릭하고 [삭제]를 선택합니다.

최종 백업 생성 여부를 묻는 메시지가 표시됩니다. 최종 백업을 생성하는 것은 권장되지만, 이 자습서에서는 필요하지 않습니다. 

5.11 - [최종 스냅샷 생성] 상자의 선택을 해제하고 [확인] 상자를 선택합니다.

5.12 - “delete me”를 입력하고 [삭제]를 클릭합니다.

클러스터의 상태가 [삭제 중]으로 변경됩니다.

축하합니다!

역추적 기능이 활성화된 Aurora DB 클러스터를 생성하셨습니다. 데이터베이스를 통해 시간 상에서 앞뒤로 이동할 수 있는 시간 범위를 구성할 수 있는 방법에 대해 학습하셨습니다. 마지막으로 Aurora DB 클러스터 복제 방법에 대해서도 학습하셨습니다.

이 자습서가 유용했습니까?

감사합니다.
좋아하는 사항을 알려주세요.
실망을 드려 죄송합니다.
오래되었거나 혼란스럽거나 부정확한 사항이 있습니까? 피드백을 제공하여 이 자습서를 개선할 수 있도록 도와주십시오.