기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Elastic Beanstalk 문제 해결 - 범주 및 FAQ
이 항목에서는 범주별로 더 구체적인 문제 해결 팁을 제공합니다.
환경 생성 및 인스턴스 시작
이벤트: 환경을 시작하지 못함
Elastic Beanstalk가 환경을 시작하려고 하는 과정에서 장애가 발생하는 경우 이 이벤트가 발생합니다. 이벤트 페이지의 이전 이벤트는 이 문제의 근본 원인을 알려 줍니다.
이벤트: 환경 생성 작업을 완료했지만 명령 시간 제한이 있습니다. 제한 시간을 늘려 보십시오.
인스턴스에서 명령을 실행하는 구성 파일을 사용하거나 큰 파일을 다운로드하거나 패키지를 설치하는 경우, 애플리케이션을 배포하는 데 시간이 오래 걸릴 수 있습니다. 명령 시간 제한을 늘려 애플리케이션에 배포하는 동안 실행을 시작할 시간을 더 주십시오.
이벤트: [AWSEBInstanceLaunchWaitCondition] 리소스를 만들지 못함
이 메시지는 환경의 Amazon EC2 인스턴스가 시작되지 않아 Elastic Beanstalk와 통신하지 못함을 나타냅니다. 이는 인스턴스에 인터넷 연결이 없는 경우에 발생할 수 있습니다. 프라이빗 VPC 서브넷에서 인스턴스를 시작하도록 환경을 구성한 경우, 인스턴스가 Elastic Beanstalk에 연결할 수 있도록 서브넷에 NAT가 있는지 확인합니다.
이벤트: 이 리전에 서비스 역할이 필요합니다. 환경에 서비스 역할 옵션을 추가하십시오.
Elastic Beanstalk는 서비스 역할을 사용하여 환경의 리소스를 모니터링하고 관리형 플랫폼 업데이트를 지원합니다. 자세한 정보는 Elastic Beanstalk 서비스 역할 관리을 참조하세요.
배포
문제: 배포 중에 애플리케이션을 사용할 수 없음
Elastic Beanstalk는 드롭인(drop-in) 업그레이드 프로세스를 사용하기 때문에 몇 초 정도 가동이 중지될 수 있습니다. 프로덕션 환경에서 배포 효과를 최소화하려면 롤링 배포를 사용하십시오.
이벤트: AWS Elastic Beanstalk 애플리케이션 버전을 생성하지 못함
애플리케이션 소스 번들이 너무 크거나 애플리케이션 버전 할당량에 도달했을 수 있습니다.
이벤트: 환경 업데이트 작업을 완료했지만 명령 시간 제한이 있습니다. 제한 시간을 늘려 보십시오.
인스턴스에서 명령을 실행하는 구성 파일을 사용하거나 큰 파일을 다운로드하거나 패키지를 설치하는 경우, 애플리케이션을 배포하는 데 시간이 오래 걸릴 수 있습니다. 명령 시간 제한을 늘려 애플리케이션에 배포하는 동안 실행을 시작할 시간을 더 주십시오.
상태
이벤트: CPU 사용률 95.00% 초과
다른 인스턴스를 실행해 보거나 다른 인스턴스 유형을 선택하십시오.
이벤트: 탄력적 로드 밸런서 awseb-myapp
에는 정상 인스턴스가 없음
애플리케이션이 작동되는 것 같으면 애플리케이션의 상태 확인 URL이 제대로 구성되었는지 확인합니다. 그렇지 않으면 상태 화면과 환경 로그를 확인하여 자세한 내용을 참조하십시오.
이벤트: 탄력적 로드 밸런서 awseb-myapp
을 찾을 수 없음
환경의 로드 밸런서를 대역 외부에서 제거할 수 있습니다. Elastic Beanstalk에서 제공하는 확장성과 구성 옵션으로 환경의 리소스만 변경합니다. 환경을 재구축하거나 새 환경을 시작합니다.
이벤트: EC2 인스턴스 시작 실패. 새 EC2 인스턴스가 시작할 때까지 대기 중...
환경 인스턴스 유형의 가용성이 낮거나 계정에 대한 인스턴스 할당량에 도달했을 수 있습니다. 서비스 상태 대시보드
구성
이벤트: Elastic Load Balancing 대상 옵션 및 애플리케이션 Healthcheck URL 옵션의 값으로 Elastic Beanstalk 환경을 구성할 수 없습니다.
Target
네임스페이스의 aws:elb:healthcheck
옵션은 더 이상 사용되지 않습니다. 환경에서 Target
옵션 네임스페이스를 제거한 후 다시 업데이트해 보십시오.
이벤트: ELB를 동일한 AZ의 여러 서브넷에 연결할 수 없습니다.
동일한 가용 영역의 서브넷 간에 로드 밸런서를 이동하려고 하면 이 메시지가 표시될 수 있습니다. 로드 밸런서의 서브넷을 변경하려면 원래 가용 영역 밖으로 로드 밸런서를 이동한 다음 원하는 서브넷이 있는 원래 가용 영역으로 다시 가져와야 합니다. 프로세스 중에 모든 인스턴스가 AZ 사이를 마이그레이션하며 상당한 가동 중지가 발생합니다. 대신에 새 환경을 생성하고 CNAME 스왑을 수행하십시오.
Docker 컨테이너 문제 해결
이벤트: 도커 이미지를 가져오지 못함 :최신: 잘못된 리포지토리 이름 (), [a-z0-9-_.]만 허용됩니다. 세부 정보는 로그를 확인하십시오.
JSON 검사기를 사용하여 dockerrun.aws.json
파일의 구문을 확인하십시오. 또한 dockerfile 내용을 Elastic Beanstalk에 배포하도록 Docker 이미지 준비에 설명된 요구 사항과 비교하여 확인하십시오.
이벤트: Dockerfile에서 EXPOSE 지시문을 찾을 수 없어 배포 중단
Dockerfile
또는 dockerrun.aws.json
파일은 컨테이너 포트를 선언하지 않습니다. EXPOSE
명령(Dockerfile
) 또는 Ports
블록(dockerrun.aws.json
파일)을 사용하여 수신 트래픽용 포트를 표시합니다.
이벤트: 버킷 이름
에서 인증 자격 증명 리포지토리
를 다운로드하지 못함
dockerrun.aws.json
은 .dockercfg
파일에 대한 잘못된 EC2 키 페어 및/또는 S3 버킷을 제공합니다. 또는 인스턴스 프로파일에 S3 버킷에 대한 GetObject 권한이 없습니다. .dockercfg
파일에 유효한 S3 버킷과 EC2 키 페어가 들어 있는지 확인하십시오. 인스턴스 프로파일의 IAM 역할에 작업 s3:GetObject
에 대한 권한을 부여합니다. 세부 정보는 Elastic Beanstalk 인스턴스 프로파일 관리 단원을 참조하십시오.
이벤트: 경고: 잘못된 인증 구성 파일로 인해 작업 실행 실패
인증 파일(config.json
)의 형식이 올바르지 않습니다. Elastic Beanstalk에서 프라이빗 리포지토리의 이미지 사용 섹션 참조
FAQ
질문: myapp.us-west-2.elasticbeanstalk.com에서 www.myapp.com으로 제 애플리케이션 URL을 바꾸려면 어떻게 해야 합니까?
DNS 서버에서 CNAME 레코드를 등록합니다(예: www.mydomain.com CNAME
mydomain.elasticbeanstalk.com
).
질문: Elastic Beanstalk 애플리케이션에 특정 가용 영역을 지정하려면 어떻게 해야 합니까?
API, CLI, Eclipse 플러그인 또는 Visual Studio 플러그인을 사용하여 특정 가용 영역을 선택할 수 있습니다. Elastic Beanstalk 콘솔을 사용하여 가용 영역을 지정하는 방법에 대한 자세한 내용은 Elastic Beanstalk 환경에 대한 Auto Scaling 그룹 단원을 참조하십시오.
질문: 환경의 인스턴스 유형을 변경하려면 어떻게 해야 합니까?
환경의 인스턴스 유형을 변경하려면 환경 구성 페이지로 이동하여 인스턴스(Instances) 구성 범주에서 편집(Edit)을 선택합니다. 새 인스턴스 유형을 선택하고 [적용(Apply)]을 선택하여 환경을 업데이트합니다. 그러면 Elastic Beanstalk이 실행 중인 모든 인스턴스를 종료하고 새 인스턴스로 대체합니다.
질문: 환경의 구성을 변경한 사람이 있는지 확인하려면 어떻게 해야 합니까?
이 정보를 보려면 Elastic Beanstalk 콘솔의 탐색 창에서 [변경 기록(Change history)]을 선택하여 모든 환경의 구성 변경 사항 목록을 표시합니다. 이 목록에는 변경 날짜 및 시간, 변경 대상 구성 파라미터 및 값, 변경한 IAM 사용자가 포함됩니다. 자세한 내용은 변경 기록을 참조하세요.
질문: 인스턴스가 종료될 때 Amazon EBS 볼륨이 삭제되지 않도록 할 수 있습니까?
사용자 환경의 인스턴스는 저장을 위해 Amazon EBS를 사용하지만 Auto Scaling에서 인스턴스를 종료하면 루트 볼륨이 삭제됩니다. 인스턴스에 상태 또는 기타 데이터를 저장하지 않는 것이 좋습니다. 필요한 경우, AWS CLI 참조에 설명된 대로 AWS CLI: $ aws ec2
modify-instance-attribute -b '/dev/sdc=<vol-id>:false
를 사용하여 볼륨이 삭제되지 않도록 할 수 있습니다.
질문: Elastic Beanstalk 애플리케이션에서 개인 정보를 삭제하려면 어떻게 해야 합니까?
Elastic Beanstalk 애플리케이션에서 사용하는 AWS 리소스는 개인 정보를 저장할 수 있습니다. 환경을 종료할 경우, Elastic Beanstalk는 자체적으로 생성한 리소스를 종료합니다. 구성 파일을 사용하여 추가한 리소스도 종료됩니다. 하지만 Elastic Beanstalk 환경 외부에 AWS 리소스를 만들어 해당 애플리케이션과 연결한 경우, 해당 애플리케이션에서 저장했을 수 있는 개인 정보가 보존되지 않음을 직접 확인해야 합니다. 이 개발자 안내서에서는 추가 리소스 생성에 대해 설명할 때마다 언제 삭제를 고려해야 하는지도 설명합니다.