ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Elastic Beanstalk 정리
    Study 2022. 11. 22. 22:23

     

     

     

    목차


    1. Elastic Beanstalk의 구조
    2. 자주 발생하는 오류 

     

     

    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.

     

    댓글

Designed by Tistory.