-
Elastic Beanstalk 정리Study 2022. 11. 22. 22:23
목차
- Elastic Beanstalk의 구조
- 자주 발생하는 오류
Elastic Beanstalk의 구조
Beanstalk 이란?
- 웹 어플리케이션/서비스를 배포하고, 확장하고, 관리하는데 있어 쉽고 빠르게 할 수 있도록 돕는
완전 관리형 서비스입니다. - 용량 프로비저닝, 로드 밸런싱, 조정, 모니터링 등 자동으로 처리해줍니다.
Process InfraStructure 스택 구성
- Beanstalk 안에서 환경 내의 각 인스턴스를 선택한 플랫폼의 응용 프로그램을 실행하는데
필요한 요소를 자동으로 구성해줍니다.
어플리케이션 배포에 필요한 정보
- 단일 인스턴스에서 동작하는지 여러개의 인스턴스에서 동작하는지 선택이 필요합니다.
( 오토스케일링 및 로드밸런싱을 사용하기 위해서는 다중의 인스턴스가 필요합니다. ) - RDS와 같은 Database 서비스도 등록이 가능합니다.
배포 정책 종류
- 다양한 배포 정책을 사용할 수 있습니다.
- 다중의 인스턴스가 존재하는 환경에서만 롤링이 가능합니다.
오토 스케일링
- 오토스케일링 상황을 지정해 사용할 수 있습니다.
( 트리거 or 예약 작업 ) - 로드 밸런싱된 환경을 기준으로 필요에 따라 인스턴스 추가/제거됩니다.
📌 로드밸런서 유형
1. Classic LB
2. Application LB
3. 공유 Application LB
4 . Network LB
애플리케이션 상태 모니터링을 제공합니다.
- 로그 정보는 S3에 저장됩니다. ( Tail Log / Bundle Log )
- 로그 자동 제거 / 유지가 가능합니다.
- CloudWatch로 실시간 로그 스트리밍이 가능합니다.
버저닝이 가능합니다.
- 버전 정보는 S3에 저장됩니다.
자주 발생하는 오류
1. Target.ResponseCodeMismatch - 상태 확인이 예상 HTTP 코드를 반환하지 않았습니다.
- 로드 밸런서 상태 확인 구성에 설정되어 있는 성공 코드와 실제 성공 코드의 불일치에서 발생하는 에러입니다.
Default는 200으로 설정되어 있으며 nginx/access 로그 파일에서 성공 코드 확인할 수 있습니다.
NginX Access Log File 경로
성공 코드
- 성공 코드 설정 경로
EC2 ▶ 로드밸런싱 ▶ 대상그룹 ▶ Health Checks ▶ Edit Success Code
로그에서 확인한 성공코드를 작성해줍니다.
모르겠다면 이렇게 설정하셔도 됩니다.
2. Target.Timeout - 요청이 시간 초과되었습니다.
( Severe(심각) CPU 99% )
- 제 경우엔 대부분 애플리케이션 코드의 에러였습니다. 저 에러가 발생했을 때
코드에 오류는 없는지 다시 확인해보면 찾을 수 있을지도 모릅니다.
Ref.
'Study' 카테고리의 다른 글
GitHub Action :: Gradle Build 캐싱 (0) 2022.11.24 클라우드 환경에서 CI/CD 기술 선택 기준 (0) 2022.11.23 Redis :: 테스트 환경 구축 (0) 2022.11.22 Redis :: 통계 데이터 배치처리 (0) 2022.11.22 Redis :: 다수의 명령어 파이프 라인으로 처리하기 (0) 2022.11.22