View a markdown version of this page

를 사용하여 Amazon RDS for SQL Server 테이블을 S3 버킷으로 내보내기 AWS DMS - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용하여 Amazon RDS for SQL Server 테이블을 S3 버킷으로 내보내기 AWS DMS

Subhani Shaik, Amazon Web Services

요약

SQL Server용 Amazon Relational Database Service(RDS)는 Amazon Web Services()AWS클라우드의 다른 데이터베이스(DB) 엔진 연결 서버에 데이터 로드를 지원하지 않습니다. 대신 AWS Database Migration Service (AWS DMS)를 사용하여 Amazon RDS for SQL Server 테이블을 다른 DB 엔진에서 데이터를 사용할 수 있는 Amazon Simple Storage Service(Amazon S3) 버킷으로 내보낼 수 있습니다.

AWS DMS 를 사용하면 데이터베이스를 로 AWS 빠르고 안전하게 마이그레이션할 수 있습니다. 소스 데이터베이스는 마이그레이션 중에도 완벽하게 작동하여 데이터베이스를 사용하는 애플리케이션의 가동 중지 시간을 최소화합니다.는 가장 널리 사용되는 상용 및 오픈 소스 데이터베이스로 데이터를 마이그레이션할 AWS DMS 수 있습니다.

이 패턴은 AWS DMS 엔드포인트를 구성하는 AWS Secrets Manager 동안를 사용합니다. Secrets Manager는 애플리케이션, 서비스, IT 리소스에 액세스하는 데 필요한 보안 암호를 지키도록 도와줍니다. 이 서비스를 사용하면 수명 주기 동안 데이터베이스 보안 인증 정보, API 키 및 기타 보안 암호를 손쉽게 교체, 관리 및 검색할 수 있습니다. 사용자와 애플리케이션은 Secrets Manager를 직접적으로 호출하여 보안 암호를 검색하므로 민감한 정보를 하드코딩할 필요가 없습니다. Secrets Manager는 Amazon RDS, Amazon Redshift 및 Amazon DocumentDB(MongoDB 호환)에 대한 내장 통합을 통해 보안 암호 교체를 제공합니다. 또한 이 서비스는 API 키 및 OAuth 토큰을 비롯한 다른 유형의 보안 암호로 확장할 수 있습니다. Secrets Manager를 사용하면 세분화된 권한을 사용하여 보안 암호에 대한 액세스를 제어하고 AWS 클라우드, 타사 서비스 및 온프레미스의 리소스에 대한 보안 암호 교체를 중앙에서 감사할 수 있습니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 AWS 계정

  • Amazon S3 버킷

  • Virtual Private Cloud(VPC)

  • DB 서브넷

  • Amazon RDS for SQL Server

  • Amazon RDS 인스턴스를 대신하여 S3 버킷에 액세스(객체 나열, 가져오기 및 넣기)할 수 있는 AWS Identity and Access Management (IAM) 역할

  • Amazon RDS 인스턴스 자격 증명을 저장하기 위한 Secrets Manager

아키텍처

기술 스택

  • Amazon RDS for SQL Server

  • AWS DMS

  • Amazon S3

  • AWS Secrets Manager

대상 아키텍처

다음 다이어그램은 도움을 받아 Amazon RDS 인스턴스에서 Amazon S3 버킷으로 데이터를 내보내는 아키텍처를 보여줍니다 AWS DMS.

설명은 다이어그램을 따릅니다.
  1. 소스 엔드포인트를 통해 소스 Amazon RDS 인스턴스에 연결하는 AWS DMS 마이그레이션 작업

  2. 소스 Amazon RDS 인스턴스에서 데이터 복사

  3. 대상 엔드포인트를 통해 대상 Amazon S3 버킷에 연결하는 AWS DMS 마이그레이션 작업

  4. 복사된 데이터를 쉼표로 구분된 값(CSV) 형식으로 Amazon S3 버킷으로 내보내기

도구

AWS 서비스

  • AWS Database Migration Service (AWS DMS)를 사용하면 데이터 스토어를 AWS 클라우드로 마이그레이션하거나 클라우드와 온프레미스 설정의 조합 간에 마이그레이션할 수 있습니다.

  • AWS Identity and Access Management (IAM)는 AWS 리소스에 대한 액세스를 인증하고 사용할 수 있는 권한을 부여받은 사용자를 제어하여 리소스에 대한 액세스를 안전하게 관리하는 데 도움이 됩니다.

  • Amazon Relational Database Service(RDS)를 사용하면 AWS 클라우드에서 관계형 데이터베이스를 설정, 운영 및 확장할 수 있습니다.

  • Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

  • AWS Secrets Manager를 이용하면 코드의 시크릿을 포함해 하드 코딩된 보안 인증을 Secrets Manager에서 프로그래밍 방식으로 시크릿을 검색하도록 하는 API 호출로 바꿀 수 있습니다.

