Amazon Web Services 한국 블로그
Amazon RDS – 신규 Db2 정식 출시
IBM과 AWS가 협력하여 AWS 인프라에서 실행되는 완전관리형 Db2 데이터베이스 엔진인 Amazon Relational Database Service(RDS) for Db2를 제공하기로 했다는 기쁜 소식을 전합니다.
IBM Db2는 IBM에서 개발한 엔터프라이즈급 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 강력한 데이터 처리 기능, 강력한 보안 메커니즘, 확장성 및 다양한 유형의 데이터 지원을 포함하여 포괄적인 기능 세트를 제공합니다. Db2는 신뢰성과 성능 덕분에 다양한 애플리케이션의 데이터를 효과적으로 관리하고 데이터 집약적인 워크로드를 처리해야 하는 조직 사이에서 널리 인정받고 있습니다. Db2는 IBM이 1970년대부터 수행해 온 데이터 스토리지 및 구조화된 쿼리 언어(SQL)에 대한 선구적인 작업에 그 뿌리를 두고 있습니다. 1983년부터 상용화되었는데, 처음에는 메인프레임용으로만 제공되었고 나중에는 Linux, Unix, Windows 플랫폼(LUW)으로 이식되었습니다. 오늘날 Db2는 모든 업종에서 수천 개의 비즈니스 크리티컬 애플리케이션을 지원합니다.
이제 Amazon RDS for Db2를 사용하면 AWS Management Console에서 클릭 몇 번으로, AWS Command Line Interface(AWS CLI)에서 명령을 한 번 입력하여 또는 AWS SDK에서 코드 몇 줄로 Db2 데이터베이스를 생성할 수 있습니다. AWS가 인프라의 부담을 덜어주므로, 애플리케이션의 스키마 및 쿼리 최적화와 같은 고난도 작업에 더 많은 시간을 할애할 수 있습니다.
Amazon RDS를 처음 접하거나 온프레미스 Db2를 사용해 보신 분들을 위해 Amazon RDS의 이점을 간단히 요약하겠습니다.
- Amazon RDS는 현재 온프레미스에서 사용하는 것과 동일한 Db2 데이터베이스를 제공합니다. 기존 애플리케이션은 코드 변경 없이 RDS for Db2에 다시 연결됩니다.
- 데이터베이스는 완전관리형 인프라에서 실행됩니다. 서버를 프로비저닝하거나, 패키지를 설치하거나, 패치를 설치하거나, 인프라를 운영 상태로 유지할 필요가 없습니다.
- 데이터베이스도 전체적으로 관리됩니다. 설치, 마이너 버전 업그레이드, 일일 백업, 확장 및 고가용성이 자동으로 관리됩니다.
- 인프라는 필요에 따라 스케일 업/다운할 수 있습니다. 간단하게 데이터베이스를 중지했다가 다시 시작하면 기본 하드웨어를 변경하고, 변화하는 성능 요구 사항을 충족하고, 최신 세대 하드웨어의 이점을 활용할 수 있습니다.
- Amazon RDS는 빠르고 예측 가능하며 일관된 I/O 성능을 제공하도록 설계된 다양한 유형의 스토리지를 제공합니다. 새로운 워크로드 또는 예측할 수 없는 워크로드의 경우 스토리지 규모를 자동으로 조정하도록 시스템을 구성할 수 있습니다.
- Amazon RDS가 자동으로 백업을 처리하고, 클릭 몇 번으로 백업을 새 데이터베이스에 복원할 수 있습니다.
- Amazon RDS는 고가용성 아키텍처를 배포하는 데 도움이 됩니다. Amazon RDS는 다른 가용 영역(가용 영역이란 개별 데이터 센터의 그룹을 의미합니다)에 있는 예비 데이터베이스에 데이터를 동기적으로 복제합니다. 다중 AZ 배포에서 오류가 감지되면 Amazon RDS는 데이터베이스 엔드포인트 DNS 이름을 변경하지 않고 자동으로 예비 인스턴스로 장애 조치하고 요청을 라우팅합니다. 이렇게 전환할 때 다운타임이 최소화되며 데이터 손실이 없습니다.
- Amazon RDS는 AWS의 보안 인프라를 기반으로 구축되었습니다. TLS를 사용하여 전송 중 데이터를 암호화하고, AWS Key Management Service(AWS KMS)로 관리되는 키를 사용하여 저장 데이터를 암호화합니다. 따라서 FedRAMP, GDPR, HIPAA, PCI, SOC 등과 같이 회사 또는 산업 규정을 준수하는 워크로드를 배포하는 데 도움이 됩니다.
- 타사 감사자가 여러 AWS 규정 준수 프로그램의 일환으로 Amazon RDS의 보안 및 규정 준수를 평가하며, 고객은 Amazon RDS 규정 준수 검증 전체 목록을 확인할 수 있습니다.
복원 및 가져오기와 같은 기본 Db2 도구나 AWS Database Migration Service(AWS DMS)를 사용하여 기존 온프레미스 Db2 데이터베이스를 Amazon RDS로 마이그레이션할 수 있습니다. AWS DMS를 사용하면 데이터베이스를 한 번에 마이그레이션하거나 애플리케이션이 소스 데이터베이스의 데이터를 계속 업데이트하는 동안 연속으로 마이그레이션하여, 이전 시점을 정할 수 있도록 합니다.
Amazon RDS는 Amazon RDS Enhanced Monitoring 및 Amazon CloudWatch를 포함하여 데이터베이스 인스턴스를 모니터링하는 여러 도구를 지원하며, IBM Data Management Console 또는 IBM DSMtop을 계속 사용할 수도 있습니다.
이제 작동 방식을 살펴보겠습니다.
저는 새로운 서비스를 직접 실습하여 작동 방식을 배우는 것을 좋아합니다. Db2 데이터베이스를 생성한 후 IBM에서 제공하는 표준 도구를 사용하여 연결해 보겠습니다. 이 글을 읽는 분들은 대부분 IBM Db2를 사용하셨으며 Amazon RDS에 대해 잘 모르실 것이라 가정하겠습니다.
먼저 Db2 데이터베이스를 생성합니다. 그러려면 AWS Management Console의 Amazon RDS 페이지로 이동하여 데이터베이스 생성을 선택합니다. 이 데모에서는 대부분의 기본값을 그대로 사용하겠지만 모든 섹션을 보여드리고, 고민해 보아야 하는 중요한 구성 핵심에 대해 설명하겠습니다.
Amazon RDS가 제공하는 여러 데이터베이스 엔진 중에서 Db2를 선택하겠습니다.
페이지를 아래로 스크롤하여 IBM Db2 Standard 및 엔진 버전 11.5.9를 선택합니다. 원한다면 Amazon RDS가 데이터베이스 인스턴스를 자동으로 패치하게 할 수 있습니다. 여기에서 Amazon RDS 데이터베이스 유지 관리에 대해 자세히 알아볼 수 있습니다.
프로덕션을 선택합니다. Amazon RDS는 고가용성과 빠르고 일관적인 성능을 제공하도록 조정된 기본 구성을 배포합니다.
설정에서 RDS 인스턴스의 이름을 지정하고(Db2 카탈로그 이름이 아닙니다!), 마스터 사용자 이름과 암호를 선택합니다.
인스턴스 구성에서 데이터베이스를 실행할 노드 유형을 선택합니다. 그러면 가상 서버의 하드웨어 특성(vCPU 수, 메모리 양 등)이 정의됩니다. 애플리케이션의 요구 사항에 따라 최대 32개의 vCPU와 128GiB의 RAM을 제공하는 인스턴스를 IBM Db2 Standard 인스턴스에 할당할 수 있습니다. IBM Db2 Advanced 인스턴스를 선택하면 최대 128개의 vCPU와 1TiB의 RAM을 제공하는 인스턴스를 할당할 수 있습니다. 이 파라미터는 가격에 직접적인 영향을 미칩니다.
스토리지에서 Amazon Elastic Block Store(Amazon EBS) 볼륨의 유형, 볼륨 크기, IOPS 및 처리량을 선택합니다. 이 데모에서는 기본값을 수락하겠습니다. 가격에 직접적인 영향을 미치는 파라미터이기도 합니다.
연결에서 데이터베이스를 배포할 VPC(AWS 용어로 VPC는 프라이빗 네트워크를 의미합니다)를 선택합니다. 퍼블릭 액세스에서 아니요를 선택하여 프라이빗 네트워크에서만 데이터베이스 인스턴스에 접근할 수 있도록 합니다. 이 옵션에 대해 예를 선택해야 하는 (적절한) 사용 사례가 떠오르지 않습니다.
여기서 VPC 보안 그룹도 선택합니다. 보안 그룹은 어떤 IP 주소 또는 네트워크가 데이터베이스 인스턴스의 어떤 TCP 포트에 액세스할 수 있는지 정의하는 네트워크 필터입니다. 애플리케이션이 Db2 데이터베이스에 연결할 수 있도록 TCP 50000 포트가 열려 있는 보안 그룹을 선택하거나 생성해야 합니다.
나머지 옵션은 전부 기본값으로 두겠습니다. 페이지 맨 아래에서 추가 구성 섹션을 열어야 합니다. 이 섹션에서 초기 데이터베이스 이름을 지정할 수 있습니다. 여기에서 Db2 데이터베이스의 이름을 지정하지 않을 경우 유일한 옵션은 해당 인스턴스에서 기존 Db2 데이터베이스 백업을 복원하는 것입니다.
이 섹션에는 Amazon RDS 자동 백업에 대한 파라미터도 있습니다. 기간 및 백업 보존 기간을 선택할 수 있습니다.
전부 기본값을 수락하고 데이터베이스 생성을 선택하겠습니다.
몇 분 후 데이터베이스를 사용할 수 있게 됩니다.
데이터베이스 인스턴스 Endpoint의 DNS 이름을 선택하고, 동일한 네트워크에서 실행되는 Linux 시스템에 연결합니다. IBM 웹 사이트에서 다운로드한 Db2 클라이언트 패키지를 설치한 후, 다음 명령을 입력하여 데이터베이스에 연결합니다. 여기에 Amazon RDS와 관련된 내용은 없습니다.
db2 catalog TCPIP node blognode remote awsnewsblog-demo.abcdef.us-east-2.rds-preview.amazonaws.com server 50000
db2 catalog database NEWSBLOG as blogdb2 at node blognode authentication server_encrypt
db2 connect to blogdb2 user admin using MySuperPassword
연결되면 인기 있는 Db2Tutorial 웹 사이트에서 샘플 데이터 세트와 스크립트를 다운로드합니다. 방금 생성한 데이터베이스에 대해 스크립트를 실행합니다.
wget https://www.db2tutorial.com/wp-content/uploads/2019/06/books.zip
unzip books.zip
db2 -stvf ./create.sql
db2 -stvf ./data.sql
db2 "select count(*) author_count from authors"
보시는 것처럼, 데이터베이스에 연결하고 사용할 때 Amazon RDS와 관련된 내용은 없습니다. 표준 Db2 도구와 스크립트를 사용합니다.
추가로 알릴 내용
Amazon RDS for Db2를 사용하려면 자체 Db2 라이선스를 가져와야 합니다. Db2 인스턴스를 시작하기 전에 IBM 고객 ID와 사이트 번호를 입력해야 합니다.
이렇게 하려면 사용자 지정 DB 파라미터 그룹을 생성하고, 생성할 때 데이터베이스 인스턴스에 연결해야 합니다. DB 파라미터 그룹은 하나 이상의 DB 인스턴스에 적용되는 엔진 구성 값의 컨테이너 역할을 합니다. Db2 파라미터 그룹에는 IBM Db2 라이선스와 관련된 두 개의 파라미터, 즉 IBM 고객 번호(rds.ibm_customer_id
)와 IBM 사이트 번호(rds.ibm_site_id
)가 있습니다.
사이트 번호를 모르는 경우 IBM 영업 조직에 문의하여 최근 자격 증명(Proof-of-Entitlement, PoE), 인보이스 또는 판매 주문서 사본을 요청하세요. 모든 문서에는 사이트 번호가 포함되어야 합니다.
요금 및 가용성
Amazon RDS for Db2는 중국과 GovCloud를 제외한 모든 AWS 리전에서 사용할 수 있습니다.
Amazon RDS 요금은 온디맨드 방식이며, 선결제 또는 구독 방식은 없습니다. 데이터베이스가 실행되는 시간당 요금 + 프로비저닝된 데이터베이스 스토리지 및 사용한 백업 스토리지의 월별 GB당 요금 + 프로비저닝한 IOPS 개수당 요금만 지불하면 됩니다. Amazon RDS for Db2 요금 페이지에 자세한 리전별 요금 정보가 나와 있습니다. 앞서 언급했듯이, Amazon RDS for Db2를 사용하려면 자체 Db2 라이선스를 가져와야 합니다.
이미 Amazon RDS를 알고 있다면 애플리케이션 개발자가 사용할 수 있는 새로운 데이터베이스 엔진을 갖게 되어 기쁜 것이고, 온프레미스 환경에서 넘어왔다면 Amazon RDS가 제공하는 단순성과 자동화가 마음에 들 것입니다.
Amazon RDS for Db2 설명서 페이지에서 자세한 내용을 알아볼 수 있습니다. 지금 바로 Amazon RDS for Db2를 사용하여 첫 번째 데이터베이스를 배포하세요!