이 가이드에서는 Compute Engine을 시작하는 방법을 보여줍니다. Hello World 자바 웹 애플리케이션을 Compute Engine에 배포하여 이 가이드를 따르세요. App Engine을 시작하는 데 도움이 필요하면 App Engine 표준 환경을 참조하세요.
목표
- Cloud Shell을 사용하여 Hello World 샘플 앱을 다운로드하고 배포합니다.
- Hello World 샘플 앱을 단일 Compute Engine 인스턴스에 배포합니다.
비용
이 문서에서는 비용이 청구될 수 있는 다음과 같은 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.
-
Enable the Compute Engine API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Compute Engine API.
-
Google Cloud Console의 Cloud Shell에서 앱을 엽니다.
Cloud Shell을 사용하면 브라우저에서 직접 명령줄을 통해 클라우드 리소스에 액세스할 수 있습니다. 브라우저에서 Cloud Shell을 열고 계속을 클릭하여 샘플 코드를 다운로드하고 앱 디렉터리로 변경합니다.
- 새 Google Cloud 프로젝트를 사용하도록 Cloud Shell에서 gcloud CLI를 구성합니다.
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
Cloud Shell에서 앱 실행
Cloud Shell에서 로컬 웹 서버를 시작합니다.
mvn -Plocal clean jetty:run-exploded -DprojectID=YOUR-PROJECT-ID
Cloud Shell에서 웹 미리보기를 클릭하고 포트 8080에서 미리보기를 선택합니다. 그러면 실행 중인 앱이 표시된 새 창이 열립니다.
웹 브라우저에 로컬 컴퓨터에서 제공되는 일부 Hello World 텍스트가 표시됩니다.
계속 진행할 수 있으면 Cloud Shell에서 Control+C를 눌러 로컬 웹 서버를 중지합니다.
단일 인스턴스에 배포
이 섹션에서는 Compute Engine에서 앱의 단일 인스턴스 실행을 단계별로 알아봅니다.
Cloud Shell에서 앱을 실행하는 단일 Compute Engine 인스턴스 가상 머신(VM)에 배포할 수 있습니다.
시작 스크립트를 사용하여 인스턴스 초기화
인스턴스에서 코드를 다운로드하고 실행하도록 지시할 방법이 필요합니다. 인스턴스를 시작하거나 재시작할 때마다 실행되는 시작 스크립트를 인스턴스에 포함하면 됩니다.
시작 스크립트는 인스턴스가 처음 부팅될 때 실행됩니다.
시작 스크립트는 다음과 같은 작업을 수행합니다.
자바 11을 설치하고 기본 버전으로 지정합니다.
Jetty를 설치하고 구성합니다.
자바 WAR 파일을 Cloud Storage 버킷에서 Jetty의
webapps
으로 복사하고 이름을root.war
로 바꿉니다. 그러면 루트 서블릿으로 지정되므로, URL에서 이름을 지정할 필요가 없습니다.Cloud Logging 에이전트를 설치하고 앱 로그를 모니터링하도록 구성합니다. 즉, 이 가이드의 이전 단계에서 구성된 로깅이 App Engine 가변형 환경을 사용할 때와 마찬가지로 업로드됩니다.
Compute Engine 인스턴스 만들기 및 구성
Compute Engine 인스턴스를 만듭니다.
gcloud compute instances create my-app-instance
--image-family=debian-10
--image-project=debian-cloud
--machine-type=g1-small
--scopes userinfo-email,cloud-platform
--metadata-from-file startup-script=gce/startup-script.sh
--zone YOUR_ZONE
--tags http-serverYOUR_ZONE
을 개발 영역으로 바꿉니다(예:us-central1-a
). 리전 및 영역에 대한 자세한 내용은 위치 및 리전을 참조하세요.그러면 새 인스턴스가 생성되고, 인스턴스가 Google Cloud 서비스에 액세스하도록 허용되고, 시작 스크립트가 실행됩니다. 인스턴스 이름은
my-app-instance
입니다.인스턴스 생성의 진행 상황을 확인합니다.
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
시작 스크립트가 완료되면 다음 메시지가 표시됩니다.
startup-script: INFO Finished running startup scripts.
인스턴스에 대한 트래픽을 허용하도록 방화벽 규칙을 만듭니다.
gcloud compute firewall-rules create default-allow-http-80 \ --allow tcp:80 \ --source-ranges 0.0.0.0/0 \ --target-tags http-server \ --description "Allow port 80 access to http-server"
인스턴스의 외부 IP 주소를 가져옵니다.
gcloud compute instances list
앱 실행을 확인하려면 브라우저에 다음 URL을 입력합니다.
http://YOUR_INSTANCE_IP
YOUR_INSTANCE_IP
를 인스턴스의 외부 IP 주소로 바꿉니다.
인스턴스 관리 및 모니터링
Cloud Console을 사용하여 인스턴스를 모니터링하고 관리할 수 있습니다.
- Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.
- 가상 머신 인스턴스 목록에서 연결할 인스턴스 행의 SSH를 클릭합니다.
- Compute Engine 리소스에서 생성한 모든 로그를 보려면 로그 뷰어 페이지로 이동합니다.
로그 탐색기로 이동
Cloud Logging이 자동으로 구성되어
syslog
를 포함한 다양한 공통 서비스의 로그를 수집합니다.
정리
이 튜토리얼에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.
프로젝트 삭제
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
개별 리소스 삭제
gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all gcloud compute firewall-rules delete default-allow-http-80
다음 단계
Google Cloud에 대한 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항 살펴보기. Cloud 아키텍처 센터 살펴보기
앱을 빌드하는 데 사용되는 다른 자바 리소스는 다음을 참조하십시오.
- Compute Engine > 인스턴스 그룹에서 인스턴스 그룹 배포 관리 및 모니터링
- 네트워크 서비스 > 부하 분산에서 URL 맵과 백엔드 서비스를 비롯한 부하 분산 구성 관리
다른 Google Cloud 서비스 알아보기