기타 도구

모범 사례

  • 전체 마이그레이션 전에 테이블 하위 집합으로 개념 증명을 실행하여 성능을 벤치마킹하고 문제를 식별합니다.

  • 소스 Amazon RDS 인스턴스의 부하를 줄이려면 피크 데이터베이스 시간 동안 AWS DMS 작업을 실행하지 마세요.

  • 대한 모범 사례를 AWS DMS 따릅니다.

  • Amazon S3의 보안 모범 사례를 따릅니다.

에픽

작업설명필요한 기술

Amazon RDS for SQL Server 인스턴스를 생성합니다.

  1. 를 열고 RDS를 AWS Management Console선택한 다음 표준 생성 옵션을 사용하여 SQL Server Express Edition, SQL Server Standard Edition 또는 SQL Server Enterprise Edition과 같은 필수 에디션으로 Amazon RDS 인스턴스를 생성합니다. 버전의 경우 2016 이상을 선택합니다.

  2. 템플릿에서 개발 및 테스트를 선택합니다.

DBA, DevOps 엔지니어

인스턴스의 보안 인증 정보를 설정합니다.

  1. 인스턴스의 이름을 입력합니다.

  2. Amazon RDS 인스턴스의 사용자 이름과 암호를 입력합니다.

DBA, DevOps 엔지니어

인스턴스 클래스, 스토리지, Auto Scaling, 가용성을 구성합니다.

  1. 목록에서 DB 인스턴스 클래스(표준, 메모리 최적화, 버스트 가능 클래스)를 선택합니다. 이 DB 인스턴스에 계획된 워크로드에 필요한 컴퓨팅, 네트워크 및 메모리 용량을 할당하는 DB 인스턴스 유형을 선택합니다. 자세한 내용은 AWS 설명서를 참조하세요.

  2. 목록에서 범용 SSD, 프로비저닝된 IOPS SSD 또는 마그네틱 스토리지 유형을 선택합니다. 필요에 따라 기본 스토리지 크기를 할당합니다.

  3. 용량 계획에 따라 Amazon RDS 스토리지를 늘리려면 스토리지 자동 조정 활성화를 선택합니다.

  4. 복제 인스턴스가 있는 다중 AZ 배포는에서 지원됩니다 AWS DMS. 가용 영역, 내부 하드웨어 또는 네트워크에서 중단이 발생하는 경우 AWS DMS 는 대기 인스턴스를 생성하고 대기 복제본에 대한 자동 장애 조치를 통해 고가용성(HA)을 제공합니다. 가져오기의 크기에 따라 적절한 옵션을 선택합니다.

DBA, DevOps 엔지니어

VPC, 서브넷 그룹, 퍼블릭 액세스, 보안 그룹을 지정합니다.

Amazon RDS 인스턴스를 생성하는 데 필요한 VPC, DB 서브넷 그룹VPC 보안 그룹을 선택합니다. 모범 사례를 따릅니다. 예를 들면 다음과 같습니다.

  • Amazon RDS 인스턴스에 대한 퍼블릭 액세스를 활성화하지 마십시오.

  • 보안 그룹에서는 CIDR 0.0.0.0/0을 사용하지 마세요.

  • Amazon RDS 인스턴스에 액세스하려면 필요한 IP 주소 및 포트 세부 정보만 사용합니다.

DBA, DevOps 엔지니어

모니터링, 백업 및 유지 관리를 구성합니다.

  1. 원하는 백업 옵션을 지정합니다. 기본적으로 자동 백업은 보존 기간이 7일인 상태로 활성화됩니다.

  2. 적절한 자동 마이너 버전 업그레이드유지 관리 기간 설정을 선택하여 Amazon RDS의 데이터베이스에 보류 중인 수정 사항 또는 유지 관리를 적용합니다.

  3. 데이터베이스 생성을 선택합니다.

DBA, DevOps 엔지니어
작업설명필요한 기술

테이블을 만들고 예제 데이터를 로드합니다.

새 데이터베이스에서 테이블을 생성합니다. 추가 정보 섹션의 예제 코드를 사용하여 데이터를 테이블에 로드합니다.

DBA, DevOps 엔지니어
작업설명필요한 기술

보안 암호를 생성합니다.

  1. 콘솔에서 Secrets Manager를 선택한 다음 새 보안 암호 저장을 선택합니다.

  2. Amazon RDS for SQL Server 데이터베이스에 대한 사용자 이름과 암호를 입력합니다.

이 보안 암호는 AWS DMS 소스 엔드포인트에 사용됩니다.

DBA, DevOps 엔지니어
작업설명필요한 기술

Amazon RDS에 액세스할 수 있도록 IAM 역할을 생성합니다.

  1. 콘솔에서 IAM을 선택하고 S3 버킷에 대한 읽기/쓰기 액세스 권한을 Amazon RDS에 부여하는 IAM 역할을 생성합니다.

  2. 기능에서 S3 통합을 선택합니다.

