

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

# JDBC를 사용하여 데이터베이스에 연결
<a name="connecting-via-jdbc"></a>

이 가이드에서는 **Java Database Connectivity**(JDBC)를 사용하여 데이터베이스를 Amazon Connect Decisions에 연결하는 방법을 안내합니다. 데이터베이스 자격 증명에 대한 보안 암호화를 설정하고 Amazon Connect Decisions가 데이터에 액세스하는 데 사용할 수 있는 연결을 설정합니다.

## JDBC 연결이란 무엇이며 언제 사용해야 합니까?
<a name="connecting-via-jdbc-what-is-jdbc"></a>

JDBC 연결을 사용하면 Amazon Connect Decisions가 CSV 파일을 내보내고 업로드하거나 자체 추출, 변환, 로드(ETL) 파이프라인을 S3로 설정할 필요 없이 기존 데이터베이스에 연결하여 데이터를 읽을 수 있습니다. 이 접근 방식은 다음과 같은 경우에 이상적입니다.
+ 데이터가 AWS Glue 호환 관계형 데이터베이스에 이미 저장되어 있습니다. 호환되는 데이터베이스 및 버전은 [이 가이드를](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect-jdbc-home.html) 참조하세요.
+ 수동 파일 내보내기 없이 실시간 또는 near-real-time 데이터 액세스를 원하는 경우
+ 데이터 볼륨이 크고 자주 업데이트됨
+ 데이터를 복제하는 대신 현재 위치에 보관하는 것이 좋습니다.
+ 더 작은 데이터 세트로 작업하거나 파일 기반 업로드를 선호하는 경우 필요에 따라 표준 CSV 업로드 프로세스가 더 간단할 수 있습니다. 이 프로세스에 대한 자세한 내용은 데이터 온보딩 사용 설명서를 참조하세요.

## 사전 조건
<a name="connecting-via-jdbc-prerequisites"></a>

시작하기 전에 다음을 갖추었는지 확인하세요.
+ KMS 키 및 Secrets Manager 리소스를 생성할 수 있는 권한이 있는 AWS 계정
+ AWS 계정 ID 및 Amazon Connect 결정이 운영될 리전
+ 데이터베이스 연결 세부 정보: 호스트 이름, 포트, 데이터베이스 이름 및 자격 증명
+ 연결을 확인하기 위한 데이터베이스에 대한 관리 액세스
+ AWS 서비스의 연결을 수락하도록 구성된 데이터베이스

## 고객 관리형 KMS 키 생성
<a name="connecting-via-jdbc-create-kms-key"></a>

데이터베이스를 Amazon Connect Decisions에 연결하기 전에 데이터베이스 자격 증명에 대한 암호화를 설정해야 합니다. AWS Key Management Service (KMS)는이 보안 계층을 제공하여 연결 세부 정보를 보호합니다.

### KMS 키 생성
<a name="connecting-via-jdbc-create-your-kms-key"></a>

1. **AWS KMS 콘솔로 이동**
   + 브라우저에서 AWS Management Console을 엽니다.
   + 상단의 검색 창에 "KMS"를 입력하고 결과에서 "Key Management Service"를 선택합니다.
   + 그러면 암호화 키를 관리할 KMS 대시보드가 열립니다.

1. **키 생성 시작**
   + KMS 대시보드에서 오른쪽 상단의 **키 생성** 버튼을 찾아 클릭합니다.
   + 그러면 설정 프로세스를 안내하는 키 생성 마법사가 시작됩니다.

1. **키 유형 및 사용량 구성**
   + "키 구성" 페이지에서 키 유형으로 **대칭**을 선택합니다(기본 및 권장 옵션).
   + 키 사용에서 "암호화 및 복호화"를 선택한 상태로 유지

1. **키 식별 세부 정보 설정**
   + "별칭" 필드에 다음과 같이 키를 설명하는 이름을 입력합니다. `aws-supply-chain-database-key` 
   + "설명" 필드에 "Amazon Connect Decisions 데이터베이스 자격 증명의 암호화 키"와 같은 컨텍스트를 추가합니다.
   + 선택적으로 AWS 리소스를 구성하고 추적하는 데 도움이 되는 태그를 추가합니다(예: 키: "프로젝트", 값: "Amazon Connect 결정").

