문제 해결 및 진단 - AWS Elastic Beanstalk

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

문제 해결 및 진단

AI 지원 문제 해결을 위해 Amazon Q Developer CLI 사용

Amazon Q Developer CLI를 사용하면 환경 문제를 신속하게 해결할 수 있습니다. Q CLI는 환경 상태를 확인하고, 이벤트를 검토하고, 로그를 분석하고, 명확한 질문을 하여 솔루션을 제공합니다. 자세한 내용과 자세한 안내는 AWS 블로그의 Amazon Q Developer CLI를 사용한 Elastic Beanstalk 환경 문제 해결을 참조하세요.

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

환경에 EC2 키 페어를 연결

Amazon EC2 키 페어로 Elastic Beanstalk 애플리케이션에 대해 프로비저닝된 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 안전하게 로그인할 수 있습니다. 키 페어를 생성하는 방법에 대한 지침은 Amazon EC2 사용 설명서Amazon EC2를 사용하여 키 페어 만들기를 참조하세요.

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 사용 설명서키 페어 삭제를 참조하세요.

Windows용 Amazon EC2 인스턴스에 연결하는 방법에 대한 자세한 내용은 Windows 인스턴스에 연결을 참조하세요.

로그에 액세스

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

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

클라이언트 측 아티팩트 액세스

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

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

환경 상태 모니터링

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

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

환경의 상태를 표시하려면 EB CLI eb health 명령을 실행하세요. 다음과 같은 정보가 표시됩니다.

  • 인스턴스 상태

  • 애플리케이션 응답 지표

  • 시스템 리소스 사용

  • 최근 배포 이벤트

EC2 성능 최적화

기본적으로 eb migrate는 Elastic Beanstalk의 최적의 초기 사용 경험을 제공하기 위해 c5.2xlarge 인스턴스 유형을 선택합니다. --instance-type 인수를 사용해 이 동작을 재정의할 수 있습니다.

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

프로덕션 환경에서는 인스턴스 유형을 선택할 때 다음 요소를 고려하세요.

  • 애플리케이션의 메모리 요구 사항

  • 워크로드 처리용 CPU 요구 사항

  • 네트워크 성능 요구 사항

  • 비용 최적화 목표

EBS 볼륨 구성

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

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

Elastic Beanstalk에서 블록 디바이스 매핑을 구성하는 방법의 예시는 블로그 문서 Elastic Beanstalk 환경에서 임시 볼륨 및 EBS 볼륨 사용자 지정를 참조하세요.

스토리지 요구 사항이 큰 애플리케이션의 경우 다음 옵션을 고려하세요.

  • 지속적 데이터에 EBS 볼륨 사용

  • 정적 콘텐츠를 위한 Amazon S3 구현

  • 공유 파일 시스템에 Amazon FSx for Windows File Server 사용

일반적인 문제 및 해결 방법

이벤트: Web Deploy 설치 누락

Web Deploy를 찾을 수 없다는 오류가 발생하는 경우, Microsoft Web Platform Installer에서 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 문제로 인해 시작되지 않는 경우, 사용자 지정 애플리케이션 풀 설정에 제시된 대로 애플리케이션 풀 ID를 구성하는 사용자 지정 스크립트를 생성하세요.

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

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

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

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

지원 받기

해결할 수 없는 문제가 발생하는 경우에 문의하기 전에 다음 정보를 AWS Support 수집합니다.

  • 환경 ID(eb status)

  • 애플리케이션 로그(eb logs --zip)

  • .\migrations\latest\의 마이그레이션 아티팩트

  • 소스 IIS 구성(eb migrate explore --verbose의 출력)

  • 상세 오류 메시지

Elastic Beanstalk 문제 해결에 대한 자세한 내용은 Elastic Beanstalk 환경 문제 해결 섹션을 참조하세요