환경에 대해 향상된 상태 규칙 구성 - AWS Elastic Beanstalk

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

환경에 대해 향상된 상태 규칙 구성

AWS Elastic Beanstalk 확장 상태 보고는 규칙 집합을 사용하여 환경의 상태를 확인합니다. 이러한 규칙의 일부는 특정 애플리케이션에 적합하지 않을 수 있습니다. 다음은 몇 가지 일반적인 예입니다.

  • 클라이언트 측 테스트 도구를 사용합니다. 이 경우 자주 발생하는 HTTP 클라이언트(4xx) 오류가 예상됩니다.

  • AWS WAF를 환경의 Application Load Balancer와 함께 사용하여 원치 않는 수신 트래픽을 차단합니다. 이 경우 Application Load Balancer는 거부된 각 수신 메시지에 대해 HTTP 403을 반환합니다.

기본적으로 Elastic Beanstalk에는 환경의 상태를 확인할 때 모든 애플리케이션 HTTP 4xx 오류가 포함됩니다. 오류 발생률에 따라 환경 상태가 정상에서 경고, 성능 저하 또는 심각으로 변경됩니다. 앞서 언급한 예제와 같은 사례를 올바르게 처리하기 위해 Elastic Beanstalk에서는 일부 확장 상태 규칙을 구성할 수 있도록 합니다. 환경 인스턴스에서 애플리케이션 HTTP 4xx 오류를 무시하거나 환경의 로드 밸런서에서 반환된 HTTP 4xx 오류를 무시하도록 선택할 수 있습니다. 이 주제에서는 이러한 구성을 변경하는 방법에 대해 설명합니다.

참고

현재, 이 방법은 유일하게 사용 가능한 향상된 상태 규칙 사용자 지정입니다. 향상된 상태는 4xx 외에 다른 HTTP 오류를 무시하도록 구성할 수 없습니다.

Elastic Beanstalk 콘솔을 사용하여 확장 상태 규칙 구성

Elastic Beanstalk 콘솔을 사용하여 해당 환경에서 확장 상태 규칙을 구성할 수 있습니다.

Elastic Beanstalk 콘솔을 사용하여 HTTP 4xx 상태 코드 확인을 구성하려면
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. [모니터링] 구성 범주에서 [편집]을 선택합니다.

  5. 상태 모니터링 규칙 사용자 지정에서 원하는 무시 옵션을 활성화하거나 비활성화합니다.

    Elastic Beanstalk 콘솔의 모니터링 구성 페이지의 상태 모니터링 규칙 사용자 지정 섹션
  6. 변경 사항을 저장하려면 페이지 하단에서 적용을 선택합니다.

EB CLI를 사용하여 향상된 상태 규칙 구성

EB CLI에서 환경 구성을 로컬로 저장하고, 확장 상태 규칙을 구성하는 항목을 추가한 후 구성을 Elastic Beanstalk에 업로드하여 확장 상태 규칙을 구성할 수 있습니다. 생성 중 또는 생성 후 저장된 구성을 환경에 적용할 수 있습니다.

