

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

# 문제 해결 및 진단
<a name="dotnet-migrating-applications-troubleshooting"></a>

**AI 지원 문제 해결을 위해 Amazon Q Developer CLI 사용**  
 Amazon Q Developer CLI를 사용하면 환경 문제를 신속하게 해결할 수 있습니다. Q CLI는 환경 상태를 확인하고, 이벤트를 검토하고, 로그를 분석하고, 명확한 질문을 하여 솔루션을 제공합니다. 자세한 내용과 자세한 안내는 AWS 블로그의 [Amazon Q Developer CLI를 사용한 Elastic Beanstalk 환경 문제 해결을 ](https://aws.amazon.com/blogs/devops/troubleshooting-elastic-beanstalk-environments-with-amazon-q-developer-cli/) 참조하세요.

이 섹션에서는 IIS 애플리케이션을 Elastic Beanstalk로 마이그레이션하는 과정에서 발생할 수 있는 일반적인 문제를 해결하기 위한 가이드를 제공합니다.

## 환경에 EC2 키 페어를 연결
<a name="dotnet-migrating-applications-troubleshooting-keypair"></a>

Amazon EC2 키 페어로 Elastic Beanstalk 애플리케이션에 대해 프로비저닝된 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 안전하게 로그인할 수 있습니다. 키 페어를 생성하는 방법에 대한 지침은 *Amazon EC2 사용 설명서*의 [Amazon EC2를 사용하여 키 페어 만들기](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair)를 참조하세요.

**eb migrate**에 keyname을 지정하면 Elastic Beanstalk 환경이 해당 키 페어와 연동되는 효과가 있습니다. 보안상의 이유로 EC2 인스턴스의 보안 그룹에서 포트 3389를 열지 않습니다. 초기 마이그레이션 후에는 **eb config**를 통해 3389번 포트의 트래픽을 허용하는 EC2 보안 그룹을 추가로 연결할 수 있습니다.

```
PS C:\migrations_workspace> eb migrate  `
    --keyname "my-keypair"  `
    --verbose
```

키 페어를 만들면 Amazon EC2가 해당 퍼블릭 키의 복사본을 저장합니다. 환경 인스턴스에 연결하는 데 이 키를 더 이상 사용하지 않는 경우 Amazon EC2에서 삭제해도 됩니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [키 페어 삭제](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair)를 참조하세요.

Windows용 Amazon EC2 인스턴스에 연결하는 방법에 대한 자세한 내용은 [Windows 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)을 참조하세요.

## 로그에 액세스
<a name="dotnet-migrating-applications-troubleshooting-logs"></a>

EB CLI는 EC2 인스턴스에 로그인하지 않고 Elastic Beanstalk 환경에서 로그를 가져올 수 있는 **eb logs** 기능을 제공합니다. **eb migrate**를 실행한 후에는 **eb logs --zip** 명령을 사용해 로그를 다운로드하여 `.elasticbeanstalk\logs` 디렉터리에 저장할 수 있습니다.

또는 AWS Elastic Beanstalk 콘솔을 통해 로그를 볼 수 있습니다. 자세한 내용은 [Elastic Beanstalk 환경에서 Amazon EC2 인스턴스 로그 보기](using-features.logging.md) 단원을 참조하십시오.

## 클라이언트 측 아티팩트 액세스
<a name="dotnet-migrating-applications-troubleshooting-artifacts"></a>

**eb migrate** 명령은 마이그레이션 아티팩트 디렉터리 내에서 **msdeploy**에 의해 생성된 애플리케이션 로그와 오류 로그를 저장합니다.

```
./migrations/
├── latest -> migration_20240308_123456/
└── migration_20240308_123456/
    ├── application.log
    ├── error.log
    └── upload_target\
```

## 환경 상태 모니터링
<a name="dotnet-migrating-applications-troubleshooting-health"></a>

Elastic Beanstalk은 향상된 상태 모니터링 기능을 통해 상태를 모니터링할 수 있도록 지원합니다. CPU 사용률, 지연 시간, 요청 수, 응답 코드 등 내장된 지표를 활용해 애플리케이션 인스턴스의 운영 상태를 지속적으로 추적하는 자동화된 상태 모니터링 시스템입니다.

상태 모니터링 시스템은 에이전트 기반 방식을 통해 인스턴스 수준의 데이터를 수집하고, 실시간 로깅 및 알림 기능과 통합됩니다. Elastic Load Balancing(ELB)과 Auto Scaling은 상태 변화에 동적으로 대응해 고가용성과 내결함성을 보장합니다. 향상된 상태 보고를 포함한 고급 모니터링 모드는 애플리케이션 동작을 세밀하게 파악할 수 있도록 하여 사전 대응적 문제 해결과 자동 복구 메커니즘을 가능하게 합니다.

환경의 상태를 표시하려면 EB CLI **eb health** 명령을 실행하세요. 다음과 같은 정보가 표시됩니다.
+ 인스턴스 상태
+ 애플리케이션 응답 지표
+ 시스템 리소스 사용
+ 최근 배포 이벤트

## EC2 성능 최적화
<a name="dotnet-migrating-applications-troubleshooting-performance"></a>

기본적으로 **eb migrate**는 Elastic Beanstalk의 최적의 초기 사용 경험을 제공하기 위해 [c5.2xlarge](https://aws.amazon.com/ec2/instance-types/c5/) 인스턴스 유형을 선택합니다. **--instance-type** 인수를 사용해 이 동작을 재정의할 수 있습니다.

```
PS C:\migrations_workspace> eb migrate `
    --instance-type "t3.large"
```

프로덕션 환경에서는 인스턴스 유형을 선택할 때 다음 요소를 고려하세요.
+ 애플리케이션의 메모리 요구 사항
+ 워크로드 처리용 CPU 요구 사항
+ 네트워크 성능 요구 사항
+ 비용 최적화 목표

## EBS 볼륨 구성
<a name="dotnet-migrating-applications-troubleshooting-ebs"></a>

Elastic Beanstalk은 기본적으로 사용자의 환경에 대해 루트 블록 디바이스 볼륨(`C:\`)만 생성합니다. **--ebs-snapshots** 옵션을 사용해 추가 Amazon Elastic Block Store 스냅샷 볼륨을 전달할 수 있습니다.

```
PS C:\migrations_workspace> eb migrate `
    --ebs-snapshots "snap-123456789abc"
```

Elastic Beanstalk에서 블록 디바이스 매핑을 구성하는 방법의 예시는 블로그 문서 [Elastic Beanstalk 환경에서 임시 볼륨 및 EBS 볼륨 사용자 지정](https://aws.amazon.com/blogs/devops/customize-ephemeral-and-ebs-volumes-in-elastic-beanstalk-environments/)를 참조하세요.

스토리지 요구 사항이 큰 애플리케이션의 경우 다음 옵션을 고려하세요.
+ 지속적 데이터에 EBS 볼륨 사용
+ 정적 콘텐츠를 위한 Amazon S3 구현
+ 공유 파일 시스템에 Amazon FSx for Windows File Server 사용

## 일반적인 문제 및 해결 방법
<a name="dotnet-migrating-applications-troubleshooting-common"></a>

**이벤트:** *Web Deploy 설치 누락*

Web Deploy를 찾을 수 없다는 오류가 발생하는 경우, [Microsoft Web Platform Installer](https://www.iis.net/downloads/microsoft/web-deploy)에서 Web Deploy 3.6 이상을 설치하세요. 다음 예시는 발생할 수 있는 오류 메시지를 보여줍니다.

```
Couldn't find msdeploy.exe. Follow instructions here: https://learn.microsoft.com/en-us/iis/install/installing-publishing-technologies/installing-and-configuring-web-deploy
```

**이벤트:** *마이그레이션 중 권한 문제*

권한 관련 오류가 발생하면 EB CLI를 관리자 권한으로 실행하고 있는지 확인하세요. 다음 예시는 발생할 수 있는 오류 메시지를 보여줍니다.

```
[ERROR] Access to the path 'C:\inetpub\wwwroot\web.config' is denied.
```

**이벤트:** *애플리케이션 풀 ID 관련 문제*

애플리케이션이 애플리케이션 풀 ID 문제로 인해 시작되지 않는 경우, [사용자 지정 애플리케이션 풀 설정](dotnet-migrating-applications-advanced-scenarios.md#dotnet-migrating-applications-advanced-scenarios-apppool)에 제시된 대로 애플리케이션 풀 ID를 구성하는 사용자 지정 스크립트를 생성하세요.

**이벤트:** *SSL 인증서 구성 오류*

HTTPS 바인딩이 작동하지 않는 경우, **eb mibrate** 옵션 `--ssl-certificates` 파라미터를 사용해 유효한 ACM 인증서 ARN을 지정했는지 확인하세요.

**이벤트:** *환경 생성 제한 시간*

환경 생성 시간이 초과되면 AWS Management Console의 CloudFormation 이벤트에서 특정 리소스 생성 실패를 확인합니다. 일반적인 원인에는 VPC 구성 문제 또는 서비스 제한이 포함됩니다.

## 지원 받기
<a name="dotnet-migrating-applications-troubleshooting-support"></a>

해결할 수 없는 문제가 발생하는 경우에 문의하기 전에 다음 정보를 AWS Support 수집합니다.
+ 환경 ID(`eb status`)
+ 애플리케이션 로그(`eb logs --zip`)
+ `.\migrations\latest\`의 마이그레이션 아티팩트
+ 소스 IIS 구성(`eb migrate explore --verbose`의 출력)
+ 상세 오류 메시지

Elastic Beanstalk 문제 해결에 대한 자세한 내용은 [Elastic Beanstalk 환경 문제 해결](troubleshooting.md) 섹션을 참조하세요