Category: Amazon RDS*


Amazon RDS for SQL Server – S3 네이티브 백업 및 복원 지원

Amazon Relational Database Service (RDS) 서비스는 데이터베이스 설정, 실행 및 확장성 등에서 보다 손쉽게 운영할 수 있는 완전 관리형 데이터베이스 서비스입니다. 2012년 서비스 시작 이후 SQL Server 지원, SSL 지원, 주요 버전 업그레이드 , 투명한 데이터 암호화, 확장 모니터링, Multi-AZ 등의 기능을 추가해 왔습니다.

이번에 SQL Server의 네이티브 백업 및 복원 지원을 추가합니다. SQL Server 네이티브 백업에는 테이블, 인덱스, 스토어드 프로 시저, 트리거 등 모든 데이터베이스 오브젝트가 포함되어 있습니다. 이러한 백업 데이터는 사내에서 실행 또는 클라우드에서 실행중인 SQL Server 인스턴스간에 데이터베이스를 마이그레이션하는 경우에 사용합니다. 또한, 데이터 수집, 재해 복구 등에도 사용할 수 있습니다. 네이티브 백업은 사내 SQL Server 인스턴스에서 데이터 가져오기 및 스키마의 프로세스를 단순화 할 수 있으므로, SQL Server DBA가 손쉽게 운영할 수 있습니다.

네이티브 백업 및 복구 지원
RDS 인스턴스에서 네이티브 SQL 데이터베이스를 백업, Amazon S3 버킷에 저장할 수 있게 되었습니다. SQL Server의 온프레미스에서 백업 또는 다른 RDS를 사용하는 SQL Server 인스턴스에 복원 할 수 있습니다. 또한 온프레미스 데이터베이스 백업을 S3에 복사하여, RDS SQL Server 인스턴스에 복원 할 수 있습니다. Amazon S3에서 SQL Server의 네이티브 백업 및 복원은 모든 버전에서 AWS Key Management Service (KMS) 기반 백업 암호화를 지원합니다. S3를 통해 AWS에서 백업을 보관 및 이동 할 때 다른 재해 복구 대책 옵션이 제공됩니다. SQL_SERVER_BACKUP_RESTORE 옵션을 옵션 그룹에 추가하고, 해당 그룹과 RDS SQL Server 인스턴스를 연결하면, 본 기능을 선택 할 수 있습니다. 이 옵션은 S3 버킷 정보도 설정해야합니다. 또한, 백업을 암호화하기 위해 KMS 키를 추가 할 수 있습니다. 그리고 원하는 옵션 그룹을 검색합니다.

SQL_SERVER_BACKUP_RESTORE 옵션을 추가하고 IAM 역할을 지정 (또는 생성)하고 RDS가 S3에 접근할 수 있도록합니다. 버킷의 (희망하는 경우) 암호화를 확인하고 설정합니다.

설정이 완료되면 SQL Server Management Studio를 사용하여, 데이터베이스 인스턴스에 연결하고 필요에 따라 다음의 스토어드 프로 시저(msdb 데이터베이스에서 사용 가능)를 호출합니다.

  • rds_backup_database – 하나의 데이터베이스를 S3 버킷에 백업
  • rds_restore_database – S3에서 하나의 데이터베이스를 복원
  • rds_task_status – 백업 실행을 추적하고 작업을 복원
  • rds_cancel_task – 실행중인 백업을 취소하거나 작업을 복원

자세한 내용은 SQL Server 데이터 가져오기 및 내보내기를 참조하십시오.

이용 가능
SQL Server 네이티브 백업 및 복원 지원은 US East (Northern Virginia), US West (Oregon) Europe (Ireland), Asia Pacific (Sydney), Asia Pacific (Tokyo) Asia Pacific (Singapore), Asia Pacific (Mumbai) , South America (Brazil) 리전에서 사용할 수 있습니다. 본 기능을 Amazon RDS for SQL Server 기본 요금 이외 추가 비용이 없으며, Amazon S3 스토리지 사용량은 일반 요금으로 청구됩니다. (향후, 서울 리전에서도 지원 예정입니다.)

– Jeff;

이 글은 Amazon RDS for SQL Server – Support for Native Backup/Restore to Amazon S3의 한국어 번역입니다.

Amazon RDS 서비스 신규 기능 추가 – PostgreSQL 리전간 읽기 복제본 제공 등

지난 주에는 Amazon RDS 서비스에 대한 다양한 신규 기능이 공개되었습니다. 오늘은 한국 고객에게 유용한 몇 가지를 소개해 드리고자 합니다.

SQL Server, 다중-AZ 미러링 기능 도쿄 리전 지원!
지난 달 서울 리전에 공개된 Amazon RDS for SQL Server 서비스의 다중-AZ 지원을 도쿄 리전에서도 사용 가능합니다. 더 자세한 사항은 미러링을 통한 SQL Server 다중 AZ 작업을 참고하십시오.