1. **키 관리 권한 정의**
   + 이 키를 관리할 수 있어야 하는 IAM 사용자 또는 역할 선택(정책 생성, 삭제, 수정)
   + 필요한 경우 나중에 키를 수정할 수 있도록 최소한 자체 관리자 역할을 포함합니다.
   + 이러한 관리자는 키를 관리할 수 있지만 암호화/암호 해독에 사용할 수 있는 권한은 자동으로 없습니다.
   + "키 삭제" 섹션에서 키 관리자가이 키를 삭제하도록 허용합니다(기본 및 권장 옵션).

1. **키 사용 권한 정의**
   + 이 페이지에는 키를 사용할 수 있는 IAM 사용자 및 역할을 선택하는 옵션이 표시됩니다.
   + 여기에서 특정 사용자 선택을 건너뛰면 다음 단계에서 서비스 권한을 구성합니다.

1. **Amazon Connect Decisions 서비스에 대한 키 정책 구성**
   + 기본 JSON이 있는 정책 편집기가 표시됩니다.
   + KMS 키 정책 편집기에서 기존 "Statement" 배열에 다음 문을 추가합니다.
   + 이 정책은 계정에 모든 권한을 부여하고 Amazon Connect Decisions의 서비스(Secrets Manager 및 Glue)가 데이터베이스 자격 증명을 해독하도록 허용합니다.

   ```
   {
     "Sid": "Allow GDIS service to decrypt",
     "Effect": "Allow",
     "Principal": {
       "Service": "scn.amazonaws.com"
     },
     "Action": [
       "kms:Decrypt",
       "kms:DescribeKey",
       "kms:CreateGrant",
       "kms:GenerateDataKeyWithoutPlaintext"
     ],
     "Resource": "*"
   }
   ```

1. **검토 및 완료**
   + 요약 페이지에서 모든 구성 설정 검토
   + 별칭, 설명 및 정책이 올바른지 확인
   + **완료**를 클릭하여 키를 생성합니다.
   + 생성되면 새 키가 목록에 나타나는 KMS 대시보드로 돌아갑니다.

### 기대할 수 있는 사항
<a name="connecting-via-jdbc-kms-what-to-expect"></a>

키 생성은 즉시 이루어집니다. 생성되면 KMS 콘솔에 "Enabled" 상태의 새 키가 나열됩니다. 이제 키가 Secrets Manager에서 데이터베이스 자격 증명을 암호화할 준비가 되었습니다.

## AWS Secrets Manager 구성
<a name="connecting-via-jdbc-configure-secrets-manager"></a>

이제 KMS 키가 있으므로 AWS Secrets Manager에서 보안 암호를 생성하여 데이터베이스 자격 증명을 안전하게 저장한 다음 Amazon Connect Decisions가이 보안 암호에 액세스할 수 있도록 허용하는 리소스 정책을 구성합니다.

### 보안 암호 생성
<a name="connecting-via-jdbc-create-your-secret"></a>

1. **AWS Secrets Manager로 이동**
   + AWS Management Console 검색 창에 "Secrets Manager"를 입력합니다.
   + 결과에서 "Secrets Manager"를 선택하여 서비스 대시보드를 엽니다.

1. **새 보안 암호 생성 시작**
   + **새 보안 암호 저장** 버튼을 클릭합니다.
   + "보안 암호 유형 선택" 페이지에서 **다른 유형의 보안 암호를** 선택합니다(이렇게 하면 보안 인증 정보를 유연하게 구성할 수 있음).

1. **데이터베이스 자격 증명 입력**
   + 키-값 페어 섹션에서 데이터베이스 연결 세부 정보를 **문자열**로 추가합니다.

   ```
   Key: username, Value: your database username
   Key: password, Value: your database password
   Key: host, Value: your database hostname (e.g., database.example.com)
   Key: port, Value: your database port (e.g., 3306 for MySQL)
   Key: database, Value: your database name
   ```

1. **암호화 키 선택**
   + "암호화 키"에서 **AWS KMS 키 선택을** 선택합니다.
   + 드롭다운에서 1단계에서 생성한 KMS 키(예: `aws-supply-chain-database-key`)를 선택합니다.
   + 이렇게 하면 자격 증명이 고객 관리형 키로 암호화됩니다.

