

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

# 모범 사례 및 문제 해결
<a name="sql-server-best-practices"></a>

현대화 프로세스 중 모범 사례, 일반적인 문제 및 해결 방법.

## ECS 애플리케이션 로그
<a name="sql-server-ecs-application-logs"></a>

### CloudWatch 로그
<a name="sql-server-cloudwatch-logs"></a>
+ 모든 ECS 컨테이너 로그는 CloudWatch Logs로 자동 전송됩니다.
+ CloudWatch 콘솔의 로그 그룹 아래 액세스 로그
+ 로그 그룹 이름 지정 형식: /aws/ecs/{application-name}
+ 각 컨테이너 인스턴스는 그룹 내에 새 로그 스트림을 생성합니다.

### 로그 보기
<a name="sql-server-viewing-logs"></a>

** AWS 콘솔을 통해:**
+ CloudWatch > 로그 그룹으로 이동
+ 애플리케이션의 로그 그룹 선택
+ 컨테이너 로그를 볼 관련 로그 스트림을 선택합니다.

** AWS CLI 사용:**

```
aws logs get-log-events --log-group-name /aws/ecs/your-app-name --log-stream-name your-stream-name
```

### 공통 로그 위치
<a name="sql-server-common-log-locations"></a>
+ 애플리케이션 로그: CloudWatch Logs
+ ECS 서비스 이벤트: ECS 콘솔 > 클러스터 > 서비스 > 이벤트 탭
+ 컨테이너 상태: ECS 콘솔 > 클러스터 > 서비스 > 작업 탭

## 데이터베이스 연결 관리
<a name="sql-server-database-connection-management"></a>

애플리케이션은 데이터베이스 연결 설정에 환경 변수를 사용합니다.

연결 문제가 발생하는 경우:
+ 환경 변수에서 현재 연결 설정 확인
+ 필요에 따라 데이터베이스 연결 문자열을 수정하도록 환경 변수 업데이트
+ 애플리케이션 재배포 없이 환경 변수 업데이트를 통해 연결 문자열을 변경할 수 있습니다.

## 데이터베이스 연결 문제
<a name="database-connection-issues"></a>

**문제:** AWS 변환을 SQL Server에 연결할 수 없음

솔루션
+  AWS 변환과 SQL Server 간의 네트워크 연결 확인
+ 보안 그룹 규칙에서 적절한 포트 액세스 확인(1433)
+ Secrets Manager에서 데이터베이스 자격 증명 확인
+ 생성된 사용자로 데이터베이스 권한 테스트
+ SQL Server가 혼합 모드 인증을 위해 구성되어 있는지 확인
+ 보안 암호에 필수 태그가 있는지 확인(프로젝트: atx-db-modernization, 소유자: 데이터베이스 커넥터)

## 방화벽 및 보안 그룹 문제
<a name="firewall-security-group-issues"></a>

**문제:** 연결 제한 시간 또는 "데이터베이스에 연결할 수 없음" 오류

**근본 원인:** 트래픽을 차단ACLs 

솔루션

1. 보안 그룹 구성 확인:
   + SQL Server 보안 그룹에 DMS Schema Conversion 보안 그룹의 포트 1433을 허용하는 인바운드 규칙이 있는지 확인합니다.
   + 소스가 IP 주소가 아닌 보안 그룹 ID(예: sg-0123456789abcdef0)인지 확인합니다.
   + DMS Schema Conversion 보안 그룹이 인스턴스 프로파일에 올바르게 지정되었는지 확인
   + 충돌하는 거부 규칙이 없는지 확인

1. 네트워크 ACLs 확인:
   + 서브넷 수준 네트워크 ACLs 포트 1433에서 인바운드 트래픽을 허용하는지 확인
   + 네트워크 ACLs 반환 트래픽에 대해 아웃바운드 임시 포트를 허용하는지 확인
   + 데이터베이스 서브넷과 DMS 서브넷 네트워크 ACLs 모두 확인