PostgreSQL, 리전간 읽기 복제본 서비스 제공
디스크 암호화를 하지 않은 Amazon RDS for PostgreSQL 데이터베이스 인스턴스에서 리전간 읽기 복제본(Cross-region read replica)를 사용할 수 있게되었습니다. 이 기능을 이용하시면, 지리적으로 떨어진 글로벌 사용자에 대해 읽기 대기 시간을 줄일 수 있게 되고, 재해 복구 목적으로 데이터베이스를 백업 할 수 있습니다. 또한 쉽게 데이터베이스를 다른 AWS 지역으로 전환 할 수 있게 되었습니다.

  • 재해 복구 : 데이터베이스 재해 복구 목적으로 리전간 읽기 복제본를 사용하실 수 있습니다. 만일 메인 DB이 제공되지 않는 상태가 되었을 경우, 읽기 복제본을 메인 역할으로 바꿈으로서 비즈니스 연속성을 할 수 있습니다.
  • 확장성 : 리전간 읽기 복제본를 이용하여 지리적으로 분산 된 환경에서 읽기 작업 부하를 분산 할 수 있습니다. 글로벌 사용자에 가까운 데이터베이스에서 읽기를 통한 지연을 줄일 수 있습니다.
  • 리전간 마이그레이션 : 만약 다른 AWS 리전에 쉽게 데이터베이스를 마이그레이션하려면 작업 단계 및 시간을 줄일 수 있습니다. 대상 리전에서 읽기 복제본을 만들고 응용 프로그램이 새 마스터 데이터베이스를 사용하도록 응용 프로그램의 설정을 변경합니다.

이 기능은 모든 RDS PostgreSQL (9.5.2, 9.4.7 이상) 데이터베이스로 이용하실 수 있습니다. 이 버전보다 이전 데이터베이스 인스턴스 여기의 기능을 이용하고 싶은 경우 데이터베이스의 버전 업그레이드를 수행해야합니다. RDS PostgreSQL의 cross-region replication 대한 자세한 내용은 RDS 문서를 참조하십시오.

Oracle Repository Creation Utility (RCU) 사용 가능
6월 19일 부터 Amazon RDS for Oracle에서 Fusion Middleware 구성 요소에 대한 스키마를 작성하기 위해 Oracle Repository Creation Utility (RCU) 12c를 이용하실 수 있게 되었습니다. 이 기능은 신규 Amazon RDS Oracle 12c 및 11g 데이터베이스 버전 “11.2.0.4.v8”, “12.1.0.1.v5″및 “12.1.0.2.v4″로 이용 가능합니다. 이 버전은 April 2016 Oracle Patch Set Updates (PSU)를 포함합니다. 버전 “11.2.0.4.v8”, “12.1.0.2.v4″는 Oracle GoldenGate위한 추천 패치가 포함되어 있습니다. 또한 “grant opt​​ion”을 이용하여 SYS objects에 권한을 부여하는 기능을 추가하고 있습니다.

Oracle “11.2.0.4.v8”, “12.1.0.1.v5″와 “12.1.0.2.v4″DB 인스턴스를 만들려면, AWS Management Console의 “Launch DB Instance Wizard”를 이용하여 원하는 DB 버전을 지정하고 시작할 수 있습니다. 기존 데이터베이스 인스턴스를 업그레이드하기 위해서는, “Modify”옵션을 선택하고 원하는 데이터베이스 엔진 버전을 선택합니다. 정식 서비스 중인 데이터베이스를 업그레이드하기 전에, 데이터베이스 인스턴스의 스냅 샷에서 테스트 데이터베이스 인스턴스의 복원을 수행하여, 업그레이드 절차 및 소요 시간을 확인하고, 응용 프로그램의 새로운 데이터베이스 버전의 호환성 역시 확인 하시길  추천합니다.

Amazon RDS for Oracle에서 RCU를 이용하기위한 자세한 내용은 Amazon RDS for Oracle에서 Oracle Repository Creation Utility위한 단계별 가이드를 참조하십시오. SYS objects에 grant privileges하는 방법은 Oracle DB 인스턴스 페이지의Common DBA Tasks for Oracle DB Instances 페이지를 참조하십시오. Amazon RDS for Oracle DB 엔진 Release Notes를 방문하시면, 더욱 자세한 내용을 확인하실 수 있습니다.

Amazon Aurora, 리전간 Read Replica 추가 가능

Amazon Aurora 기존 클러스터에 읽기 복제본(Read Replica)을 추가하여 읽기 용량에 대해 확장을 하실 수 있습니다. 오늘 부터 읽기 복제본을 다른 리전에서도 만들 수 있는 기능을 제공합니다. 신규 기능을 이용하여 리전 간 재해 복구 구성을 사용할 수 있으며, 읽기 용량을 확장 할 수 있습니다. 그 외에도 다른 리전 데이터베이스를 이전하거나, 새로운 환경을 구축하는 데에도 사용할 수 있습니다.

읽기 복제본을 다른 리전에 만들면 Aurora 클러스터가 그 리전에도 생성됩니다. Aurora 클러스터에는 15대까지 리전 내에서 낮은 지연 속도(대부분의 경우 20ms 이내)에서 읽기 복제본을 만들 수 있습니다. 리전 사이의 경우, 원본 클러스터와 대상 클러스터 사이의 거리에 따라 지연 시간이 증가합니다. 이러한 구성은 현재 Aurora 클러스터를 복제하거나, 재해 복구 목적으로 읽기 복제본를 리전간에 구성하기를 원할 때 사용할 수 있습니다. 만일 리전에 오류가 발생한 경우, 지역간 읽기 복제본이 마스터 데이터베이스로 변경됨으로, 다운타임을 최소화 할 수 있습니다. 본 기능은 암호화되지 않은 Aurora 클러스터에 적용 가능합니다.

읽기 복제본을 만들기 전에 대상 리전에 VPC와 Database Subnet Groups가 존재하는지 마스터에서 바이너리 로그가 활성화되어 있는지 확인해야합니다.

VPC 설정 하기
Aurora는 VPC내에서 동작하기 때문에, 원하는 리전에 적절한 Database Subnet Groups가 존재하는지 확인합니다.

바이너리 로그 사용하기
지역 간 읽기 복제본을 설정하기 전에 바이너리 로그를 활성화 해야 합니다. 만약 default 매개 변수 그룹을 사용하는 경우, 새로운 DB Cluster Parameter Group을 생성합니다.