1. **보안 암호 이름 지정**
   + 와 같이 암호를 설명하는 이름을 입력합니다. `aws-supply-chain-production-database` 
   + 선택적으로 "Amazon Connect Decisions 프로덕션 환경의 데이터베이스 자격 증명"과 같은 설명을 추가합니다.
   + 조직에 필요한 경우 태그를 추가합니다(예: 키: "Environment", 값: "Production").

1. **리소스 권한 추가**
   + "권한 편집"을 클릭합니다. 정책 편집기에서 다음 정책을 붙여 넣습니다. 이 정책은 Amazon Connect Decisions의 서비스가 보안 암호를 읽도록 허용합니다.

   ```
   {
     "Version" : "2012-10-17",
     "Statement" : [ {
       "Effect" : "Allow",
       "Principal" : {
         "Service" : "scn.amazonaws.com"
       },
       "Action" : [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ],
       "Resource" : "<COPY-THE-SECRET-ARN-HERE-AFTER-CREATING>"
     } ]
   }
   ```

1. **정책 저장**
   + **저장**을 클릭하여 리소스 정책을 적용합니다.
   + 이제 정책이 활성화되어 Amazon Connect Decisions가 데이터베이스 자격 증명을 검색할 수 있습니다.

1. **교체 구성(선택 사항)**
   + 이 설정의 경우 자동 교체 **비활성화를 선택하여 자동 교체**를 건너뛸 수 있습니다.
   + 보안 정책에 필요한 경우 나중에 교체를 활성화할 수 있습니다.

1. **검토 및 생성**
   + 모든 보안 암호 세부 정보 검토
   + **저장**을 클릭하여 보안 암호를 생성합니다.
   + Secrets Manager 대시보드로 돌아갑니다.

1. **보안 암호 ARN 저장**
   + 보안 암호 목록에서 새로 생성된 보안 암호를 찾습니다.
   + 보안 암호 이름을 클릭하여 세부 정보 페이지를 엽니다.
   + 상단에 보안 암호 ARN이 표시됩니다.
   + 이 ARN 복사 및 저장
   + ARN 형식은 다음과 같습니다. `arn:aws:secretsmanager:us-east-1:123456789012:secret:aws-supply-chain-production-database-AbCdEf` 

1. **리소스 권한 편집**
   + "권한 편집"을 클릭합니다.
   + 복사한 보안 암호 ARN을 붙여넣고를 복사한 ARN`<COPY-THE-SECRET-ARN-HERE-AFTER-CREATING>`으로 바꿉니다.
   + **저장**을 클릭하여 정책을 연결합니다.

### 기대할 수 있는 사항
<a name="connecting-via-jdbc-secrets-what-to-expect"></a>

이제 보안 암호가 안전하게 저장되고 KMS 키로 암호화됩니다. Amazon Connect Decisions의 서비스는 데이터베이스 연결을 설정할 때 자격 증명을 검색할 수 있는 권한이 있지만 자격 증명은 저장 및 전송 중에 암호화된 상태로 유지됩니다.

## 데이터베이스를 Amazon Connect 결정에 연결
<a name="connecting-via-jdbc-connect-database"></a>

KMS 키와 보안 암호가 구성되면 Amazon Connect 결정에서 JDBC 연결을 설정할 준비가 된 것입니다.

### JDBC 연결 구성
<a name="connecting-via-jdbc-configure-connection"></a>

1. **Amazon Connect 결정 > 데이터 관리로 이동**
   + Amazon Connect Decisions 인스턴스에 로그인
   + 기본 탐색에서 "데이터 관리"를 선택합니다.
   + 탭 탐색 내에서 "연결"로 이동합니다.
   + "새 연결"을 선택하여 새 연결을 생성합니다.

1. **연결 세부 정보 입력**
   + **연결 이름(필수):**이 연결의 고유 식별자를 입력합니다(예: "production-database").
   + **설명(선택 사항):** 팀이 액세스하는 데이터를 이해하는 데 도움이 되도록이 연결의 용도 및 사용에 대한 세부 정보를 추가합니다.
   + **JDBC URL(필수):** 전체 JDBC 연결 문자열을 형식으로 입력합니다`jdbc:<database-type>://<hostname>:<port>/<database>`(예: `jdbc:postgresql://db.example.com:5432/mydb`).
   + **스키마 이름(선택 사항):** 필요한 경우 데이터베이스 스키마를 지정합니다(예: "public", "dbo", "myschema"). 데이터베이스의 기본 스키마를 사용하려면 비워 둡니다.
   + **보안 암호 ARN(필수):** 2단계에서 저장한 보안 암호 ARN을 붙여넣습니다. 이렇게 하면 Amazon Connect Decisions가 Secrets Manager에서 데이터베이스 자격 증명을 안전하게 검색할 수 있습니다.
   + **SSL 연결 적용:** 데이터베이스 연결에 SSL/TLS 암호화를 요구하려면이 확인란을 선택(권장) 상태로 유지합니다.
   + **VPC 엔드포인트 서비스 이름(필수):** AWS PrivateLink를 통한 프라이빗 연결을 위해 VPC 엔드포인트 서비스 이름을 입력합니다(형식: `com.amazonaws.vpce.<region>.vpce-svc-xxxxxxxxx`).

