업타임 알림 설정

이 가이드에서는 Cloud Monitoring을 사용하여 App Engine 가변형 환경에서 실행되는 Python Hello World 앱의 업타임 알림을 설정하는 방법을 보여줍니다. 업타임 알림은 앱에서 트래픽이 발생하지 않는 시점을 알려줍니다. Compute Engine 또는 Google Kubernetes Engine(GKE)에서 실행되는 앱의 업타임 알림을 설정할 수도 있습니다.

목표

  • 기본 Hello World 앱을 실행합니다.
  • 앱이 HTTP '200' 상태 코드를 반환하는지 모니터링하는 업타임 체크를 만듭니다.
  • 업타임 체크에 실패할 때 이메일 메시지를 보내는 알림을 만듭니다.
  • 앱을 다시 시작하여 알림을 트리거합니다.

비용

Monitoring은 현재 베타 사용자에게 무료로 제공됩니다.

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

샘플 앱 복제

샘플 앱은 GitHub의 GoogleCloudPlatform/getting-started-python에 있습니다.

  1. 저장소를 복제합니다.

    git clone https://github.com/GoogleCloudPlatform/getting-started-python.git
    
  2. 샘플 디렉토리로 이동합니다.

    cd getting-started-python/gce
    
  3. 앱은 'Hello World!'만 반환하므로 구성이 필요 없고 즉시 실행할 수 있습니다.

    gcloud app deploy
    
  4. 반환된 메시지를 보려면 브라우저에 다음 URL을 입력하세요.

    https://PROJECT_ID.REGION_ID.r.appspot.com

    다음을 바꿉니다.

프로젝트에 Cloud Monitoring 구성

Monitoring을 구성하고 앱을 배포한 후 Monitoring을 사용하여 업타임 체크를 만들 수 있습니다. 이 검사는 배포된 앱이 계속해서 핑하여 정상 응답을 반환하는지 확인합니다.

Cloud Monitoring에 액세스하려면 다음을 수행합니다.
  1. Cloud Console에서 Google Cloud 프로젝트를 선택합니다.
    Cloud Console로 이동
  2. 탐색창에서 Monitoring을 선택합니다.

가동시간 확인 만들기

  1. Cloud Console에서 Monitoring으로 이동합니다.

    모니터링으로 이동

  2. 탐색창에서 업타임 체크을 클릭한 다음 업타임 체크 만들기를 클릭합니다.

  3. 확인에 Check Hello World과 같은 제목을 지정하고 다음을 클릭합니다.

  4. 목표 섹션에서 모니터링할 업타임 체크를 지정합니다.

    1. App Engine에 배포했으므로 리소스 유형URL 대신 App Engine으로 변경합니다. (URL은 Compute Engine 인스턴스에서 맞춤 URL을 생성하는 데 사용됩니다.)
    2. 업타임 체크로 모니터링할 서비스를 선택합니다.
    3. 경로를 비워두면 메인 색인 페이지로 기본 설정됩니다.
    4. 업타임 체크 빈도를 기본값인 1분으로 둡니다.
    5. 다음을 클릭합니다.
  5. 응답 확인 필드를 기본값으로 두고 다음을 클릭합니다.

  6. 경고 및 알림 섹션에서 알림이 발생할 경우 알림을 받는 방법을 지정합니다.

    • 전환 라벨이 알림 사용 설정됨으로 되어 있는지 확인합니다.
    • 이름 및 기간 필드는 기본값으로 둡니다.
    • 알림 채널을 알림 정책에 추가하려면 알림 채널 라벨이 지정된 텍스트 상자에서 메뉴를 클릭합니다. 추가할 채널을 선택하고 확인을 클릭합니다. 알림은 각 채널 유형별로 알파벳순으로 그룹화됩니다.

      체크박스 목록에 항목을 추가하려면 알림 채널 관리를 클릭하고 안내를 따릅니다. 이 대화상자로 돌아오면 새로고침 을 클릭합니다.

  7. 만들기를 클릭합니다. 만들기 작업이 성공하면 확인 및 알림 생성됨 메시지가 표시된 후 업타임 체크 대시보드 페이지가 표시됩니다.

    업타임 체크 대시보드에 새 업타임 체크가 나열됩니다. 확인 이름을 클릭하면 해당 업타임 체크의 세부정보 뷰가 열립니다. 이 뷰에는 여러 차트를 표시하고 업타임 비율 및 구성 정보가 표시되고 구성된 알림 정책이 나열됩니다. 정책을 보려면 정책 이름을 클릭합니다.

    알림 페이지에서 시작하여 알림 정책을 확인할 수도 있습니다. 알림 페이지에서 정책 창에 정책의 하위 집합이 표시됩니다. 모든 정책 목록을 보려면 모든 정책 보기를 클릭합니다.

중단 시뮬레이션

이제 업타임 체크가 생성되었으므로 HTTP 200 OK 응답 대신 HTTP 404 Sorry, we can't find that page 오류로 응답하도록 앱을 변경하여 중단을 시뮬레이션할 수 있습니다.

  1. 다음 코드는 Hello World 앱이 'Hello World!' 메시지만 반환하는 것과 응답 상태 코드가 기본값인 200 OK로 설정된 것을 보여줍니다. Hello World 앱에서 이 코드를 보려면 뷰 함수를 사용하세요.

    # Copyright 2019 Google LLC All Rights Reserved.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/', methods=['GET'])
    def say_hello():
        return "Hello, world!"
    
    if __name__ == '__main__':
        app.run(host='127.0.0.1', port=8080, debug=True)
    
  2. Hello World 앱이 HTTP 404 오류 코드를 반환하도록 하려면 반환 값의 두 번째 부분에 404 값을 추가합니다.

    return 'Hello World', 404
  3. 의도적으로 손상된 앱을 배포합니다.

    gcloud app deploy

    30분 이내에 업타임 체크가 실패했음을 알리는 이메일 메시지가 전송됩니다.

정리

이 가이드에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.

비용이 청구되지 않도록 하는 가장 쉬운 방법은 가이드에서 만든 프로젝트를 삭제하는 것입니다.

프로젝트를 삭제하는 방법은 다음과 같습니다.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.