1. VPC 구성 확인:
   + DMS Schema Conversion 인스턴스와 SQL Server가 동일한 VPC에 있는지 또는 적절한 VPC 피어링이 있는지 확인
   + 라우팅 테이블이 서브넷 간 트래픽을 허용하는지 확인
   + 트래픽을 차단하는 방화벽 어플라이언스가 없는지 확인

1. 연결 테스트:
   + DMS Schema Conversion과 동일한 서브넷에서 테스트 EC2 인스턴스 시작
   + DMS Schema Conversion과 동일한 보안 그룹 연결
   + telnet 또는 SQL Server Management Studio를 사용하여 SQL Server에 대한 연결 테스트
   + 테스트에 성공하면 AWS 변환 구성에서 문제가 발생하고, 실패하면 네트워크/방화벽에서 문제가 발생합니다.

**일반적인 실수:** 포트 1433을 0.0.0.0/0(모든 소스)으로 여는 것은 보안 위험입니다. 항상 보안 그룹 기반 액세스 제어를 사용하여 DMS Schema Conversion 보안 그룹으로만 액세스를 제한합니다.

## 스키마 변환 문제
<a name="schema-conversion-issues"></a>

**문제:** 스키마 변환에 많은 작업 항목이 표시됨

솔루션
+ 변환 보고서의 작업 항목 검토
+ 영향을 기반으로 우선순위 지정
+ 복잡한 SQL 변환에 Amazon Q Developer 사용
+ 지침은 AWS Support에 문의하세요.
+ 복잡한 데이터베이스에 대한 단계별 접근 방식 고려

## 애플리케이션 변환 문제
<a name="application-transformation-issues"></a>

**문제:** 애플리케이션 변환 빌드 실패

솔루션
+ 변환 보고서의 빌드 오류 검토
+ 필요한 경우 프라이빗 NuGet 피드 구성
+ 필요한 경우 패키지 참조 업데이트
+ Windows별 종속성 확인
+ 자세한 오류에 대한 변환 로그 검토

## 데이터 마이그레이션 문제
<a name="data-migration-issues"></a>

**문제:** 데이터 마이그레이션 검증 실패

솔루션
+ 특정 실패에 대한 검증 보고서 검토
+ 데이터 유형 매핑 확인
+ 자격 증명 열 구성 확인(기본값으로 생성됨과 항상 생성됨)
+ 계산된 열 표현식 검토
+ 복잡한 데이터 문제는 AWS Support에 문의하세요.

## 리소스 정리 문제
<a name="resource-cleanup-issues"></a>

**문제:** 리소스 오류와 함께 변환 작업이 실패함

솔루션
+ 기존 DMS 리소스(마이그레이션 프로젝트, 데이터 공급자, 인스턴스 프로파일) 확인
+ 이전 시도에서 실패했거나 불완전한 리소스 정리
+ 보안 암호 삭제가 예약되지 않았는지 확인
+ DMS 및 Aurora PostgreSQL에 대한 서비스 할당량 확인
+ 정리로 문제가 해결되지 않으면 AWS Support에 문의하세요.

## 배포 관련 문제
<a name="deployment-issues"></a>

**문제:** 변환된 애플리케이션을 Aurora PostgreSQL에 연결할 수 없음

솔루션
+ PostgreSQL의 연결 문자열 형식 확인
+ 보안 그룹 규칙 확인
+ Secrets Manager에서 데이터베이스 자격 증명 확인
+ SSL/TLS가 올바르게 구성되었는지 확인
+ psql 또는 pgAdmin을 사용하여 연결 테스트

## 추가 도움말 받기
<a name="getting-additional-help"></a>

 AWS Support에 문의할 때 다음을 제공하세요.
+ 변환 작업 ID
+ AWS 계정 ID
+ 리전
+ 오류 메시지 및 스크린샷
+ 변환 로그( AWS 변환 콘솔에서 사용 가능)