App Engine 가변형 환경에서 WordPress 호스팅


이 가이드에서는 App Engine 가변형 환경에 작은 WordPress 사이트를 배포하는 방법을 보여줍니다.

목표

  • Cloud SQL 2세대 인스턴스 만들기
  • 샘플 WordPress 사이트 구성
  • App Engine 가변형 환경에 샘플 WordPress 사이트 배포

비용

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. 필요한 API를 사용 설정합니다.

    API 사용 설정

  5. Google Cloud CLI를 설치합니다.
  6. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  9. 필요한 API를 사용 설정합니다.

    API 사용 설정

  10. Google Cloud CLI를 설치합니다.
  11. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  12. 다음 단계에 따라 사용자 인증 정보를 만듭니다.
    • Google Cloud 콘솔에서 사용자 인증 정보 페이지로 이동합니다.

      API 사용자 인증 정보 페이지 열기

    • 사용자 인증 정보 만들기를 클릭하고 서비스 계정 키를 선택합니다.
    • 서비스 계정 > App Engine 기본 서비스 계정을 선택합니다.
    • 만들기를 클릭합니다.
    • 다운로드한 키를 안전한 곳에 보관합니다.
  13. PHPComposer를 설치합니다.
  14. Cloud SQL 프록시를 다운로드하고 실행 파일로 만듭니다. 또한 Cloud SQL 프록시 실행 파일의 위치를 PATH 환경 변수에 추가합니다.
  15. MySQL 클라이언트를 설치하고 mysql 실행 파일의 위치가 PATH 환경 변수에 있는지 확인합니다.

Cloud SQL 2세대 인스턴스 만들기 및 구성

  1. Cloud SQL 2세대 인스턴스를 만듭니다.

    gcloud sql instances create tutorial-sql-instance \
        --activation-policy=ALWAYS \
        --tier=db-n1-standard-1 \
        --region=us-central1
    
  2. 인스턴스에 루트 비밀번호를 설정합니다.

    gcloud sql users set-password root --instance tutorial-sql-instance \
        --password [YOUR_SQL_ROOT_PASSWORD] \
        --host %
    

    [YOUR_SQL_ROOT_PASSWORD]는 원하는 대로 선택하는 안전한 비밀번호입니다.

  3. Cloud SQL 프록시를 다운로드하고 실행합니다.

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    cloud_sql_proxy \
        -dir /tmp/cloudsql \
        -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance=tcp:3306 \
        -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]
    

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

    • [YOUR_PROJECT_ID]는 Google Cloud 프로젝트 ID입니다.

    • [PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]은 이전에 다운로드한 서비스 계정 JSON 파일에 대한 경로입니다.

    다음 출력은 프록시가 새로 연결할 준비가 되었음을 나타냅니다.

    Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance
    Ready for new connections
    
  4. 다른 터미널 창에서 새 데이터베이스와 사용자를 만듭니다.

    mysql -h 127.0.0.1 -u root --password=[YOUR_SQL_ROOT_PASSWORD]
    mysql> create database tutorialdb;
    mysql> create user 'tutorial-user'@'%' identified by '[YOUR_DATABASE_PASSWORD]';
    mysql> grant all on tutorialdb.* to 'tutorial-user'@'%';
    mysql> exit
    

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

    • [YOUR_SQL_ROOT_PASSWORD]는 Cloud SQL 인스턴스의 루트 비밀번호입니다.
    • [YOUR_DATABASE_PASSWORD]는 원하는 대로 선택하는 안전한 비밀번호입니다.

WordPress 프로젝트 설정

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

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
    
  2. 샘플 코드가 있는 디렉토리로 이동합니다.

    cd php-docs-samples/appengine/flexible/wordpress
    
  3. 종속성 항목을 설치합니다.

    composer install
    
  4. helper 스크립트를 실행합니다.

    php wordpress.php setup -n \
        --dir=./wordpress-project \
        --db_instance=tutorial-sql-instance \
        --db_name=tutorialdb \
        --db_user=tutorial-user \
        --project_id=[YOUR_PROJECT_ID] \
        --db_password=[YOUR_DATABASE_PASSWORD]
    

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

    • [YOUR_PROJECT_ID]는 프로젝트 ID입니다.
    • [YOUR_DATABASE_PASSWORD]는 데이터베이스 비밀번호입니다.

    -dir 매개변수는 WordPress 프로젝트의 위치를 지정합니다.

  5. 도우미 스크립트는 wordpress-project/wordpress/wp-config.php에 정보를 작성합니다. wp-config.php의 콘텐츠를 검사하여 이름, 프로젝트 ID, 데이터베이스 비밀번호가 올바른지 확인합니다.

    if ($onGae) {
        /** Production environment */
        define('DB_HOST', ':/cloudsql/[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    } else {
        /** Local environment */
        define('DB_HOST', '127.0.0.1');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    }
    

App Engine 가변형 환경에 WordPress 프로젝트 배포

  1. WordPress 프로젝트 디렉토리로 이동합니다.

    cd wordpress-project
    
  2. WordPress 프로젝트를 배포합니다.

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    
  3. 브라우저에 다음 URL을 입력합니다.

    https://PROJECT_ID.REGION_ID.r.appspot.com

    다음을 바꿉니다.

WordPress, 플러그인, 테마 업데이트

WordPress, 플러그인, 테마를 항상 최신 상태로 유지해야 합니다. wp 도구를 사용하여 이러한 항목의 최신 업데이트를 유지할 수 있습니다. 업데이트한 후에는 WordPress 프로젝트를 다시 배포해야 합니다.

  1. WordPress를 업데이트합니다.

    vendor/bin/wp core update --path=wordpress
    
  2. 플러그인을 업데이트합니다.

    vendor/bin/wp plugin update --all --path=wordpress
    # Just in case it updates any of the dropins, copy the files:
    cp wordpress/wp-content/plugins/batcache/advanced-cache.php \
        wordpress/wp-content/plugins/memcached/object-cache.php \
        wordpress/wp-content
    
  3. 테마를 업데이트합니다.

    vendor/bin/wp theme update --all --path=wordpress
    
  4. 프로젝트를 다시 배포합니다.

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    

삭제

이 튜토리얼에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.

프로젝트 삭제

비용이 청구되지 않도록 하는 가장 쉬운 방법은 튜토리얼에서 만든 프로젝트를 삭제하는 것입니다.

프로젝트를 삭제하는 방법은 다음과 같습니다.

  1. Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

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

기본 이외의 앱 버전 삭제

프로젝트를 삭제하지 않으려면 기본 이외의 앱 버전을 삭제하여 비용을 줄일 수 있습니다.

앱 버전을 삭제하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 App Engine의 버전 페이지로 이동합니다.

    Versions로 이동

  2. 삭제할 기본이 아닌 앱 버전의 체크박스를 선택합니다.
  3. 앱 버전을 삭제하려면 삭제를 클릭합니다.

Cloud SQL 인스턴스 삭제

Cloud SQL 인스턴스를 삭제하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 인스턴스 페이지로 이동합니다.

    인스턴스로 이동

  2. 삭제할 SQL 인스턴스입니다.
  3. 인스턴스를 삭제하려면 삭제를 클릭한 후 안내를 따르세요.

다음 단계