바이너리 로그를 활성화 (MIXED로 선택)하고, Save Changes를 클릭합니다.

Next, Modify the DB Instance, select the new DB Cluster Parameter Group, check Apply Immediately, and click on Continue. Confirm your modifications, and then click on Modify DB Instance to proceed:

다음 단계로, 설정을 변경하고자 하는 DB 인스턴스를 선택하고 Modify를 선택합니다. 그리고 새로운 DB Cluster Parameter Group을 통해 Apply Immediately를 선택하고 Continue를 클릭합니다. 설정 변경을 확인한 후, Modify DB Instance를 누릅니다.

인스턴스를 선택하고 재시작을 실행될 때까지 기다립니다

읽기 복제본 만들기
사전 준비가 완료되면 읽기 복제본을 만듭니다. 우선 AWS Management Console에서 소스 클러스터를 선택하고, Instance Actions메뉴에서 Create Cross Region Read Replica를 선택합니다 :

Name the new cluster and the new instance, and then pick the target region. Choose the DB Subnet Group and set the other options as desired, then click Create:

새 인스턴스나 클러스터의 이름을 설정하고 대상 리전을 선택합니다. DB Subnet Group을 선택하고 다른 옵션도 원하는 설정한 후, 마지막으로 Create를 누릅니다.

본 기능은 오늘 부터 바로 사용할 수 있습니다.

Jeff;

이 글은 New – Cross-Region Read Replicas for Amazon Aurora의 한국어 번역입니다.

Amazon RDS for SQL Server, 다중-AZ 미러링 기능 서울 리전 지원!

오늘 부터 Amazon RDS for SQL Server 서비스의  다중-AZ 지원을 Asia Pacific (Seoul) 리전에서 사용 가능합니다.

이제 SQL 서버를 사용하는 엔터프라이즈급 서비스 환경에 요구 사항에 맞도록 추가적인 인프라 향상을 통해 미러링 기술이 적용된 고가용성 서비스를 선택할 수 있습니다. 다중 AZ 방식은 더 높은 가용성 및 데이터 내구성을 제공합니다. 두 개의 가용 영역(AZ) 사이의 데이터 베이스 리플리케이션을 자동으로 수행하기 때문입니다. 하나의 가용 영역은 서로 다른 가용 영역의 문제가 발생할 것을 대비하여 물리적으로나 지역적으로 완전히 독립된 인프라를 운용하고 있습니다.

여러분이 다중-AZ 환경에서 SQL 서버 데이터베이스 인스턴스를 생성 혹은 수정을 하시면, Amazon RDS 서비스는 자동으로 마스터 데이터베이스를 하나의 AZ에 구동한 후, 자동으로 다른 AZ에 리플리카를 스탠바이 상태로 유지하고 동기화 합니다. 데이터센터 운용에 문제가 발생되거나 마스터에 문제가 생기게 되면, Amazon RDS는 자동으로 장애 극복(Fail-over) 기능을 통해 다른 AZ의 SQL 서버를 사용할 수 있게끔 합니다. 이를 통해 데이터베이스 운영자가 수작업없이 빠르게 DB를 복구할 수 있습니다.

서울 리전에서 SQL 서버 RDS 인스턴스 생성 시, 다중-AZ 선택을 사용하실 수 있습니다.

기존 RDS for SQL Server 인스턴스도 쉽게 미러링 기능을 설정할 수 있습니다.

다중-AZ는 기능은 Microsoft SQL Server 2008 R2 및 2012 Standard and Enterprise 에디션에서 사용 가능합니다. 더욱 향상된 장애 극복 및 고가용성 기능을 통해 미션 크리티컬한 업무 환경에 유용합니다.

더 자세한 사항은 미러링을 통한 SQL Server 다중 AZ 작업을 참고하십시오.

– AWS코리아 마케팅팀

AWS 데이터베이스 마이그레이션 서비스(DMS) 오픈!

여러분이 기존 환경에서 오라클, SQL서버, MySQL, MariaDB 및  PostgreSQL 데이터베이스를 운영하고 계시다면, AWS 클라우드로 이전하셔서 확장성이 높은 운영 효율적인 다양한 대용량 데이터 스토리지 옵션의 혜택을 누리실 수 있습니다.

그러면 어떻게 다운타임 없이 이전을 할 수 있을까요? 오늘 출시된 AWS Database Migration Service (DMS) 서비스가 바로 그 해답입니다. 작년 가을 AWS re:Invent 행사에서 미리 보기로 발표된 이후로 이미 우리 고객들의 1,000여개가 넘는 데이터베이스가 AWS로 이전하였습니다. 여러분도 바로 테라 바이트급 데이터베이스를 운영하는 도중이나 (신규 요구사항에 맞춤) 새로운 버전으로 업그레이드 하면서 라이브로 옮겨 보실 수 있습니다. 만약 클라우드로 옮기려고 하는 데이터베이스가 완전히 다른 엔진이라면 AWS Schema Conversion Tool 을 통해 스키마와 저장 프로시저를 새로운 환경으로 옮길 수 있습니다

AWS Database Migration Service는 AWS 상의 리플리케이션 인스턴스를 설정하여 동작하게 됩니다. 이 인스턴스는 기존 소스 데이터베이스에서 데이터를 업로드하고, 이전 대상 데이터베이스에 전송을 합니다. 이를 통해 최소한의 다운타임을 지원하는 리플리케이션 방식을 따라서 한번에 이전이 가능하다는 장점이 있습니다. DMS는 마이그레이션에 관련된 복잡한 문제들, 예를 들어 데이터 타입 변환, 데이터 플랫폼의 이전(오라클, Aurora 등)이 가능합니다. 또한, 리플리케이션 인스턴스 현황 및 헬스 체크 모니터링을 제공하며, 문제가 있을 때 알림을 보내고 필요하다면 자동으로 인스턴스를 대체할 수 있습니다. 

