Python App Engine 표준 환경 빠른 시작

이 빠른 시작에서는 짧은 메시지를 표시하는 작은 App Engine 애플리케이션을 만드는 방법을 보여줍니다.

시작하기 전에

이 빠른 시작을 실행 및 배포하기 전에 App Engine용 GCP 프로젝트를 설정한 다음 Cloud SDK를 설치해야 합니다.

  1. GCP 콘솔을 사용하여 새 GCP 프로젝트와 App Engine 애플리케이션을 만듭니다.

    App Engine으로 이동

    메시지가 표시되면 App Engine 애플리케이션을 배치할 지역을 선택합니다. App Engine 애플리케이션이 생성되면 대시보드가 열립니다.

  2. Python 개발을 위한 환경을 준비합니다. 시스템에 최신 버전의 Python, pip, virtualenv, 기타 관련 도구를 설치하는 것이 좋습니다. Python 개발 환경 설정 가이드에서 안내를 참조하세요.

  3. Google Cloud SDK를 다운로드하여 설치한 후 gcloud 도구를 초기화합니다.

    SDK 다운로드

App Engine 위치

App Engine은 지역을 기반으로 합니다. 즉 앱을 실행하는 인프라가 특정 지역에 있으며, 해당 지역 내의 모든 영역에서 중복으로 사용할 수 있도록 Google에서 관리됩니다.

앱을 실행하는 지역을 선택할 때 중요한 요인은 지연 시간, 가용성, 내구성 요구사항을 충족하는 것입니다. 일반적으로 앱 사용자와 가장 가까운 지역을 선택하지만, 앱에서 사용되는 다른 GCP 제품과 서비스 위치도 고려해야 합니다. 여러 위치에서 서비스를 사용하면 앱의 지연 시간과 가격에 영향을 미칠 수 있습니다.

다음 지역에서 App Engine을 사용할 수 있습니다.

  • northamerica-northeast1(몬트리올)
  • us-central(아이오와)
  • us-west2(로스앤젤레스)
  • us-east1(사우스캐롤라이나)
  • us-east4(북 버지니아)
  • southamerica-east1(상파울루)*
  • europe-west(벨기에)
  • europe-west2(런던)
  • europe-west3(프랑크푸르트)
  • asia-northeast1(도쿄)
  • asia-south1(뭄바이)
  • australia-southeast1(시드니)

* 상파울루 지역을 사용하는 고객에게는 모든 지역별 제품 SLA가 계속 적용됩니다. 그러나 북아메리카와 남아메리카를 대상으로 하는 다중 지역 및 교차 지역 기능은 일시적으로 가용성이나 성능이 저하될 수 있습니다.

앱의 지역을 설정한 후에는 변경할 수 없습니다.

App Engine 애플리케이션을 이미 만든 경우 gcloud app describe 명령어를 실행하거나 GCP 콘솔의 App Engine 대시보드를 열어 지역을 확인할 수 있습니다. App Engine 애플리케이션 지역은 http://[YOUR_PROJECT_ID].appspot.com에 나열됩니다.

Hello World 앱 다운로드

Google Cloud Platform에 앱을 배포하는 방법을 빠르게 익힐 수 있도록 간단한 Python용 Hello World 앱이 준비되어 있습니다. 다음 단계에 따라 로컬 컴퓨터에 Hello World를 다운로드하세요.

  1. Hello World 샘플 앱 저장소를 로컬 컴퓨터에 복제합니다.

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples
    
  2. 그런 다음 샘플 코드가 포함된 디렉토리로 이동합니다.

    cd python-docs-samples/appengine/standard/hello_world
    

.zip 파일로 샘플을 다운로드하고 압축을 풀 수도 있습니다.

애플리케이션 테스트

SDK에 포함된 로컬 개발 서버(dev_appserver.py)를 사용하여 애플리케이션을 테스트합니다.

  1. 앱의 app.yaml 구성 파일이 위치한 hello_world 디렉토리 내에서 다음 명령어로 로컬 개발 서버를 시작합니다.

    dev_appserver.py app.yaml
    

    이제 로컬 개발 서버가 실행되어 포트 8080에서 요청을 수신 대기합니다. 문제가 있으신가요?

  2. 웹브라우저에서 http://localhost:8080/을 방문하여 앱을 봅니다.

로컬 개발 서버(dev_appserver.py) 실행

전체 디렉토리 경로를 지정하여 dev_appserver.py를 실행하거나 PATH 환경 변수에 dev_appserver.py를 추가하여 로컬 개발 서버를 실행할 수 있습니다.

  • 원본 App Engine SDK를 설치한 경우, 도구는 다음 위치에 있습니다.

    [PATH_TO_APP_ENGINE_SDK]/dev_appserver.py
    
  • Google Cloud SDK를 설치한 경우, 도구는 다음 위치에 있습니다.

    [PATH_TO_CLOUD_SDK]/google-cloud-sdk/bin/dev_appserver.py
    

    도움말: 다음을 실행하여 PATH 환경 변수에 Google Cloud SDK 도구를 추가하고 셸에서 명령어 완성을 사용 설정할 수 있습니다.

    [PATH_TO_CLOUD_SDK]/google-cloud-sdk/install.sh
    

포트 번호 변경 방법을 비롯한 로컬 개발 서버 실행에 대한 자세한 내용은 로컬 개발 서버 참조 문서를 확인하세요.

변경하기

