IBM Db2 데이터베이스에서 Amazon S3에 직접 DB2 로그 아카이빙 활성화 Amazon S3 Db2 - 권장 가이드

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

IBM Db2 데이터베이스에서 Amazon S3에 직접 DB2 로그 아카이빙 활성화 Amazon S3 Db2

Ambarish Satarkar, Amazon Web Services

요약

이 패턴은 스테이징 영역을 사용하지 않고 IBM Db2에서 생성한 아카이브 로그의 카탈로그 스토리지로 Amazon Simple Storage Service(Amazon S3)를 사용하는 방법을 설명합니다.

logarchmeth1logarchmeth2 로그 아카이브 메서드 구성 파라미터에 DB2REMOTE Amazon S3 스토리지를 지정할 수 있습니다. logarchmeth1 파라미터를 사용하여 현재 로그 경로에서 아카이브되는 로그의 기본 대상을 지정할 수 있습니다. 이 기능을 사용하면 스테이징 영역을 사용하지 않고도 Amazon S3에서 직접 트랜잭션 로그를 아카이브하고 검색할 수 있습니다.

Amazon S3는 업로드된 데이터를 최소 3개의 디바이스에 단일로 저장합니다 AWS 리전. 모든 규모 및 산업의 수백만 고객이 고가용성, 유연한 스토리지 옵션, 수명 주기 정책 및 보안을 고려하여 엔터프라이즈 백업을 저장하는 데 Amazon S3를 사용합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성. AWS 계정

  • Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 실행되는 IBM Db2 데이터베이스입니다.Amazon EC2

  • AWS Command Line Interface (AWS CLI) 설치됨

  • Db2 EC2 인스턴스에 설치된 libcurl 및 libxml2. https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home

제한 사항

  • Db2 11.5.7 이상만 Amazon S3 스토리지에 직접 로그 아카이빙을 허용합니다.

  • 일부 AWS 서비스 는 전혀 사용할 수 없습니다 AWS 리전. 리전 가용성은 AWS 리전별 서비스를 참조하세요. 특정 엔드포인트는 서비스 엔드포인트 및 할당량을 참조하고 서비스 링크를 선택합니다.

  • 모든 구성에서 Amazon S3에는 다음과 같은 제한 사항이 있습니다.

    • AWS Key Management Service (AWS KMS)는 지원되지 않습니다.

    • AWS 역할 기반(AWS Identity and Access Management (IAM)) 또는 토큰 기반(AWS Security Token Service (AWS STS)) 자격 증명은 지원되지 않습니다.

제품 버전

  • AWS CLI 버전 2 이상

  • IBM Db2 11.5.7 이상

  • Linux SUSE Linux Enterprise Server(SLES) 11 이상

  • Red Hat Enterprise Linux(RHEL) 6 이상

  • Windows Server 2008 R2, 2012(R2), 2016 또는 2019

아키텍처

다음 다이어그램은이 패턴의 구성 요소와 워크플로를 보여줍니다.

Db2에서 생성된 아카이브 로그의 카탈로그 스토리지에 Amazon S3를 사용하는 워크플로입니다.

의 아키텍처에는 다음이 AWS 클라우드 포함됩니다.

  • Virtual Private Cloud(VPC) - 리소스를 시작하는의 논리적으로 격리된 섹션 AWS 클라우드 입니다.

  • 가용 영역 - 내의 격리된 데이터 센터에서 Db2 LUW(Linux, Unix, Windows) 워크로드를 실행하여 고가용성을 제공합니다 AWS 리전.

  • 퍼블릭 서브넷 - 관리자에게 RDP(Remote Desktop Protocol) 액세스 권한과 NAT 게이트웨이를 통한 인터넷 연결을 제공합니다.

  • 프라이빗 서브넷 - Db2 LUW 데이터베이스를 호스팅합니다. Db2 LUW 인스턴스는 LOGARCHMETH1 파라미터로 구성됩니다. 파라미터는 게이트웨이 엔드포인트를 통해 데이터베이스 로그 아카이브 파일을 Amazon S3 경로에 직접 씁니다.

다음은 지원을 AWS 서비스 제공합니다.

  • Amazon S3 - Db2 로그 아카이브 파일의 내구성 있고 확장 가능한 스토리지 위치 역할을 합니다.

  • Amazon Elastic File System(Amazon EFS) - Db2가 데이터베이스 백업 및 스테이징에 사용할 수 있는 완전 관리형 공유 파일 시스템을 제공합니다. Db2는 Amazon S3에 보관되기 전에 Amazon EFS를 로그 파일의 탑재 지점으로 사용할 수도 있습니다.

  • Amazon CloudWatch - Db2 및 기본 EC2 인스턴스에서 지표, 로그 및 이벤트를 수집하고 모니터링합니다. CloudWatch를 사용하여 성능 또는 가용성 문제에 대한 경보, 대시보드 및 자동 응답을 생성할 수 있습니다.