1. **데이터베이스에 연결**
   + "Connect"를 클릭하여 연결을 테스트하고 설정합니다. Amazon Connect Decisions는 제공된 자격 증명을 사용하여 데이터베이스에 성공적으로 연결할 수 있는지 확인합니다. 이 단계는 최대 2분이 걸릴 수 있으므로 연결 중에이 화면을 벗어나지 마십시오.
   + 연결이 성공하면 테이블 선택으로 자동 이동합니다.
   + 연결에 실패하는 경우:
     + 연결 세부 정보를 검토하여 모든 필드가 정확한지 확인합니다.
       + 보안 암호 ARN이 올바른지 확인
       + 데이터베이스 자격 증명이 정확한지 확인
       + JDBC URL 형식이 올바른지 확인
       + AWS 서비스의 연결을 수락하도록 데이터베이스가 구성되어 있는지 확인합니다.
       + KMS 키 및 Secrets Manager 정책이 올바르게 구성되었는지 확인
     + 채팅 경험을 사용하여 "내 데이터베이스 연결이 실패하는 이유는 무엇입니까?"와 같은 질문을 하여 연결 문제를 해결할 수도 있습니다. 또는 "JDBC 연결을 디버깅할 수 있도록 도와주세요"

1. **수집할 테이블 선택**
   + 연결되면 데이터베이스에서 사용 가능한 모든 테이블을 보여주는 테이블 선택 화면이 표시됩니다.
   + 수집하려는 각 테이블 옆의 확인란을 선택합니다.

1. **테이블 새로 고침 일정 구성**
   + 선택한 각 테이블에 대해 작업 열에서 점 3개 메뉴를 클릭하고 "Schedule refresh"를 선택합니다.
   + 로드 세부 정보 구성 대화 상자에서 다음을 설정합니다.
     + **Cadence:** 새로 고침 빈도(시간별, 일별, 주별 또는 사용자 지정)
     + **시작 시간:** 새로 고침이 시작되는 시간(시간대 오프셋과 함께 UTC로 표시됨)
     + **새로 고침 유형:** 새로 고침 완료(모든 데이터 교체) 또는 증분 업데이트(기존에 새 데이터 추가, 타임스탬프 기록 열 선택 필요)를 선택합니다.
     + 필요에 따라 각 테이블에 대해 반복합니다.
   + 모든 테이블이 구성되면 매핑 시작을 클릭합니다.

1. **데이터 매핑 계속**
   + 이 시점부터 경험은 데이터 온보딩 흐름과 동일합니다.
   + 데이터 온보딩 사용 설명서의 데이터 매핑 섹션에 따라 설정을 완료합니다.

### 기대할 수 있는 사항
<a name="connecting-via-jdbc-connection-what-to-expect"></a>

연결이 설정되고 테이블이 선택되면 Amazon Connect Decisions는 데이터베이스에서 데이터를 읽을 수 있습니다. AWS Secrets Manager를 통해 암호화되고 관리되는 자격 증명을 사용하여 연결이 활성 상태로 안전하게 유지됩니다. Amazon Connect 결정에서 자격 증명을 수동으로 업데이트할 필요가 없습니다. Secrets Manager에서 변경한 내용은 자동으로 반영됩니다.

## 모범 사례
<a name="connecting-via-jdbc-best-practices"></a>

