이 가이드에서는 Compute Engine을 시작하는 방법을 보여줍니다. 이 가이드에 따라 Hello World PHP 웹 앱을 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.
-
Make sure that billing is enabled for your 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
-
Google Cloud 콘솔의 Cloud Shell에서 앱을 엽니다.
Cloud Shell을 사용하면 브라우저에서 직접 명령줄을 통해 클라우드 리소스에 액세스할 수 있습니다.
-
저장소를 클론하는 데 동의하면 확인을 클릭하여 샘플 코드를 다운로드하고 앱 디렉터리로 변경합니다.
- 새 Google Cloud 프로젝트를 사용하도록 Cloud Shell에서 gcloud CLI를 구성합니다.
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
Cloud Shell에서 앱 실행
composer
를 사용하여 앱 종속 항목을 설치합니다.composer install
PHP 내장 웹 서버를 실행합니다.
php -S localhost:8080
Cloud Shell에서 웹 미리보기를 클릭하고 포트 8080에서 미리보기를 선택합니다. 그러면 실행 중인 앱이 표시된 새 창이 열립니다.
로컬 웹 서버를 중지하려면 Control+C를 누릅니다.
단일 인스턴스에 배포
이 섹션에서는 Compute Engine에서 앱의 단일 인스턴스 실행을 단계별로 알아봅니다.
Cloud Shell에서 앱을 실행하는 단일 Compute Engine 인스턴스 가상 머신(VM)에 배포할 수 있습니다.
시작 스크립트를 사용하여 인스턴스 초기화
인스턴스에서 코드를 다운로드하고 실행하도록 지시할 방법이 필요합니다. 인스턴스를 시작하거나 재시작할 때마다 실행되는 시작 스크립트를 인스턴스에 포함하면 됩니다.
시작 스크립트는 다음과 같은 작업을 수행합니다.
PHP 7 및 PHP 7 FPM을 설치합니다.
NGINX를 설치하고 구성합니다.
Composer를 다운로드하고 앱 코드에 실행합니다.
Cloud Logging 에이전트를 설치하고 앱 로그를 모니터링하도록 구성합니다. 즉, 이 가이드의 이전 단계에서 구성된 로깅이 App Engine을 사용할 때와 마찬가지로 업로드됩니다.
Compute Engine 인스턴스 만들기 및 구성
Compute Engine 인스턴스를 만듭니다.
영역을 개발 영역으로 바꿉니다(예:
us-central1-a
). 리전 및 영역에 대한 자세한 내용은 지역 및 리전을 참조하세요.그러면 새 인스턴스가 생성되고, 인스턴스가 Google Cloud 서비스에 액세스하도록 허용되고, 시작 스크립트가 실행됩니다. 인스턴스 이름은
my-app-instance
입니다.인스턴스 생성의 진행 상황을 확인합니다.
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_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 주소로 바꿉니다.
인스턴스 관리 및 모니터링
Google Cloud 콘솔을 사용하여 인스턴스를 모니터링하고 관리할 수 있습니다.
- In the Google Cloud console, go to the VM instances page.
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
- 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