리전 ID
REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google에서 할당하는 축약된 코드입니다. 일부 리전 ID는 일반적으로 사용되는 국가 및 주/도 코드와 비슷하게 표시될 수 있지만 코드는 국가 또는 주/도와 일치하지 않습니다. 2020년 2월 이후에 생성된 앱의 경우 REGION_ID.r이 App Engine URL에 포함됩니다. 이 날짜 이전에 만든 기존 앱의 경우 URL에서 리전 ID는 선택사항입니다.
리전 ID에 대해 자세히 알아보세요.
이 가이드를 활용하면 App Engine을 시작하고 Go 앱 개발, 배포, 관리에 익숙해질 수 있습니다.
비용
이 가이드의 실행에는 비용이 발생하지 않습니다. 이 샘플 앱을 실행하는 것만으로는 무료 할당량이 초과되지 않습니다.
개발 환경 설정
로컬 머신과 이미 친숙한 도구나 Cloud Shell을 사용할 수 있습니다. Cloud Shell에는 Google Cloud CLI가 이미 설치되어 있고 환경이 이미 설정되어 있으며 그 밖의 많은 기능이 있습니다.
로컬 머신
Go를 설치하고 gcloud CLI를 설정합니다.
Cloud Shell
필요한 모든 도구가 사전 설치되어 있는 Cloud Shell을 실행합니다.
Google Cloud 프로젝트 만들기
프로젝트는 Google Cloud를 사용하는 데 필요하며 모든Google Cloud 서비스를 사용하기 위한 기반이 됩니다.
- 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.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Cloud Build API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 
      Install the Google Cloud CLI. 
- 
          외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다. 
- 
        gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다. gcloud init
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Cloud Build API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 
      Install the Google Cloud CLI. 
- 
          외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다. 
- 
        gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다. gcloud init
- App Engine 앱과 관련 리소스를 만듭니다. 위치를 선택해야 합니다. 이후에 위치를 변경할 수 없습니다.
    gcloud app create 
- go-app/: Go 1.11 서비스용 디렉터리- app.yaml: 서비스의 구성 설정
- main.go: 애플리케이션 코드
 
- Go 1.11 서비스용으로 - go-app이라는 새 폴더를 만듭니다.- mkdir go-app 
- go-app/폴더에서- app.yaml이라는 파일을 만들고 다음 콘텐츠를 추가합니다.- App Engine 앱의 가장 단순한 구성입니다. App Engine에 Go 1.11 런타임을 사용하고 있음을 나타냅니다. - app.yaml파일은 네트워크 설정, 확장 설정 등을 지정할 수도 있습니다. 자세한 내용은- app.yaml참조를 확인하세요.
- go-app/폴더에서- main.go파일을 만듭니다.
- package main문을 추가하여 코드를 실행 가능한 프로그램으로 취급합니다.- package main- Go 1.11 런타임에서 서비스를 성공적으로 배포하려면 서비스의 - app.yaml파일과 동일한 디렉터리에 있는 Go 소스 파일 한 개 이상의 시작 부분에- package main문을 정의해야 합니다.
- 다음 패키지를 가져옵니다. 
- HTTP 핸들러를 정의합니다. - http.ResponseWriter객체는 HTTP 서버 응답을 어셈블합니다. 이 객체에 데이터를 기록하여 브라우저로 전송합니다.- http.Request객체는 수신 HTTP 요청을 나타내는 데이터 구조입니다.
- HTTP 핸들러를 등록합니다. - main함수는 실행 가능한 프로그램의 진입점으로, 애플리케이션을 시작합니다.- indexHandler함수로- http패키지에 웹 루트(- "/")에 대한 모든 요청을 처리하라고 지시하는- http.HandleFunc함수 호출로 시작됩니다.- PORT환경 변수가 설정되지 않으면 포트- 8080이 기본값으로 사용됩니다. App Engine에서 앱이 실행되고 있으면- PORT환경 변수가 자동으로 설정되지만 로컬에서 앱을 테스트할 때- PORT를 원하는 값으로 설정할 수 있습니다.
- app.yaml파일이 있는- go-app디렉터리에서 다음 명령어를 사용하여 웹 서비스를 App Engine에 배포합니다.- gcloud app deploy 
- 브라우저를 시작하고 - https://PROJECT_ID.REGION_ID.r.appspot.com에서 웹 서비스를 보려면 다음 명령어를 실행합니다.- gcloud app browse 
- Google Cloud 콘솔에서 App Engine 서비스를 확인합니다. - default라고 하는 서비스 하나가 나열되어야 합니다. 기본 서비스는 다음 URL에서 공개적으로 액세스할 수 있습니다.- https://PROJECT_ID.REGION_ID.r.appspot.com
- 버전을 확인합니다. - 배포에 해당되는 타임스탬프 처리된 버전이 하나 나열되어야 합니다. 
- 애플리케이션 로그 읽기 및 쓰기에서 애플리케이션 로그를 쓰고 시스템 로그를 해석하는 방법에 대해 자세히 알아보세요.
- App Engine의 작동 방식에 대한 자세한 내용은 Go 런타임 환경을 참조하세요.
- 요청 처리 및 요청 라우팅에 대해 알아보기
App Engine을 위한 기본 웹 서비스 작성
웹 서비스를 작성하고 런타임 설정을 선언하는 방법을 알아봅니다.
파일 구조화
서비스의 파일 구조는 다음과 같습니다.
app.yaml 파일 만들기
모든 App Engine 프로젝트에는 서비스의 런타임 환경 설정을 지정하는 app.yaml 구성 파일이 있습니다. 이 파일이 없으면 서비스가 배포되지 않습니다.
main.go 파일 만들기
이 샘플에서는 net/http 패키지를 사용하여 'Hello world'를 출력하는 HTTP 서버를 만듭니다.
main.go 파일을 설정하려면 다음 안내를 따르세요.
App Engine에 웹 서비스 배포
수고하셨습니다. 서비스를 만들고 App Engine에 배포해 보았습니다.
서비스 및 버전
애플리케이션용으로 배포하는 첫 번째 서비스가 기본 서비스가 됩니다.
app.yaml 파일에서 서비스 이름을 지정할 수 있지만 이름을 생략하면 default로 처리됩니다. 기본 서비스 이외의 여러 서비스를 배포할 수 있습니다.
gcloud app deploy 명령어를 실행하여 언제든지 서비스를 업데이트할 수 있습니다. 배포할 때마다 새로운 버전이 생성되고 트래픽이 최신 버전으로 자동 라우팅됩니다.
서비스 생성 및 버전 배포를 확인하려면 다음 안내를 따르세요.
특정 서비스와 버전으로 요청을 보내는 방법을 알아보려면 요청 라우팅 방법을 참조하세요.
다음 단계
수고하셨습니다. 웹 애플리케이션을 설정하여 App Engine에 배포했습니다.
다음 페이지를 탐색하여 애플리케이션에 다른 기능을 추가하는 방법을 알아보세요.