### 보안 및 액세스 관리
<a name="connecting-via-jdbc-security-access-management"></a>
+ 보안 **인증 정보 저장**: 항상 AWS Secrets Manager를 사용하여 데이터베이스 보안 인증 정보를 저장하고 연결 문자열 또는 구성 파일에 보안 인증 정보를 하드코딩하지 않습니다.
+ **SSL/TLS 암호화 활성화**: 전송 중 데이터가 암호화되도록 'SSL 연결 적용' 옵션을 활성화된 상태로 유지합니다.
+ **KMS 및 Secrets Manager 정책을 정기적으로 검토**: 승인된 서비스 및 계정만 암호화 키 및 보안 암호에 액세스할 수 있는지 확인합니다.
+ **최소 권한 액세스 사용**: Amazon Connect Decisions가 연결에 사용할 데이터베이스 사용자에게 필요한 최소 권한만 부여합니다.

### 연결 구성
<a name="connecting-via-jdbc-connection-configuration"></a>
+ **설명 연결 이름 사용**: 환경 및 목적을 나타내는 명확하고 의미 있는 이름을 선택합니다(예: "db1"이 아닌 "production-inventory-db").
+ **연결 문서화**: 설명 필드를 사용하여 연결이 액세스하는 데이터, 연결을 소유한 사람 및 특별한 고려 사항을 기록해 둡니다.
+ **계속하기 전에 연결 테스트**: 테이블을 선택하고 새로 고침 일정을 구성하기 전에 항상 연결이 작동하는지 확인합니다.
+ **JDBC URL 형식 검증**: 연결 오류를 방지하려면 JDBC URL 구문이 데이터베이스 유형과 일치하는지 다시 확인합니다.

### 데이터 새로 고침 전략
<a name="connecting-via-jdbc-data-refresh-strategy"></a>
+ **적절한 새로 고침 주기 선택**: 소스 데이터가 변경되는 빈도와 비즈니스 요구 사항에 따라 새로 고침 빈도를 선택합니다.
+ **활동이 적은 기간 동안 새로 고침 예약**: 성능 영향을 최소화하기 위해 데이터베이스의 부하가 낮을 때 새로 고침 시간 구성
+ **가능한 경우 증분 업데이트 사용**: 자주 변경되는 대규모 데이터 세트의 경우 증분 업데이트가 전체 새로 고침보다 더 효율적입니다.
+ **의미 있는 타임스탬프 열 선택**: 증분 업데이트를 사용하는 경우 레코드가 생성되거나 수정된 시기를 정확하게 반영하는 열을 선택합니다.

### 문제 해결을 위한 채팅 작업
<a name="connecting-via-jdbc-chat-troubleshooting"></a>
+ **요청에 구체적으로 명시**: 연결 또는 매핑 문제 해결에 도움을 요청할 때 명확한 컨텍스트 제공
+ **설명 요청**: 권장 사항 또는 생성된 SQL 쿼리를 이해하지 못하는 경우 설명을 요청합니다.
+ **수락하기 전에 모든 SQL 변경 사항 테스트**: 미리 보기 기능을 사용하여 변환이 실제 데이터와 함께 예상대로 작동하는지 확인합니다.
+ **채팅을 활용하여 문제 해결**: 연결에 실패하거나 새로 고침에 오류가 발생하면 "내 연결이 실패하는 이유는 무엇입니까?"와 같은 진단 질문을 합니다. 또는 "이 새로 고침 오류를 이해하도록 도와주세요"

### 지속적 유지 관리
<a name="connecting-via-jdbc-ongoing-maintenance"></a>
+ **새로 고침 실행을 정기적으로 모니터링**: 데이터 관리의 대상 및 소스 탭을 확인하여 새로 고침이 성공적으로 완료되었는지 확인합니다.
+ **오류 즉시 해결**: Amazon Connect Decisions에서 오류를 새로 고치라는 알림을 받으면 데이터 격차를 방지하기 위해 문제를 신속하게 조사하고 해결합니다.
+ 보안 **인증 정보 업데이트**: 데이터베이스 암호가 변경되면 AWS Secrets Manager에서 업데이트하면 Amazon Connect Decisions에서 새 보안 인증 정보를 자동으로 사용합니다.
+ 사용자 **지정 구성 문서화**: 팀 참조를 위해 특별 새로 고침 일정, 변환 로직 또는 연결 요구 사항에 대한 메모를 보관합니다.
+ **테이블 선택 항목 주기적으로 검토**: 데이터 요구 사항이 발전함에 따라 수집 중인 테이블과 새로 고침 일정이 여전히 비즈니스 요구 사항에 맞는지 다시 검토합니다.