DMS는 다양한 이전 시나리오 및 네트워크 옵션을 제공합니다. 엔드 포인트가 AWS일 수도 있고, 기존 온-프레미스 환경일 수도 있습니다. 또한 EC2  인스턴스에 설치된 DB 혹은 RDS 인스턴스가 될 수도 있습니다. 소스 및 최종 이전 대상은 같은  Virtual Private Cloud (VPC)에 있거나, 두 개의 나눠진  VPC에서도 가능합니다. 여러분이 온-프레미스 데이터베이스를 이전하시려면, AWS Direct Connect.를 사용하여 전용 회선으로 연결하여 VPC 설정 후 사용 가능합니다.

데이터베이스 마이그레이션 하기
관리 콘솔에서 몇 번 클릭을 하기만 하면, 이전 작업을 시작할 수 있습니다. 먼저 이전을 원하는 데이터베이스를 선택하고, 스키마 이전, 리플리케이션 설정, 마이그레이션 시작을 하면 됩니다. 소스에서 이전이 완전히 완료가 되면, 애플리케이션에서 DB의 설정만 바꾸어 주면 됩니다.

AWS Database Migration Service 콘솔에서 DMS 를 클릭한 후, Create migration을 선택합니다.

콘솔에서는 마이그레이션 절차에 대해 간단하게 소개해 드립니다.

리플리케이션 인스턴스를 만들 각종 파라미터 값을 입력합니다.

이 글에서는 기존 VPC를 선택하고, Publicly accessible를 선택하지 않았습니다. 이전 대상 데이터베이스는 EC2 인스턴스에 있기 때문입니다.

리플리케이션 인스턴스가 만들어지면, 소스 및 최종 이동 대상 데이터베이스를 선택한 후   Run test를 선택합니다. 접속이 잘되는지 네트워크 이슈가 없는 지를 테스트해 볼 수 있습니다.

이제 실제 마이그레이션 작업이 진행되기 위해, Migration type을 설정하면, 기존 데이터, 이전 후 리플리케이션, 리플리케이션 등을 선택할 수 있습니다.

이제 Task Settings를 선택합니다. (LOBs는 Large Objects를 의미합니다).

마이그레이션 작업을 위해, Start/Resume를 선택하면 됩니다.

진행 사항을 보실 수 있으며, Table statistics를 통해 이전 사항을 확인할 수 있습니다. (아래 그림은 테스트 테이블입니다.)

이전이 완료되면, 간단한 테스트를 거쳐 애플리케이션의 DB 엔드포인트를 변경 한 후 배포하시면 됩니다.

AWS Database Migration Service는 다양한 선택 사항을 제공합니다. 예를 들어, 특정 테이블만 옮긴다던지, 여러 개의 다른 리플리케이션 작업을 할 수도 있고, 시간에 따라 작업을 활성화 시킬 수도 있습니다. 좀 더 자세한 사항은 DMS 기술 문서 (영문)을 참고하시면 됩니다.

여러분이 다양한 데이터베이스 세트를 옮기신다면, AWS Command Line Interface (CLI)나 the Database Migration Service API를 활용하시길 권장합니다.

가격 및 출시 리전
AWS Database Migration Service는 현재 US East (Northern Virginia), US West (Oregon), US West (Northern California), Europe (Ireland), Europe (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore),  및 Asia Pacific (Sydney) 리전에 우선 출시되었으며, 향후 빠른 시일 내에 (서울 리전을) 비롯한 다른 리전에 출시될 예정입니다.

Jeff;

이 글은 AWS Database Migration Service의 한국어 번역입니다.

Amazon RDS – MySQL 5.7 지원 시작

오늘부터 Amazon RDS에서 MySQL 5.7을 사용하실 수 있게 되었습니다.

이번 출시에는 MySQL 성능 향상 및 확장성, 보안 기능 향상 등도 함께 포함되어 있습니다.

  • MySQL JSON 네이티브 지원: JSON 데이터 및 빌트인 함수 (JSON_ARRAY, JSON_OBJECT, JSON_QUOTE, JSON_CONTAINS, JSON_CONTAINS_PATH, JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_APPEND, JSON_ARRAY_APPEND, JSON_ARRAY_INSERT, JSON_INSERT, JSON_MERGE, JSON_REMOVE, JSON_REPLACE, JSON_SET, JSON_UNQUOTE, JSON_DEPTH, JSON_LENGTH, JSON_TYPE, and JSON_VALID).
  • Performance Schema를 통한 성능 향상 통계 제공
  • 파싱, EXPLAIN 및 쿼리 최적화 성능 개선
  • GIS를 위한 네이티브 InnoDB 공간 데이터 인덱스 지원 및 Boost.Geometry 통합 (자세한 것은 MySQL 5.7 and GIS, an ExampleMaking Use of Boost Geometry in MySQL GIS을 참고하세요.)
  • 신규 클락 모드를 통한 병렬 리플리케이션 성능 향상 (더 자세한 것은 Multi-threaded Replication Performance in MySQL 5.7을 참고하세요.)
  • InnoDB 확장성 및 임시 테이블 성능 향상 및 동적 buffer pool 크기 변경과 충돌 복구 개선.

기타 더 자세한 것은 MySQL 5.7 Release Notes을 참고하십시오.