애플리케이션을 개발하는 동안 개발 서버를 계속 실행할 수 있습니다. 개발 서버는 소스 파일의 변경사항을 감시하고 필요한 경우 새로고침합니다.

  1. 지금 사용해 보기: 개발 서버를 실행 상태로 두고 main.py를 수정하여 Hello, World!를 다른 내용으로 변경합니다.
  2. http://localhost:8080/을 새로고침하여 결과를 확인합니다.

앱 배포

App Engine에 앱을 배포하려면 app.yaml 파일이 위치한 애플리케이션의 루트 디렉토리 내에서 다음 명령어를 실행합니다.

gcloud app deploy

선택적 플래그에 대해 알아보세요.

일반적인 gcloud 명령어 플래그

  • 앱 버전을 고유하게 식별하는 ID를 지정하려면 --version 플래그를 포함합니다. 아니면 ID가 자동으로 생성됩니다. 예: --version [YOUR_VERSION_ID]
  • gcloud 도구에서 기본값으로 초기화한 값을 대체하는 GCP 프로젝트 ID를 지정하려면 --project 플래그를 포함합니다. 예: --project [YOUR_PROJECT_ID]

예:

gcloud app deploy --version pre-prod-5 --project my-sample-app

명령줄에서 앱을 배포하는 방법에 대한 자세한 내용은 Python 앱 배포를 참조하세요. 전체 명령어 플래그 목록은 gcloud app deploy 참조 문서에서 확인하세요.

애플리케이션 보기

브라우저를 실행하고 http://[YOUR_PROJECT_ID].appspot.com에서 앱을 보려면 다음 명령어를 실행합니다.

gcloud app browse

축하합니다.

빠른 시작을 완료했습니다.

빠른 시작을 마친 후 프로젝트를 삭제하는 방법 및 배포된 애플리케이션으로 진행할 수 있는 다음 단계에 대한 링크는 아래 섹션을 참조하세요.

Hello World 앱에 대한 자세한 내용은 Hello World 코드 검토 섹션을 참조하세요.

삭제

결제를 사용 설정한 경우 GCP 프로젝트를 삭제하면 비용이 청구되지 않습니다. 이렇게 하면 해당 프로젝트 내에서 사용한 모든 리소스에 대한 결제가 중지됩니다.

  1. GCP Console에서 프로젝트 페이지로 이동합니다.

    프로젝트 페이지로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 다음 종료를 클릭하여 프로젝트를 삭제합니다.

다음 단계

기본 Flask 앱 개발

Google App Engine 표준 환경에서 실행되는 기본 Python 2.7 애플리케이션을 개발하고 배포하는 방법을 알아보세요. Google App Engine과 관련 서비스를 처음 이용하거나 특히 Python 언어로 App Engine을 사용해 본 적이 없는 경우 Flask 가이드를 활용하면 빠른 시작 가이드에 나와 있는 것보다 더 자세한 각 작업 설명을 확인할 수 있습니다. 자세한 내용은 App Engine 표준 환경에서 Flask 시작하기를 참조하세요.

커스텀 도메인 사용

appspot.com 대신 커스텀 도메인을 사용하여 App Engine 앱을 제공할 수 있습니다. 자세한 내용은 커스텀 도메인 및 SSL 사용을 참조하세요.

Hello World 코드 검토

Hello World는 가장 간단한 App Engine 앱입니다. 이 앱은 하나의 서비스만 포함하고 하나의 버전으로만 존재하며 모든 코드가 앱의 루트 디렉토리에 있습니다. 이 섹션에서는 각각의 앱 파일을 자세히 설명합니다.

main.py

이 Python 스크립트는 HTTP 헤더 및 Hello, World! 메시지를 사용하여 요청에 응답합니다.

import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hello, World!')

app = webapp2.WSGIApplication([
    ('/', MainPage),
], debug=True)

app.yaml

app.yaml 구성 파일은 앱을 위한 여러 옵션을 정의하며, 어떤 URL에 어떤 핸들러 스크립트를 사용해야 하는지 설명합니다.

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: main.app

맨 위부터 순서대로 이 구성 파일이 애플리케이션에 대해 말하고 있는 정보는 다음과 같습니다.

  • 이 코드는 python27 런타임 환경, API 버전 1에서 실행됩니다.
  • 이 애플리케이션은 threadsafe이므로 동일 인스턴스가 여러 개의 동시 요청을 처리할 수 있습니다. Threadsafe는 고급 기능이며, threadsafe를 위해 특별히 설계되지 않은 애플리케이션에서는 동작이 불안정할 수 있습니다.
  • 경로가 정규 표현식 /.*(모든 URL)와 일치하는 모든 URL 요청을 main Python 모듈에 있는 app 객체로 처리해야 합니다.

이 파일의 구문은 YAML입니다. 전체 구성 옵션 목록은 app.yaml 참조 문서를 확인하세요.

자세히 알아보기

전체 플랫폼 알아보기

App Engine 앱을 개발하고 배포하는 방법을 알아보았으므로 이제 Google Cloud Platform의 나머지 부분에 대해 알아볼 차례입니다. App Engine뿐 아니라 전체 플랫폼을 사용하는 애플리케이션을 만드는 방법에 대해 알려주는 둘러보기 과정은 방명록 만들기 빠른 시작을 확인하세요. 간단한 애플리케이션을 확장하여 인증된 Google 계정으로 공개 페이지에 메시지를 게시할 수 있는 완전한 방명록 애플리케이션을 만들 수 있습니다.

App Engine 표준 환경 자세히 알아보기

다음 항목은 App Engine을 계속 학습하는 데 도움이 됩니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.