EB CLI 및 저장된 구성을 사용하여 HTTP 4xx 상태 코드 검사를 구성하려면
  1. eb init를 사용하여 프로젝트 폴더를 초기화합니다.

  2. eb create 명령을 실행하여 환경을 생성합니다.

  3. eb config save 명령을 실행하여 구성 템플릿을 로컬로 저장합니다. 다음 예제에서는 --cfg 옵션을 사용하여 구성의 이름을 지정합니다.

    $ eb config save --cfg 01-base-state Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
  4. 텍스트 편집기에서 저장된 구성 파일을 엽니다.

  5. OptionSettings > aws:elasticbeanstalk:healthreporting:system: 아래에서 ConfigDocument 키를 추가하여 구성하려는 강화된 상태 규칙을 목록을 표시합니다. 다음 ConfigDocument는 로드 밸런서 HTTP 4xx 코드 검사를 활성화된 상태로 유지하면서 애플리케이션 HTTP 4xx 상태 코드의 검사를 비활성화합니다.

    OptionSettings: ... aws:elasticbeanstalk:healthreporting:system: ConfigDocument: Rules: Environment: Application: ApplicationRequests4xx: Enabled: false ELB: ELBRequests4xx: Enabled: true Version: 1 SystemType: enhanced ...
    참고

    RulesCloudWatchMetrics를 동일한 ConfigDocument 옵션 설정에 결합할 수 있습니다. CloudWatchMetrics환경에 대한 Amazon CloudWatch 사용자 지정 측정치 게시를 참조하세요.

    이전에 CloudWatchMetrics를 활성화한 경우 eb config save 명령을 사용하여 검색하는 구성 파일에 이미 ConfigDocument 섹션을 포함하는 CloudWatchMetrics 키가 있습니다. 이것을 삭제하지 마세요. 동일한 ConfigDocument 옵션 값에 Rules 섹션을 추가합니다.

  6. 구성 파일을 저장하고 텍스트 편집기를 닫습니다. 이 예에서 업데이트된 구성 파일은 다운로드된 구성 파일과 다른 이름(02-cloudwatch-enabled.cfg.yml)으로 저장됩니다. 그러면 파일을 업로드할 때 별도의 저장된 구성이 생성됩니다. 새로운 구성을 생성하지 않고 다운로드한 파일과 동일한 이름을 사용하여 기존 구성을 덮어쓸 수 있습니다.

  7. eb config put 명령을 사용하여 업데이트된 구성 파일을 Elastic Beanstalk에 업로드합니다.

    $ eb config put 02-cloudwatch-enabled

    저장된 구성과 함께 eb config getput 명령을 사용할 때 파일 이름 확장명을 포함하지 마십시오.

  8. 저장된 구성을 실행 중인 환경에 적용합니다.

    $ eb config --cfg 02-cloudwatch-enabled

    --cfg 옵션은 환경에 적용되는 명명된 구성 파일을 지정합니다. 구성 파일을 로컬에 또는 Elastic Beanstalk에 저장할 수 있습니다. 지정된 이름의 구성 파일이 두 위치에 모두 있으면 EB CLI는 로컬 파일을 사용합니다.

구성 문서를 사용하여 향상된 상태 규칙 구성

강화된 상태 규칙에 대한 구성(config) 문서는 구성할 규칙이 나열된 JSON 문서입니다.

다음 예제에서는 애플리케이션 HTTP 4xx 상태 코드 검사를 비활성화하고, 로드 밸런서 HTTP 4xx 상태 코드 검사를 활성화하는 구성 문서를 보여줍니다.

{ "Rules": { "Environment": { "Application": { "ApplicationRequests4xx": { "Enabled": false } }, "ELB": { "ELBRequests4xx": { "Enabled": true } } } }, "Version": 1 }

AWS CLI의 경우 그 자체로 JSON 객체인 옵션 설정 인수에서 Value 키에 대한 값으로 문서를 전달합니다. 이 경우 포함된 문서에서 따옴표를 이스케이프 처리해야 합니다. 다음의 명령은 구성 설정이 유효한지를 확인합니다.

$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[ { "Namespace": "aws:elasticbeanstalk:healthreporting:system", "OptionName": "ConfigDocument", "Value": "{\"Rules\": { \"Environment\": { \"Application\": { \"ApplicationRequests4xx\": { \"Enabled\": false } }, \"ELB\": { \"ELBRequests4xx\": {\"Enabled\": true } } } }, \"Version\": 1 }" } ]'

YAML로 작성된 .ebextensions 구성 파일의 경우 JSON 문서를 있는 그대로 제공할 수 있습니다.

option_settings: - namespace: aws:elasticbeanstalk:healthreporting:system option_name: ConfigDocument value: { "Rules": { "Environment": { "Application": { "ApplicationRequests4xx": { "Enabled": false } }, "ELB": { "ELBRequests4xx": { "Enabled": true } } } }, "Version": 1 }