DBA, DevOps 엔지니어
작업설명필요한 기술

Amazon S3 버킷을 생성합니다.

Amazon RDS for SQL Server의 데이터를 저장하려면 콘솔에서 S3를 선택한 다음 버킷 생성을 선택합니다. Amazon S3 버킷을 공개적으로 사용할 수 없는지 확인합니다.

DBA, DevOps 엔지니어
작업설명필요한 기술

가 Amazon S3에 액세스 AWS DMS 하기 위한 IAM 역할을 생성합니다.

가 Amazon S3 버킷에서 객체 AWS DMS 를 나열, 가져오기 및 넣을 수 있도록 허용하는 IAM 역할을 생성합니다.

DBA, DevOps 엔지니어
작업설명필요한 기술

AWS DMS 소스 엔드포인트를 생성합니다.

  1. 콘솔에서 Database Migration Service를 선택하고 엔드포인트를 선택합니다. RDS DB 인스턴스 선택 확인란을 선택하여 소스 엔드포인트를 생성합니다.

  2. 소스 엔진의 경우 Microsoft SQL Server를 선택합니다.

  3. 엔드포인트 데이터베이스에 대한 액세스에서를 선택하고 이전에 생성한 보안 암호 및 IAM 역할과 데이터베이스 이름을 AWS Secrets Manager입력합니다.

  4. 소스 엔드포인트를 테스트합니다.

DBA, DevOps 엔지니어

AWS DMS 대상 엔드포인트를 생성합니다.

Amazon S3를 대상 엔진으로 선택하여 대상 엔드포인트를 생성합니다.

이전에 생성한 IAM 역할의 Amazon S3 버킷 이름과 폴더 이름을 입력합니다.

DBA, DevOps 엔지니어

AWS DMS 복제 인스턴스를 생성합니다.

동일한 VPC, 서브넷 및 보안 그룹에서 AWS DMS 복제 인스턴스를 생성합니다. 인스턴스 클래스 선택에 대한 자세한 내용은 AWS 설명서를 참조하세요.

DBA, DevOps 엔지니어

AWS DMS 마이그레이션 작업을 생성합니다.

Amazon RDS for SQL Server에서 Amazon S3 버킷으로 데이터를 내보내려면 데이터베이스 마이그레이션 작업을 생성합니다. 마이그레이션 유형에서 기존 데이터 마이그레이션을 선택합니다. 생성한 AWS DMS 엔드포인트 및 복제 인스턴스를 선택합니다.

DBA, DevOps 엔지니어
작업설명필요한 기술

데이터베이스 마이그레이션 작업을 실행합니다.

SQL Server 테이블 데이터를 내보내려면 데이터베이스 마이그레이션 작업을 시작합니다. 작업은 Amazon RDS for SQL Server의 데이터를 CSV 형식으로 Amazon S3 버킷으로 내보냅니다.

DBA, DevOps 엔지니어
작업설명필요한 기술

리소스를 삭제합니다.

추가 비용이 발생하지 않도록 콘솔을 사용하여 다음 순서대로 리소스를 삭제합니다.

  1. 마이그레이션 작업

  2. 복제 인스턴스

  3. 엔드포인트

  4. Amazon S3 버킷

  5. 데이터베이스 인스턴스

DBA, DevOps 엔지니어

문제 해결

문제Solution

Microsoft SQL Server 관련 문제 해결

사용 중 Microsoft SQL Server 관련 문제 해결에 대한 자세한 내용은 Microsoft SQL Server 관련 문제 해결을 AWS DMS참조하세요. https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.SQLServer

마이그레이션 작업 문제 해결

사용 시 마이그레이션 문제 해결에 대한 자세한 내용은의 마이그레이션 작업 문제 해결을 AWS DMS참조하세요. AWS Database Migration Service

관련 리소스

추가 정보

데이터베이스와 테이블을 생성하고 예제 데이터를 로드하려면 다음 코드를 사용합니다.

--Step1: Database creation in RDS SQL Server CREATE DATABASE [Test_DB] ON PRIMARY ( NAME = N'Test_DB', FILENAME = N'D:\rdsdbdata\DATA\Test_DB.mdf' , SIZE = 5120KB , FILEGROWTH = 10%) LOG ON ( NAME = N'Test_DB_log', FILENAME = N'D:\rdsdbdata\DATA\Test_DB_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%) GO --Step2: Create Table USE Test_DB GO Create Table Test_Table(ID int, Company Varchar(30), Location Varchar(20)) --Step3: Load sample data. USE Test_DB GO Insert into Test_Table values(1,'AnyCompany','India') Insert into Test_Table values(2,'AnyCompany','USA') Insert into Test_Table values(3,'AnyCompany','UK') Insert into Test_Table values(4,'AnyCompany','Hyderabad') Insert into Test_Table values(5,'AnyCompany','Banglore')