Compute Engine에서 Python Bookshelf 실행

이 가이드에서는 Google Compute Engine에서 Python Bookshelf 앱을 실행하는 방법을 보여줍니다. 이 가이드에 따라 기존 Python 웹 앱을 Compute Engine에 배포합니다. App Engine 표준 환경에 대한 가이드의 일부로 Bookshelf 앱 설명서를 살펴봐야 합니다.

목표

  • Bookshelf 샘플 앱을 단일 Compute Engine 인스턴스에 배포
  • 관리형 인스턴스 그룹을 사용하여 앱을 수평으로 확장
  • HTTP 부하 분산을 사용하여 트래픽 전달
  • 자동 확장을 사용하여 트래픽 변경에 대응

비용

이 가이드에서는 비용이 청구될 수 있는 다음을 비롯한 Google Cloud Platform(GCP)의 구성요소를 사용합니다.

  • Compute Engine
  • Cloud Storage
  • Cloud Datastore
  • Stackdriver Logging
  • Cloud Pub/Sub

가격 계산기를 사용하여 예상 사용량을 기준으로 예상 비용을 산출합니다. GCP 신규 사용자는 무료 평가판을 사용할 수 있습니다.

시작하기 전에

  1. Google 계정에 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Google Cloud Platform 프로젝트를 선택하거나 만듭니다.

    리소스 관리 페이지로 이동

  3. Google Cloud Platform 프로젝트에 결제가 사용 설정되어 있는지 확인하세요.

    결제 사용 설정 방법 알아보기

  4. {% dynamic if "no_credentials" in setvar.task_params %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic if not setvar.redirect_url %}{% dynamic setvar redirect_url %}https://console.cloud.google.com{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if setvar.in_henhouse_no_auth_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic endif %}{% dynamic elif setvar.in_henhouse_service_account_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}SERVICE_ACCOUNT{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if not setvar.service_account_roles and setvar.credential_type == "SERVICE_ACCOUNT" %}{% dynamic setvar service_account_roles %}{% dynamic endsetvar %}{% dynamic endif %}{% dynamic setvar console %}{% dynamic if "no_steps" not in setvar.task_params %}
  5. {% dynamic endif %}{% dynamic if setvar.api_list %}{% dynamic if setvar.in_henhouse_no_auth_whitelist or setvar.in_henhouse_service_account_whitelist %}GCP Console 프로젝트를 설정합니다.

    프로젝트 설정

    다음을 수행하려면 클릭:

    • 프로젝트를 만들거나 선택합니다.
    • 해당 프로젝트에 {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} API{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다.
    • {% dynamic if setvar.credential_type == 'SERVICE_ACCOUNT' %}
    • 서비스 계정을 만듭니다.
    • 비공개 키를 JSON으로 다운로드합니다.
    • {% dynamic endif %}

    언제든지 GCP Console에서 이 리소스를 보고 관리할 수 있습니다.

    {% dynamic else %}{% dynamic if "no_text" not in setvar.task_params %}{% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} APIs{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다. {% dynamic endif %}

    {% dynamic if "," in setvar.api_list %} APIs{% dynamic else %} API{% dynamic endif %} 사용 설정

    {% dynamic endif %}{% dynamic endif %}{% dynamic if "no_steps" not in setvar.task_params %}
  6. {% dynamic endif %}{% dynamic endsetvar %}{% dynamic print setvar.console %}
  7. Cloud SDK 설치 및 초기화.
  8. 시스템에 Python, pip, virtualenv를 설치합니다. 안내는 Google Cloud Platform용 Python 배포 환경 설정을 참조하세요.

Cloud Datastore 초기화

Bookshelf 앱은 Cloud Datastore를 사용하여 도서를 저장합니다. 프로젝트에서 Cloud Datastore를 처음으로 초기화하려면 다음 안내를 따르세요.

  1. GCP Console에서 Cloud Datastore를 엽니다.

  2. 데이터 저장소 지역을 선택하고 계속을 클릭합니다. 항목 만들기 페이지까지 진행하면 이 창을 닫습니다. Bookshelf 앱이 Cloud Datastore에서 항목을 만들 수 있습니다.

Cloud Storage 버킷 만들기

다음 안내에서는 Cloud Storage 버킷을 만드는 방법을 보여줍니다. 버킷은 Cloud Storage에서 데이터를 보관하는 기본 컨테이너입니다.

  1. 터미널 창에서 다음 명령어를 입력합니다.

    gsutil mb gs://[YOUR-BUCKET-NAME]

    각 항목의 의미는 다음과 같습니다.

    • [YOUR-BUCKET-NAME]은 Cloud Storage 버킷의 이름을 의미합니다.
  2. 버킷의 기본 액세스제어 목록(ACL)을 public-read로 설정하여 Bookshelf 앱에 업로드된 이미지를 확인합니다.

    gsutil defacl set public-read gs://[YOUR-BUCKET-NAME]

    샘플 앱 복제

    샘플 앱은 GitHub(GoogleCloudPlatform/getting-started-python)에서 제공됩니다.

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

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

      cd getting-started-python/7-gce
      

    앱 구성

    1. 수정하기 위해 config.py를 엽니다.

    2. PROJECT_ID 값을 프로젝트 ID로 설정합니다.

    3. CLOUD_STORAGE_BUCKET 값을 Cloud Storage 버킷 이름으로 설정합니다.

    4. config.py를 저장하고 닫습니다.

    로컬 컴퓨터에서 앱 실행

    1. 격리된 Python 환경을 만들고 종속 항목을 설치합니다.

      Linux/macOS

      virtualenv -p python3 env
      source env/bin/activate
      pip install -r requirements.txt
      

      Windows

      virtualenv -p python3 env
      env\scripts\activate
      pip install -r requirements.txt
      

    2. Honcho를 사용하여 애플리케이션과 작업 작업자를 모두 로컬에서 실행합니다. 가이드의 Cloud Pub/Sub 부분에서 Honcho 사용에 대해 자세히 알아보세요.

      honcho start -f ./procfile worker bookshelf

    3. 웹브라우저에서 다음 주소를 입력합니다.

      http://localhost:8080

    두 로컬 작업을 모두 중단하려면 Control+C를 누릅니다.

    단일 인스턴스에 배포

    단일 인스턴스 배포

    이 섹션에서는 Compute Engine에서 앱의 단일 인스턴스 실행을 단계별로 알아봅니다.

    저장소에 코드 푸시

    Cloud Source Repositories를 사용하여 프로젝트에서 Git 저장소를 쉽게 만들고 이 저장소에 앱 코드를 업로드할 수 있습니다. 그러면 인스턴스를 시작할 때 저장소에서 앱 코드의 최신 버전을 가져올 수 있습니다. 이 방법은 앱을 업데이트할 때 새 이미지 또는 인스턴스를 구성할 필요가 없으므로 편리합니다. 기존 인스턴스를 다시 시작하거나 새 인스턴스를 만들기만 하면 됩니다.

    Git를 처음 사용하는 경우 git config --global을 사용하여 ID를 설정하세요.

    1. Google Cloud Platform Console에서 저장소를 만듭니다.

      저장소 만들기

      또는 gcloud를 사용하여 저장소를 만듭니다.

      gcloud source repos create [YOUR_REPO]
      

      각 항목의 의미는 다음과 같습니다.

      • [YOUR_PROJECT_ID]는 프로젝트 ID입니다.
      • [YOUR_REPO]는 방금 만든 저장소의 이름입니다.
    2. 앱의 코드를 프로젝트 저장소로 내보냅니다.

      git commit -am "Updating configuration"
      git config credential.helper gcloud.sh
      git remote add cloud https://source.developers.google.com/p/[YOUR_PROJECT_ID]/r/[YOUR_REPO]
      git push cloud master
      

    시작 스크립트를 사용하여 인스턴스 초기화

    Compute Engine 인스턴스에서 코드에 액세스할 수 있으므로 인스턴스에서 코드를 다운로드하고 실행하도록 지시하는 방법이 필요합니다. 인스턴스를 시작하거나 재시작할 때마다 실행되는 시작 스크립트를 인스턴스에 포함하면 됩니다.

    다음은 Bookshelf 샘플 앱에 포함된 시작 스크립트입니다.

    set -v
    
    # Talk to the metadata server to get the project id
    PROJECTID=$(curl -s "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google")
    
    # Install logging monitor. The monitor will automatically pickup logs sent to
    # syslog.
    curl -s "https://storage.googleapis.com/signals-agents/logging/google-fluentd-install.sh" | bash
    service google-fluentd restart &
    
    # Install dependencies from apt
    apt-get update
    apt-get install -yq \
        git build-essential supervisor python python-dev python-pip libffi-dev \
        libssl-dev
    
    # Create a pythonapp user. The application will run as this user.
    useradd -m -d /home/pythonapp pythonapp
    
    # pip from apt is out of date, so make it update itself and install virtualenv.
    pip install --upgrade pip virtualenv
    
    # Get the source code from the Google Cloud Repository
    # git requires $HOME and it's not set during the startup script.
    export HOME=/root
    git config --global credential.helper gcloud.sh
    git clone https://source.developers.google.com/p/$PROJECTID/r/[YOUR_REPO_NAME] /opt/app
    
    # Install app dependencies
    virtualenv -p python3 /opt/app/7-gce/env
    source /opt/app/7-gce/env/bin/activate
    /opt/app/7-gce/env/bin/pip install -r /opt/app/7-gce/requirements.txt
    
    # Make sure the pythonapp user owns the application code
    chown -R pythonapp:pythonapp /opt/app
    
    # Configure supervisor to start gunicorn inside of our virtualenv and run the
    # application.
    cat >/etc/supervisor/conf.d/python-app.conf << EOF
    [program:pythonapp]
    directory=/opt/app/7-gce
    command=/opt/app/7-gce/env/bin/honcho start -f ./procfile worker bookshelf
    autostart=true
    autorestart=true
    user=pythonapp
    # Environment variables ensure that the application runs inside of the
    # configured virtualenv.
    environment=VIRTUAL_ENV="/opt/app/7-gce/env",PATH="/opt/app/7-gce/env/bin",\
        HOME="/home/pythonapp",USER="pythonapp"
    stdout_logfile=syslog
    stderr_logfile=syslog
    EOF
    
    supervisorctl reread
    supervisorctl update
    
    # Application should now be running under supervisor

    이 스크립트를 사용하려면 [YOUR_REPO_NAME]을 저장소 이름으로 바꿉니다.

    시작 스크립트는 다음과 같은 작업을 수행합니다.

    • Stackdriver Logging 에이전트를 설치합니다. 에이전트는 syslog에서 자동으로 로그를 수집합니다.

    • Python 및 Supervisor를 설치합니다. Supervisor는 앱을 데몬으로 실행합니다.

    • Cloud Source Repositories에서 앱의 소스 코드를 복제하고 종속 항목을 설치합니다.

    • 앱을 실행하도록 Supervisor를 구성합니다. Supervisor는 앱이 예기치 않게 종료되거나 관리자 또는 다른 프로세스에 의해 종료되는 경우 애플리케이션이 다시 시작되는지 확인합니다. 또한 Cloud Logging 에이전트에서 syslog가 수집되도록 앱의 stdoutstderr을 syslog로 보냅니다.

    Compute Engine 인스턴스 만들기 및 구성

    1. Compute Engine 인스턴스를 생성합니다. 다음 명령어는 새 인스턴스를 만들어 GCP 서비스에 액세스하도록 허용하고 시작 스크립트를 실행합니다. 인스턴스 이름은 my-app-instance입니다.

      Linux/macOS

      gcloud compute instances create my-app-instance \
          --image-family=debian-9 \
          --image-project=debian-cloud \
          --machine-type=g1-small \
          --scopes userinfo-email,cloud-platform \
      
          --metadata-from-file startup-script=gce/startup-script.sh \
          --zone us-central1-f \
          --tags http-server
      

      Windows

      gcloud compute instances create my-app-instance ^
          --image-family=debian-9 ^
          --image-project=debian-cloud ^
          --machine-type=g1-small ^
          --scopes userinfo-email,cloud-platform ^
          --metadata-from-file startup-script=gce/startup-script.sh ^
          --zone us-central1-f ^
          --tags http-server
      

    2. 인스턴스 생성의 진행 상황을 확인합니다.

      gcloud compute instances get-serial-port-output my-app-instance --zone us-central1-f
      

      시작 스크립트가 완료되면 명령어 출력 끝 부분에 Finished running startup script가 표시됩니다.

    3. 인스턴스로 가는 트래픽을 허용하도록 방화벽 규칙을 만듭니다.

      Linux/macOS

      gcloud compute firewall-rules create default-allow-http-8080 \
          --allow tcp:8080 \
          --source-ranges 0.0.0.0/0 \
          --target-tags http-server \
          --description "Allow port 8080 access to http-server"
      

      Windows

      gcloud compute firewall-rules create default-allow-http-8080 ^
          --allow tcp:8080 ^
          --source-ranges 0.0.0.0/0 ^
          --target-tags http-server ^
          --description "Allow port 8080 access to http-server"
      

    4. 인스턴스의 외부 IP 주소를 가져옵니다.

      gcloud compute instances list
      
    5. 실행 중인 애플리케이션을 보려면 http://[YOUR_INSTANCE_IP]:8080으로 이동합니다.

      [YOUR_INSTANCE_IP]는 인스턴스의 외부 IP 주소입니다.

    인스턴스 관리 및 모니터링

    Google Cloud Platform Console을 사용하여 인스턴스를 모니터링하고 관리할 수 있습니다.

    실행 중인 인스턴스를 확인하고 ssh를 사용하여 연결하려면 Compute > Compute Engine으로 이동합니다.

    Compute Engine 리소스에서 생성된 모든 로그를 보려면 모니터링 > 로그로 이동합니다. Stackdriver Logging이 자동으로 구성되어 syslog를 포함한 다양한 공통 서비스의 로그를 수집합니다.

    여러 인스턴스로 수평 확장

    관리형 인스턴스로 여러 인스턴스 배포

    Compute Engine은 수평으로 쉽게 확장할 수 있습니다. Compute Engine은 관리형 인스턴스 그룹과 Compute Engine 자동 확장 처리를 사용하여 필요할 때 자동으로 앱의 새 인스턴스를 만들고 수요가 적은 인스턴스를 종료할 수 있습니다. 또한 HTTP 부하 분산기를 설정하여 관리형 인스턴스 그룹의 인스턴스에 트래픽을 분산시킬 수 있습니다.

    배포 스크립트

    샘플 앱에는 다음 배포 단계를 자동화하는 스크립트가 포함되어 있습니다. deploy.sh라는 스크립트는 여러 인스턴스로 수평 확장의 설명대로 자동 확장되고 부하가 분산된 완전한 앱의 리소스를 배포합니다.

    다음 단계를 각각 실행하거나 gce 디렉토리에서 gce/deploy.sh를 실행할 수 있습니다.

    $IMAGE_FAMILY, $IMAGE_PROJECT, $MACHINE_TYPE, $SCOPES 등 환경 변수의 기본값은 gce/deploy.sh의 초기화 섹션에서 검토할 수 있습니다.

    관리형 인스턴스 그룹 만들기

    관리형 인스턴스 그룹은 같은 인스턴스 템플릿을 기반으로 하는 동종 인스턴스 그룹입니다. 인스턴스 템플릿은 소스 이미지, 디스크 크기, 범위, 메타데이터(시작 스크립트 포함) 등 인스턴스 구성을 정의합니다.

    1. 먼저 템플릿을 만듭니다.

      gcloud compute instance-templates create $TEMPLATE \
        --image-family $IMAGE_FAMILY \
        --image-project $IMAGE_PROJECT \
        --machine-type $MACHINE_TYPE \
        --scopes $SCOPES \
        --metadata-from-file startup-script=$STARTUP_SCRIPT \
        --tags $TAGS
    2. 인스턴스 그룹을 만듭니다.

      gcloud compute instance-groups managed \
        create $GROUP \
        --base-instance-name $GROUP \
        --size $MIN_INSTANCES \
        --template $TEMPLATE \
        --zone $ZONE

      --size 매개변수는 인스턴스 그룹의 인스턴스 수를 지정합니다. 모든 인스턴스가 시작 스크립트 실행을 완료한 후에 인스턴스의 외부 IP 주소 및 포트 8080을 사용하여 인스턴스에 개별적으로 액세스할 수 있습니다. 인스턴스의 외부 IP 주소를 찾으려면 gcloud compute instances list를 입력하세요. 관리형 인스턴스의 이름은 --base-instance-name 매개변수에서 지정한 동일한 프리픽스 my-app으로 시작합니다.

    부하 분산기 만들기

    테스트 또는 디버깅에는 개별 인스턴스를 사용해도 문제가 없지만 웹 트래픽 전달에는 부하 분산기를 사용하여 사용 가능한 인스턴스에 자동으로 트래픽을 전달하는 것이 좋습니다. 부하 분산기를 만들려면 다음 단계를 따르세요.

    1. 상태 확인을 만듭니다. 부하 분산기는 상태 확인을 사용하여 트래픽을 전달할 수 있는 인스턴스를 결정합니다.

      gcloud compute http-health-checks create ah-health-check \
        --request-path /_ah/health \
        --port 8080
    2. 이름이 지정된 포트를 만듭니다. HTTP 부하 분산기는 트래픽을 전달할 포트를 파악하기 위해 http 서비스를 확인합니다. 기존 인스턴스 그룹에서 포트 8080http라는 이름을 지정합니다.

      gcloud compute instance-groups managed set-named-ports \
          $GROUP \
          --named-ports http:8080 \
          --zone $ZONE
    3. 백엔드 서비스를 만듭니다. 백엔드 서비스는 부하 분산된 트래픽의 타겟이며 트래픽을 전달해야 하는 인스턴스 그룹과 사용할 상태 확인을 정의합니다.

      gcloud compute backend-services create $SERVICE \
        --http-health-checks ah-health-check \
        --global
    4. 백엔드 서비스를 추가합니다.

      gcloud compute backend-services add-backend $SERVICE \
        --instance-group $GROUP \
        --instance-group-zone $ZONE \
        --global
    5. URL 맵과 프록시를 만듭니다. URL 맵은 어떤 URL을 어떤 백엔드 서비스로 전달해야 하는지를 정의합니다. 이 샘플에서는 백엔드 서비스 하나가 모든 트래픽을 전달합니다. 여러 지역 또는 그룹 사이에서 요청 부하를 분산하려면 백엔드 서비스를 여러 개 만들면 됩니다. 프록시는 트래픽을 수신한 후 URL 맵을 사용하여 백엔드 서비스에 전달합니다.

      1. URL 맵을 만듭니다.

        gcloud compute url-maps create $SERVICE-map \
          --default-service $SERVICE
      2. 프록시를 만듭니다.

        gcloud compute target-http-proxies create $SERVICE-proxy \
          --url-map $SERVICE-map
    6. 전역 전달 규칙을 만듭니다. 전역 전달 규칙은 공개 IP 주소와 포트를 프록시에 연결합니다.

      gcloud compute forwarding-rules create $SERVICE-http-rule \
        --global \
        --target-http-proxy $SERVICE-proxy \
        --ports=80

    자동 확장 처리 구성

    부하 분산기는 정상적인 모든 인스턴스에 트래픽을 분산시킵니다. 하지만 인스턴스에서 처리할 트래픽이 너무 많은 경우에는 어떻게 해야 할까요? 인스턴스를 직접 더 추가하는 방법이 있습니다. 하지만 더 좋은 방법은 트래픽 요청에 따라 인스턴스를 자동으로 만들고 삭제하도록 Compute Engine 자동 확장 처리를 구성하는 것입니다.

    1. 자동 확장 처리를 만듭니다.

      gcloud compute instance-groups managed set-autoscaling \
        $GROUP \
        --max-num-replicas $MAX_INSTANCES \
        --target-load-balancing-utilization $TARGET_UTILIZATION \
        --zone $ZONE

      위 명령어는 관리형 인스턴스 그룹에서 자동 확장 처리를 만들어 인스턴스를 최대 10개로 자동 확장합니다. 부하 분산기의 사용률이 50%가 넘으면 새 인스턴스가 추가되고 사용률이 50% 아래로 떨어지면 인스턴스가 삭제됩니다.

    2. 방화벽 규칙을 만듭니다.

      # Check if the firewall rule has been created in previous steps of the documentation
      if gcloud compute firewall-rules list --filter="name~'default-allow-http-8080'" \
        --format="table(name)" | grep -q 'NAME'; then
        echo "Firewall rule default-allow-http-8080 already exists."
      else
        gcloud compute firewall-rules create default-allow-http-8080 \
          --allow tcp:8080 \
          --source-ranges 0.0.0.0/0 \
          --target-tags http-server \
          --description "Allow port 8080 access to http-server"
      fi
      

    3. 인스턴스 중 하나 이상이 HEALTHY 상태를 보고할 때까지 진행 상태를 확인합니다.

      gcloud compute backend-services get-health my-app-service --global
      

    앱 보기

    1. 부하 분산기의 전달 IP 주소를 가져옵니다.

      gcloud compute forwarding-rules list --global
      

      IP 주소의 전달 규칙은 IP_ADDRESS 열에 있습니다.

    2. 브라우저에서 목록의 IP 주소를 입력합니다. 이제 부하가 분산되고 자동 확장된 앱이 Compute Engine에서 실행 중입니다.

    배포 관리 및 모니터링

    여러 인스턴스를 관리하는 것도 단일 인스턴스를 관리하는 것처럼 쉽습니다. GCP Console을 사용하여 부하 분산, 자동 확장, 관리형 인스턴스 그룹을 모니터링할 수 있습니다.

    인스턴스 그룹과 자동 확장 구성 관리는 Compute > Compute Engine > 인스턴스 그룹 섹션에서 수행할 수 있습니다.

    URL 맵과 백엔드 서비스 등 부하 분산 구성 관리는 네트워크 서비스 > 부하 분산 섹션에서 수행할 수 있습니다.

삭제

이 가이드에서 사용한 리소스 비용이 Google Cloud Platform 계정에 청구되지 않도록 하는 방법은 다음과 같습니다.

teardown 스크립트 실행

deploy.sh 스크립트를 실행한 경우 teardown.sh 스크립트를 실행하여 deploy.sh 스크립트에서 만든 모든 리소스를 삭제합니다. 그러면 프로젝트가 deploy.sh 스크립트를 실행하기 전의 상태가 되고 추가로 청구되는 것을 방지합니다. 이 가이드의 앞 부분에서 만든 단일 인스턴스와 Storage 버킷을 삭제하려면 다음 섹션의 안내를 따르세요.

수동으로 리소스 삭제

이 가이드의 단계를 수동으로 수행한 경우, 생성된 클라우드 리소스를 수동으로 삭제할 수 있습니다.

부하 분산기 삭제

  1. GCP Console에서 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 삭제하려는 부하 분산기 옆에 있는 체크박스를 클릭합니다.

  3. 페이지 맨 위에 있는 삭제 버튼을 클릭하여 부하 분산기를 삭제합니다.

  4. 부하 분산기 삭제 대화상자에서 연결된 백엔드 서비스와 상태 확인 리소스를 선택합니다.

  5. 부하 분산기 삭제 버튼을 클릭하여 부하 분산기 및 연결된 리소스를 삭제합니다.

Compute Engine 관리형 인스턴스 그룹 삭제

Compute Engine 인스턴스 그룹을 삭제하는 방법은 다음과 같습니다.

  1. GCP Console에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹 페이지로 이동

  2. 다음의 옆에 있는 체크박스를 클릭합니다. 삭제할 인스턴스 그룹
  3. 페이지 상단의 삭제 버튼을 클릭하여 인스턴스 그룹을 삭제합니다.

단일 Compute Engine 인스턴스 삭제

Compute Engine 인스턴스를 삭제하는 방법:

  1. GCP Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 다음의 옆에 있는 체크박스를 클릭합니다. 삭제할 인스턴스
  3. 페이지 상단의 삭제 버튼을 클릭하여 인스턴스를 삭제합니다.

Cloud Storage 버킷 삭제

Cloud Storage 버킷을 삭제하는 방법은 다음과 같습니다.

  1. GCP Console에서 Cloud Storage 브라우저로 이동합니다.

    Cloud Storage 브라우저로 이동

  2. 삭제할 버킷 옆의 체크박스를 클릭합니다.
  3. 페이지 상단의 삭제 버튼을 클릭하여 버킷을 삭제합니다.

다음 단계

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

다음에 대한 의견 보내기...