자동화 및 규모 조정

  • 이 패턴은 Db2 로그 아카이브 백업을 저장하는 완전 자동화된 솔루션을 제공합니다.

  • 동일한 Amazon S3 버킷을 사용하여 여러 Db2 데이터베이스의 로그 아카이브를 활성화할 수 있습니다.

도구

AWS 서비스

  • Amazon CloudWatch를 사용하면 AWS 리소스 및에서 실행되는 애플리케이션의 지표를 실시간으로 모니터링할 AWS 수 있습니다.

  • AWS Command Line Interface (AWS CLI)는 명령줄 셸의 명령을 AWS 서비스 통해와 상호 작용하는 데 도움이 되는 오픈 소스 도구입니다.

  • Amazon Elastic Compute Cloud(Amazon EC2)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 필요한 만큼 가상 서버를 시작하고 빠르게 스케일 업하거나 스케일 다운할 수 있습니다.

  • Amazon Elastic File System(Amazon EFS)은 AWS 클라우드에서 공유 파일 시스템을 생성하고 구성하는 데 도움이 됩니다.

  • AWS IAM Identity Center를 사용하면 모든 AWS 계정 및 클라우드 애플리케이션에 대한 Single Sign-On(SSO) 액세스를 중앙에서 관리할 수 있습니다.

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

  • Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 정의한 가상 네트워크에서 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사합니다.

기타 도구

  • libcurl은 무료 클라이언트 측 URL 전송 라이브러리입니다.

  • libxml2는 무료 XML C 구문 분석기 및 도구 키트입니다.

모범 사례

  • 최소 권한 원칙을 따르고 작업을 수행하는 데 필요한 최소 권한을 부여합니다. 자세한 내용은 IAM 설명서의 최소 권한 부여보안 모범 사례를 참조하세요.

에픽

작업설명필요한 기술

를 설정합니다 AWS CLI.

를 다운로드하고 설치 AWS CLI하려면 다음 명령을 사용합니다.

i) curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ii) unzip awscliv2.zip iii) sudo ./aws/install
시스템 관리자, 관리자

AWS CLI구성.

를 구성 AWS CLI하려면 다음 명령을 사용합니다.

$ aws configure AWS Access Key ID [None]:******************************* AWS Secret Access Key [None]: *************************** Default region name [None]: < aws region > Default output format [None]: text
시스템 관리자, 관리자

IAM 사용자를 생성합니다.

나중에 Amazon S3와의 Db2 데이터베이스 연결에 사용할 IAM 사용자를 생성하려면 다음 명령을 사용합니다.

aws iam create-user --user-name <unique username>

다음은 명령의 예입니다.

aws iam create-user --user-name db_backup_user

주의

이 시나리오에서는 프로그래밍 방식 액세스 권한과 장기 보안 인증이 있는 IAM 사용자가 필요하며 이는 보안 위험을 내포합니다. 이러한 위험을 완화하려면 이러한 사용자에게 작업을 수행하는 데 필요한 권한만 제공하고 더 이상 필요하지 않은 경우 이러한 사용자를 제거하는 것이 좋습니다. 필요한 경우 액세스 키를 업데이트할 수 있습니다. 자세한 내용은 IAM 설명서의 AWS 보안 자격 증명 및 IAM 사용자의 액세스 키 관리를 참조하세요. https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey

AWS 시스템 관리자

Amazon S3 버킷을 생성합니다.

데이터베이스 백업을 저장하기 위한 Amazon S3 버킷을 생성하려면 다음 명령을 사용합니다.

aws s3api create-bucket --bucket <unique bucket name> --region <aws region>

다음은 예시 명령입니다.

aws s3api create-bucket --bucket myfirstbucket --region af-south-1

AWS 시스템 관리자

IAM 사용자에게 권한을 부여합니다.

새로 생성된 IAM 사용자에게 Amazon S3 권한을 부여하려면 다음 단계를 사용합니다.

  1. Amazon S3 버킷에 db2bucket.json 대한 새 IAM 정책 파일을 생성하려면 다음 명령을 사용합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::myfirstbucket" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::myfirstbucket/*" ] } ] }
  2. db2bucket.json 파일을 기반으로 IAM 정책을 생성합니다. JSON 출력에는 정책의 Amazon 리소스 이름(ARN)이 표시됩니다"Arn": "arn:aws:iam::111122223333:policy/db2s3policy".

    aws iam create-policy \ --policy-name db2s3policy \ --policy-document file://db2bucket.json
  3. 정책 ARN을 사용하여 IAM 정책을 연결합니다.

    aws iam attach-user-policy --user-name db_backup_user --policy-arn "arn:aws:iam::111122223333:policy/db2s3policy"
시스템 관리자, 관리자

액세스 키를 생성합니다.

DB2 인스턴스에서 Amazon S3에 프로그래밍 방식으로 액세스하는 액세스 키를 생성하려면 다음 명령을 사용합니다.

aws iam create-access-key --user-name <username>