데이터베이스 인스턴스 시작하기
AWS 관리 콘솔, AWS Command Line Interface (CLI), AWS Tools for Windows PowerShell 및 RDS API (CreateDBInstance) 또는 CloudFormation 템플릿으로 데이터베이스 인스턴스를 시작할 수 있습니다.

관리 콘솔에서 데이터베이스 인스턴스를 시작하는 방법:

데이터베이스 인스턴스를 시작하면 EC2 인스턴스의 보안 그룹을 편집하여 데이터베이스 인스턴스에 연결할 수 있습니다.

신규 Performance Schema를 볼 수 있습니다.

MySQL 5.7의 새로운 기능을 테스트하시고 난 후, 업그레이드 하시길 권장해 드립니다.

오늘 부터 사용 가능!
Amazon RDS for MySQL 5.7 인스턴스는US East (Northern Virginia), US West (Northern California), US West (Oregon), Europe (Ireland), Europe (Frankfurt), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Asia Pacific (Seoul), China (Beijing), South America (Brazil)AWS GovCloud (US) 리전에서 바로 사용 가능합니다.

Jeff;

이 글은 Amazon RDS Update – Support for MySQL 5.7의 한국어 번역입니다.

Amazon RDS 확장 모니터링 기능 – MySQL 5.6, MariaDB 및 Aurora용

Amazon Relational Database Service (RDS)를 이용하여 손쉽게 관계형 데이터베이스의 설치 및 실행, 확장 등의 유지 보수를 할 수 있습니다. 여러분은 애플리케이션이나 비즈니스에만 주력할 수 있도록, 대부분의 관리는 AWS에서 수행합니다.

확장 모니터링
Amazon RDS를 활용하고 있는 고객들로부터 RDS 내부의 상세한 정보를 모니터링하고 싶다는 요청을 많이 받았습니다. 그래서, 오늘 확장 모니터링 기능을 추가했습니다.

데이터베이스 인스턴스에서 확장 모니터링 기능을 활성화하면 CPU, 메모리, 파일 시스템 및 디스크 I/O 등의 50개 이상의 측정치에 대한 정보를 얻을 수 있습니다. 본 기능은 데이터베이스 인스턴스 단위로 할 수 있습니다. 모니터링 및 측정 시간도 (1 초 단위까지) 세부적으로 설정 가능합니다. 사용 가능한 통계 목록은 아래와 같습니다.

아래는 제 RDS 인스턴스에서 얻은 샘플 데이터입니다.

RDS 콘솔에서 모니터링 설정을 구성하려는 데이터베이스 인스턴스를 선택하고 Instance Options 메뉴에서 Modify를 선택하여 이미 실행중인 데이터베이스 인스턴스에 설정할 수 있습니다.

기능을 활성화 한 후, IAM Role을 선택하고 단위를 선택한 후, Apply Immediately에 체크하고 Continue를 클릭합니다.

확장 모니터링은 CloudWatch Logs 및 Amazon CloudWatch에 로그를 게시 할 수 있습니다. 이와 같이 설정할 때는 측정치 필터를 설정해야 하며, 자세한 내용은 를 참조하십시오. 일단 CloudWatch Logs에 수치들이 저장된 후에는 타사 제품의 분석·모니터링 도구를 활용하는 것도 가능합니다.

정식 출시
확장 모니터링 기능은 오늘부터 US East (Northern Virginia), US West (Northern California), US West (Oregon) Europe (Ireland) Europe (Frankfurt), Asia Pacific (Singapore) Asia Pacific (Sydney), Asia Pacific (Tokyo) 지역의 t1.micro과 m1.small을 제외한 MySQL 5.6, MariaDB, Amazon Aurora의 모든 인스턴스 유형에서 사용할 수 있습니다.

일반적인 CloudWatch Logs 수집 및 데이터 전송 요금으로 이용하실 수 있습니다. (자세한 내용은 CloudWatch Logs 요금 페이지를 참조하십시오.)

Jeff;

이 글은 New – Enhanced Monitoring for Amazon RDS (MySQL 5.6, MariaDB, and Aurora)의 한국어 번역입니다.

AWS CLI를 사용한 리전간 DB 파라미터 그룹 복사하기

Amazon Relational Database Service (RDS) 는 클라우드에서 관계형 데이터베이스를 손쉽게 설정, 운영 및 확장할 수 있는 관리형 서비스입니다. RDS를 사용하면 데이터베이스 패치 작업, 백업, 특정 시점으로의 복원 등의 복잡한 관리 절차를 자동화 할 수 있습니다.

AWS에서 글로벌 서비스를 진행할 때, 하나의 리전(Region)에서 운영 중인 서비스를  전 세계로 확장하기 위해 데이터베이스를 다른 리전으로 복사해야 하는 경우가 있습니다. 이때 스냅샷(Snapshot)을 생성하여 대상 리전에 복사 후 해당 스냅샷으로부터 새로운 데이터베이스 인스턴스를 만들면 글로벌 서비스가 가능합니다.

RDS의 Snapshot을 다른 리전으로 옮긴 후, 복원하여 사용하시기 위해서는 몇 가지 사전 작업이 필요합니다.

  • 보안 그룹 (Security Groups)생성
  • DB 옵션 그룹 생성
  • DB 서브넷 그룹 생성
  • DB 파라미터 그룹 생성

위의 정보들은 특정 리전에만 국한된 것이기에, 복사하려는 대상 리전에 미리 생성하여 준비 시켜두어야 합니다.

