PHP バージョン 5.5 はコミュニティでサポートを終了したため、新しいアプリでは PHP 7 ランタイムを使用することを強くおすすめします。

Cloud Storage の使用

PHP 5 アプリで実行時にファイルを読み書きする、またはムービー、画像などの静的コンテンツを提供する必要がある場合は、Cloud Storage バケットの使用をおすすめします。

アプリを作成すると、App Engine がデフォルトのバケットを作成します。このバケットでは、ストレージの最初の 5 GB が無料で提供され、Cloud Storage I/O オペレーションの無料の割り当ても用意されています。別の Cloud Storage バケットを作成することもできますが、無料の 5 GB ストレージが用意されているのは、デフォルトのバケットのみです。

App Engine での Cloud Storage の使用

App Engine アプリから Cloud Storage バケットを使用するには:

  1. App Engine プロジェクトの既存のバケットの名前を確認します。Cloud Storage からデータをアップロードまたはダウンロードするときに、この名前を指定します。

    Cloud Storage バケットの名前をアプリケーションにハード コーディングするのではなく、アプリケーションの環境変数に保存することをおすすめします。

  2. アプリで Cloud Storage を依存関係として宣言するには、google/cloud-storage をアプリの composer.json ファイルに追加し、アプリのディレクトリから composer install を実行します。詳しくは、Composer をご覧ください。

  3. ストリーム ラッパーとしてアプリに Google\Cloud\Storage\StorageClient を登録してください。次に、gs プロトコルを使用して、ファイルを読み書きします。

    ストリーム ラッパーの登録と使用例をご覧ください。

    代わりに、Google Cloud クライアント ライブラリを直接使用することもできます。

デフォルト バケットの使用

アプリを作成すると、App Engine により、最初の 5 GB のストレージを無料で提供するデフォルトのバケットが作成されます。また、デフォルトのバケットには、Cloud Storage I/O オペレーション用の無料の割り当ても含まれています。詳しくは、料金、割り当て、上限をご覧ください。ストレージが 5 GB の上限を超えると課金が開始します。

デフォルト バケットの名前は、次の形式で指定されます。

project-id.appspot.com

App Engine は、アプリケーションの新しいバージョンをデプロイする際に、一時ストレージに使用するバケットも作成します。staging.project-id.appspot.com という名前のこのバケットは、App Engine でのみ使用できます。アプリケーションはこのバケットとはやり取りできません。

バケットとオブジェクトの権限の設定

アプリに関連付けられているデフォルトのサービス アカウントには、プロジェクトのバケットの読み取りと書き込みに必要なすべての権限が割り当てられています。

これらの権限を管理するために、App Engine アプリのそれぞれがデフォルトのサービス アカウントを使用します。デフォルトのサービス アカウントにより、アプリには同じプロジェクト内にある Cloud Storage バケットに対して読み取りと書き込みを行うための完全アクセス権が与えられます。デフォルトのサービス アカウントの権限を変更することはできますが、必要な権限を IAM ロールに割り当てなければ、アプリがデータベースにアクセスできなくなる可能性があります。

他のユーザー、アプリ、プロジェクトがバケットとその内容にアクセスできるようにするには、バケットの権限の設定オブジェクトの権限の設定をご覧ください。

ローカル開発用サーバーでの Cloud Storage の使用

App Engine のローカル開発用サーバーは、Cloud Storage をエミュレートしないため、インターネットを介して、すべての Cloud Storage リクエストを実際の Cloud Storage バケットに送信する必要があります。

料金、割り当て、上限

Cloud Storage への Cloud Storage クライアント ライブラリの呼び出しに関連する帯域幅課金はありません。ただし、オペレーション料金は適用されます。また、ライブラリは URL 取得サービスを使用して Cloud Storage とやり取りするため、呼び出しは URL の取得割り当てに対してカウントされます。

なお、Cloud Storage は従量課金サービスであり、Cloud Storage の価格表に従って課金されることに注意してください。