다음은 명령의 예입니다.

aws iam create-access-key --user-name db_backup_user

주의

이 시나리오에서는 프로그래밍 방식 액세스 권한과 장기 보안 인증이 있는 IAM 사용자가 필요하며 이는 보안 위험을 내포합니다. 이러한 위험을 완화하려면 이러한 사용자에게 작업을 수행하는 데 필요한 권한만 제공하고 더 이상 필요하지 않은 경우 이러한 사용자를 제거하는 것이 좋습니다. 필요한 경우 액세스 키를 업데이트할 수 있습니다. 자세한 내용은 IAM 설명서의 AWS 보안 자격 증명 및 IAM 사용자의 액세스 키 관리를 참조하세요. https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey

AWS 시스템 관리자

PKCS 키 스토어를 생성합니다.

PKCS 키 스토어를 생성하여 키를 저장하고 보안 액세스 키를 생성하여 데이터를 Amazon S3로 전송하려면 다음 명령을 사용합니다.

gsk8capicmd_64 -keydb -create -db "/db2/db2<sid>/.keystore/db6-s3.p12" -pw "<password>" -type pkcs12 -stash
AWS 시스템 관리자

키 스토어를 사용하도록 DB2를 구성합니다.

keystore_locationkeystore_type 파라미터와 함께 키 스토어를 사용하도록 DB2를 구성하려면 다음 명령을 사용합니다.

db2 "update dbm cfg using keystore_location /db2/db2<sid>/.keystore/db6-s3.p12 keystore_type pkcs12"
AWS 시스템 관리자

DB2 스토리지 액세스 별칭을 생성합니다.

스토리지 액세스 별칭은 사용할 Amazon S3 버킷을 지정합니다. 또한 로컬 키 스토어에 저장된 사용자 이름 및 암호와 같은 연결 세부 정보를 암호화된 형식으로 제공합니다. 자세한 내용은 IBM Db2 설명서의 카탈로그 스토리지 ACCESS 명령을 참조하세요.

스토리지 액세스 별칭을 생성하려면 다음 구문을 사용합니다.

db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> user '<access_key>' password '<secret_access_key>' container '<bucket_name>'"

다음은 예제입니다.

db2 "catalog storage access alias DB2BKPS3 vendor S3 server s3.us-west-2.amazonaws.com user '*******************' password '*********************' container 'myfirstbucket'"
AWS 시스템 관리자
작업설명필요한 기술

LOGARCHMETH1 위치를 업데이트합니다.

이전에 정의한 스토리지 액세스 별칭을 사용하려면 LOGARCHMETH1 데이터베이스 파라미터를 업데이트하고 다음 명령을 사용합니다.

db2 update db cfg for <DBNAME> using LOGARCHMETH1 'DB2REMOTE://<storage_alias_name>//<sub folder>'

로그를 다른 파일과 분리하려면 S3 버킷 내에 로그를 저장할 하위 디렉터리(즉, Amazon S3 버킷 접두사)를 지정합니다. TESTDB_LOGS

다음은 예제입니다.

db2 update db cfg for ABC using LOGARCHMETH1 'DB2REMOTE://DB2BKPS3//TESTDB_LOGS/'

다음 메시지가 표시됩니다. DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.

AWS 시스템 관리자

DB2를 다시 시작합니다.

로그 아카이빙을 위해 DB2 인스턴스를 재구성한 후 다시 시작합니다.

그러나 LOGARCHMETH1 가 이전에 파일 시스템 위치로 설정된 경우 다시 시작할 필요가 없습니다.

관리자, 시스템 관리자
작업설명필요한 기술

Amazon S3에서 아카이브 로그를 확인합니다.

이때 데이터베이스는 트랜잭션 로그를 Amazon S3 스토리지에 직접 보관하도록 완전히 구성됩니다. 구성을 확인하려면 데이터베이스에서 트랜잭션 활동을 실행하여 로그 공간 소비(및 아카이빙)를 시작합니다. 그런 다음 Amazon S3의 아카이브 로그를 확인합니다.

관리자, 시스템 관리자

에서 아카이브 로그 구성을 확인합니다db2diag.log.

Amazon S3에서 아카이브 로그를 확인한 후 DB2 진단 로그에서 db2diag.log다음 메시지를 찾습니다.

MESSAGE : ADM1846I  Completed archive for log file "S0000079.LOG" to Completed archive for log file S0000080.LOG to DB2REMOTE://<AWS S3 Bucket Name>/<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/. MESSAGE : ADM1846I  Completed archive for log file "S0000080.LOG" to Completed archive for log file S0000081.LOG to DB2REMOTE://<AWS S3 Bucket Name> /<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/.

이 메시지는 닫힌 DB2 트랜잭션 로그 파일이 (원격) Amazon S3 스토리지에 아카이브되고 있음을 확인합니다.

AWS 시스템 관리자

관련 리소스

AWS 서비스 설명서

IBM 리소스