특히, 이중에 기존에 운영 중인 서비스와 동일한 환경과 성능을 보장하기 위해서는 파라미터 그룹을 일치화 시켜야 합니다. 대상이 MySQL의 경우에는 콘솔에서 설정할 수 있는 파라미터들이 300여개에 달하기에 이를 하나하나 비교해가며 수동으로 작업하는 것은 쉽지 않습니다.

(이 글이 작성되는 시점에는 아직 리전간 파라미터 그룹 복사 기능이 지원되지 않으므로) AWS Command-Line Interface(CLI)를 활용하여 다른 리전에서 복사한 스냅샷으로부터 데이터베이스를 생성 후 기존에 사용 중이던 파라미터 그룹과 일치화 시키는 방법에 대해서 알아보고자 합니다.

참고로 한번의 명령으로 최대 20개의 파라미터 값만 변경 가능합니다. 따라서, 설명의 편의를 위해 20개 이하의 파라미터 값 변경을 기준으로 진행하도록 하겠습니다. 20개 이상의 파라미터 값 변경은 반복 실행하는 스크립트 작성을 통해 가능합니다.

1. 환경 설정
우리는 AWS CLI를 활용한 DB 파라미터 그룹 복사 방법을 확인 하기 위해 동경(ap-northeast-1) 리전의 RDS에서 파라미터 그룹을 ‘src-pg’ 라는 이름으로 생성한 뒤 다음과 같이 파라미터를 수정하도록 하겠습니다.

Parameter src-pg default.mysql5.6
innodb_flush_log_at_trx_commit 0 <engine-default>
slow_query_log 1 <engine-default>
innodb_support_xa 0 <engine-default>
long_query_time 60 <engine-default>
character_set_server utf8 <engine-default>

2. 복사 대상 DB 파라미터 그룹 정보 확인
우리의 아이디어는 describe-db-parameters를 통해 파라미터 그룹의 정보를 출력 후, 대상 리전의 RDS에서 생성한 파라미터 그룹에 앞서 출력한 원본 파라미터 그룹의 정보를 modify-db-parameter-group를 통하여 업데이트 하는 것입니다.

수정된 파라미터 중 하나를 선택하여 어떠한 포맷과 형태로 정보들이 출력 되는지 확인 해 봅니다.

$ aws rds describe-db-parameters --db-parameter-group-name src-pg --query "Parameters [? ParameterName == 'long_query_time']"

결과는 JSON 포맷으로 다음과 같이 나옵니다.

[
    {
        "Description": "Defines what MySQL considers long queries",
        "DataType": "float",
        "IsModifiable": true,
        "AllowedValues": "0-31536000",
        "Source": "user",
        "ParameterValue": "60",
        "ParameterName": "long_query_time",
        "ApplyType": "dynamic"
    }
]

파라미터 정보들을 업데이트 하기 위해서는 modify-db-parameter-group명령을 사용합니다. 이 때 --generate-cli-skeleton 옵션을 주게 되면 업데이트를 위해 입력하여야 하는 데이터의 구조를 확인할 수 있습니다.

$ aws rds modify-db-parameter-group --generate-cli-skeleton

결과는 아래와 같이 파라미터를 업데이트 하기 위한 기본 구조가 출력 됩니다.

{
    "DBParameterGroupName": "",
    "Parameters": [
        {
            "ParameterName": "",
            "ParameterValue": "",
            "Description": "",
            "Source": "",
            "ApplyType": "",
            "DataType": "",
            "AllowedValues": "",
            "IsModifiable": true,
            "MinimumEngineVersion": "",
            "ApplyMethod": ""
        }
    ]
}

앞서 describe-db-parameters를 통하여 출력된 정보들과 비교해보면 거의 동일하며, MinimumEngineVersion과 ApplyMethod 가 추가되어 있는것을 확인할 수 있습니다. ApplyMethod 는 꼭 필요한 정보이며 MinimumEngineVersion 은 선택사항 입니다.

이를 통해 기존 출력된 정보에 ApplyMethod 만 추가하여 업데이트 한다면 원하는 파라미터 그룹을 다른 리전에서도 그대로 사용할 수 있다는 것을 알 수 있습니다.

ApplyMethod는 immediate와 pending-reboot 값 중 하나를 가질 수 있습니다. immediate는 변경 사항을 RDS 인스턴스에 즉시 적용하는 것을 의미하며, pending-reboot 은 인스턴스가 재시작 될 때 적용되는 것을 의미 합니다. 각 정보는 파라미터 종류와 운영 환경에 맞게 결정되어야 하겠지만, 이 글에서는 immediate로 지정하여 진행하도록 하겠습니다.

3. 복사하려는 파라미터 그룹 정보 출력
대상 파라미터 그룹에 업데이트 하기 위한, 복사하려는 파라미터 그룹 정보를 파일에 출력해 보겠습니다. 다만, 불필요하게 모든 파라미터 정보를 출력하지 않고, 수정된 파라미터만 출력하기 위해 --source 옵션을 사용하도록 하겠습니다.

$ aws rds describe-db-parameters --db-parameter-group-name src-pg --source user > src-pg.json

아래와 같은 결과가 src-pg.json 파일에 출력됩니다.

{
    "Parameters": [
        {
            "Description": "The server's default character set.",
            "DataType": "string",
            "IsModifiable": true,
            "AllowedValues": "big5,dec8,cp850,hp8,koi8r,latin1,latin2,swe7,ascii,ujis,sjis,hebrew,tis620,euckr,koi8u,gb2312,greek,cp1250,gbk,latin5,armscii8,utf8,ucs2,cp866,keybcs2,macce,macroman,cp852,latin7,utf8mb4,cp1251,utf16,cp1256,cp1257,utf32,binary,geostd8,cp932,eucjpms",
            "Source": "user",
            "ParameterValue": "utf8",
            "ParameterName": "character_set_server",
            "ApplyType": "dynamic"
        },
...

4. 파라미터 정보 추가하기
앞서 살펴본바와 같이 ApplyMethod는 필수이기 때문에 각 파라미터 정보에 추가하도록 하겠습니다. 먼저 파이썬(Python)을 활용한 방법입니다.

$ cat src-pg.json | python -c 'import sys,json; data=json.loads(sys.stdin.read()); map(lambda x: x.update({"ApplyMethod":"immediate"}), data["Parameters"]); print json.dumps(data)' | python -m json.tool > dest-pg.json

두번째는 jq를 사용(설치 필요) 하는 방법입니다.

$ cat src-pg.json | jq '.Parameters[] |= . + {"ApplyMethod": "immediate"}' > dest-pg.json

이제 dest-pg.json 파일을 출력해보면 다음과 같이 ApplyMethod 가 추가된 것을 확인할 수 있습니다.

{
    "Parameters": [
        {
            "AllowedValues": "big5,dec8,cp850,hp8,koi8r,latin1,latin2,swe7,ascii,ujis,sjis,hebrew,tis620,euckr,koi8u,gb2312,greek,cp1250,gbk,latin5,armscii8,utf8,ucs2,cp866,keybcs2,macce,macroman,cp852,latin7,utf8mb4,cp1251,utf16,cp1256,cp1257,utf32,binary,geostd8,cp932,eucjpms",
            "ApplyMethod": "immediate",
            "ApplyType": "dynamic",
            "DataType": "string",
            "Description": "The server's default character set.",
            "IsModifiable": true,
            "ParameterName": "character_set_server",
            "ParameterValue": "utf8",
            "Source": "user"
        },
....

5. 대상 리전에 파라미터 그룹 생성 및 업데이트
이제 복사할 대상 리전에 dest-pg 라는 이름의 기본 값을 가진 파라미터 그룹을 생성하겠습니다.

$ aws rds create-db-parameter-group --db-parameter-group-family MySQL5.6 --db-parameter-group-name dest-pg --description "This is a destination parameter group" --region us-east-1

결과는 다음과 같이 파라미터 그룹명을 포함한 정보가 출력 됩니다.

{
    "DBParameterGroup": {
        "DBParameterGroupName": "dest-pg",
        "DBParameterGroupFamily": "mysql5.6",
        "Description": "This is a destination parameter group"
    }
}

여기서는 명시적으로 –-region 이라는 옵션을 통하여 파라미터 그룹이 생성될 리전(us-east-1, Virginia)을 지정하였습니다.

앞서 만든 대상 리전의 파라미터 그룹에 원본 파라미터 그룹 정보를 업데이트를 합니다. --cli-input-json 옵션을 사용하여 앞서 원본 파라미터 그룹 정보에ApplyMethod 를 추가한 json 파일을 지정합니다.

$ aws rds modify-db-parameter-group --region us-east-1 --db-parameter-group-name dest-pg --cli-input-json file://dest-pg.json

정상적으로 완료되면 파라미터 그룹명이 출력 됩니다.

{
    "DBParameterGroupName": "dest-pg"
}

원본 파라미터 그룹과 대상 파라미터 그룹이 동일한지 diff를 사용하여 확인할 수 있습니다.

$ diff -s <(aws rds describe-db-parameters --db-parameter-group-name src-pg --source user) <(aws rds describe-db-parameters --region us-east-1 --db-parameter-group-name dest-pg --source user)

동일하다면, 다음과 같은 결과가 출력되며 완료된 것을 확인할 수 있습니다.

$ Files /dev/fd/?? and /dev/fd/??? are identical

지금까지 AWS CLI를 사용하여 리전간 RDS 파라미터 그룹을 복사하는 방법에 대해서 알아 보았습니다. 이외에도 다양한 방법으로 가능하겠지만, 앞서 살펴본 바와 같이 CLI를 활용한다면 몇 가지 명령어를 사용해 어렵지 않게 수행 할 수 있을 뿐만 아니라 자동화 할 수 있음을 확인 할 수 있습니다.

AWS CLI는 지속적으로 업데이트 되고 있으며, 새롭게 추가되는 새로운 명령어들과 기능들을 업무에 적용함으로써 작업 능률 향상을 꾀할 수 있을 것입니다. 이러한 점이 AWS의 매력 중 하나가 아닐까 생각합니다.

본 글은 아마존웹서비스 코리아의 솔루션즈 아키텍트가 국내 고객을 위해 전해 드리는 AWS 활용 기술 팁을 보내드리는 코너로서, 이번 글은 김필중 솔루션즈 아키텍트께서 작성해주셨습니다.

Amazon RDS 신규 기능 – 계정간 스냅샷 공유하기

오늘부터 Amazon RDS 데이터베이스 스냅샷을 AWS 계정 간에 혹은 공개적으로 공유 할 수 있는 기능을 시작하게 되었습니다.

계정 간 스냅샷 공유
RDS 데모에서 스냅샷 백업을 만드는 것은 자주 보셨을 것입니다.

스냅샷을 쉽게 만들고 몇 번 클릭만으로도 새로운 DB에 깔끔하게 복원을 할 수 있는 장점이 있습니다.

오늘 부터 암호화되지 않는 MySQL, 오라클, SQL Server 및 PostgreSQL 스냅샷을 다른 계정 사용자에게도 공유할 수 있습니다. 여러분이 AWS 사용자라면 개발, 테스트 및 정식 배포에 사용하는 계정이 여러개일 수 있습니다. 이제 이들 계정 사이에 스냅샷을 공유할 수 있게 되었습니다. 만약 정식 배포 시스템에서 늦게 버그가 발생했더라도, 데이터베이스 스냅샷을 만들어 여러 개발자들에게 공유하여 테스트 환경에서 문제를 해결 할 수 있습니다.

RDS 콘솔 “Share Snapshots”에서 Private 옵션을 선택함으로써 20개의 AWS 계정에 데이터베이스 스냅샷을 공유 할 수 있습니다. Public 옵션을 선택함으로써 모든 AWS 사용자에게 공유 할 수 있습니다. 만약 연구 데이터셋을 공유하거나 공개할 때 유용한 방법입니다.

이제 어떻게 RDS 콘솔에서 다른 AWS 계정에게 스냅샷을 공유하는지 알아보겠습니다. (명령어 인터페이스나 RDS API로 활용도 가능합니다.)

계정에서 스냅샷 공유는 아래와 같은 방법으로 나타납니다.

이제 스냅샷을 외부에 완정히 공개해 보겠습니다.

스냅샷 공유는 리전간에도 가능합니다. (중국 베이징 리전 및 GovCloud는 제외).

Jeff;

이 글은 Amazon RDS Update – Cross-Account Snapshot Sharing의 한국어 번역입니다.

Amazon RDS – MariaDB 신규 서비스 공개

우리는 6년전인 2009년에 관계형 데이터베이스의 매니지드 서비스인 Amazon RDS를 처음 시작하였습니다. 먼저 MySQL을 맨 먼저 서비스하기 시작하여, MS SQL서버, 오라클 및 PostgreSQL 그리고 최근에는 Amazon Aurora 서비스를 시작했습니다. 모든 AWS 리전과 다양한 인스턴스 타입으로 서비스를 제공하고 있으며, 여러분의 각 지리적 기반 사용자에게 다양한 하드웨어 선택 사양에 따라 애플리케이션의 요구 사항을 맞출 수 있게 되었습니다.

Maria DB 서비스 개시
오늘부터 새롭게 MariaDB 데이터베이스 10.0.17 버전을 RDS로 제공합니다. 2009년 MySQL로 부터 분리되어 XtraDBAria의 두가지 스토리지 엔진을 지원하면서 빠르게 개발되어 온 인기 있는 오픈소스 DB엔진입니다. 이를 활용하고자 하는 고객들의 요구를 받아 병렬 리플리케이션(Pararell replication) 및 쓰레드 풀(Thread pool) 등의 멋진 기능도 포함합니다.

RDS의 다른 데이터베이스와 마찬가지로 관리 콘솔 및 리눅스 커맨드라인과 윈도우 파워셀 그리고 RDS API 및 CloudFormation 템플릿을 사용할 수 있습니다.

다음과 같은 커맨드라인 명령어로 바로 DB 서버를 띄울 수 있습니다.

$ rds-create-db-instance jeff-mariadb-1 \
  --engine mariadb \
  --db-instance-class db.r3.xlarge \
  --db-subnet-group-name dbsub \
  --allocated-storage 100 \
  --publicly-accessible false \
  --master-username root --master-user-password PASSWORD

하나씩 살펴 보면 다음과 같습니다.

  • 첫 번째 라인에서 rds-create-db-instance를 통해 이름(jeff-mariadb-1)을 설정합니다.
  • 두 번째 라인에서 MariaDB 엔진을 선택하고, 세 번째 라인에서 인스턴스 타입인 db.r3.xlarge를 선택합니다.
  • 네 번째 라인에서는 DB 인스턴스의 서브넷 그룹을 선택하는데, 이는 여러분의 VPC(Virtual Private Cloud)의 목록 중 맞는 것을 입력합니다.
  • 다섯 번째 라인에서는 100GB의 스토리지를 설정하고, 6번째 라인에서는 공개 IP 주소 접근 허용을 하지 않도록 설정합니다.
  • 마지막 라인에서는 DB의 마스터 유저의 아이디 및 암호를 입력합니다.

실행이 완료되면 아래와 같은 결과를 보실 수 있습니다.

DBINSTANCE  jeff-mariadb-1  db.r3.xlarge  mariadb  100  root  creating  1  ****  db-QAYNWOIDPPH6EYEN6RD7GTLJW4  n  10.0.17  general-public-license  n  standard  n
      VPCSECGROUP  sg-ca2071af  active
SUBNETGROUP  dbsub  DB Subnet for Testing  Complete  vpc-7fd2791a
      SUBNET  subnet-b8243890  us-east-1e  Active
      SUBNET  subnet-90af64e7  us-east-1b  Active
      SUBNET  subnet-b3af64c4  us-east-1b  Active
      PARAMGRP  default.mariadb10.0  in-sync
      OPTIONGROUP  default:mariadb-10-0  in-sync

RDS 커맨드 라인은 매우 훌륭한 도구로서 기술 문서를 통해 더 자세한 것을 확인할 수 있습니다. 예를 들어, rds-create-db-instance-read-replicas로 읽기 복제본을 만들 수 있고 rds-create-db-snapshot를 통해 몇 분 안에 백업본을 만들 수 있습니다.

물론 AWS 관리 콘솔 화면에서도 쉽게 인스턴스를 만들 수 있습니다.

지금 시작하기
MariaDB 실행 RDS 인스턴스는 오늘 부터 모든 리전에서 사용 가능하며 M3(표준), R3(메모리 최적화), T2(표준) 인스턴스를 지원합니다.

— Jeff;

이 글은 Amazon RDS Update – MariaDB is Now Available의 한국어 번역이며, re:Invent 2015의 신규 서비스 소식입니다.