App Engine リソースのラベル付け

ラベルを使用すると、互いに関連するリソースを簡単にグループ化できます。ラベルを使用すると、App Engine サービスのリソースへの課金方法をよりきめ細かく表示できます。ネストされたフィルタリングなどの機能を利用して、リソースのより正確な検索を実行することもできます。

ラベルは、次のように使用します。

  • 作成するサービスの種類にラベルを付けます。たとえば、service:defaultservice:backendservice:frontend などのラベルを App Engine サービスに追加した場合、これらの異なるサービスによる送信帯域幅、インスタンス時間、その他のリソースの使用方法を比較できます。

  • チームまたはコストセンターごとにラベルを付けて、異なるチームが所有するプロジェクトを識別します。これは、原価計算や予算編成などで使用します。たとえば、team:marketingteam:research です。

  • サービスが実行されている環境にラベル付けします。たとえば、environment:prodenvironment:test です。

  • リソースの担当者が存在する場合には、オーナーまたは連絡先担当者でラベル付けします。

  • サービスのステータスにラベルを付けます。たとえば、state:inusestate:readyfordeletion です。

ラベルは課金データにのみ使用でき、他のツール(Metrics Explorer など)には使用できません。

制限事項

  • 各リソースには最大 64 個のラベルを割り当てることができます。
  • 明示的にラベルを付けることができるのはサービスのみです。バージョンとインスタンスは、親サービスからラベルを継承します。
  • App Engine フレキシブル環境では、Datastore モードの Firestore(Datastore)の使用に対する課金ラベルがサポートされていません。

ラベルを追加または変更する

App Engine サービスにラベルを追加するには:

Console

  1. App Engine の [サービス] ページに移動します。

    [サービス] に移動

  2. ラベルを付けるサービスの横にあるチェックボックスを選択します。

  3. [情報パネルを表示] をクリックし、[ラベル] タブを選択してラベル列を展開します。

  4. [ラベルを追加] をクリックして、選択したサービスに Key-Value ペアを追加します。たとえば、ラベル env:prod を追加するには、[キー] に「env」、[] に「prod」と入力します。

  5. 変更を保存します。

Admin API

ラベルの追加と設定には Service リソースを使用します。Admin API のリファレンス ドキュメントをご覧ください。

ラベル付きのサービスに関連付けられた課金データの表示

アプリケーションでラベルを使用すると、課金データを細かく分類できるようになります。たとえば、日ごと、サービスごとの送信帯域幅など、特定のリソースのコストを表示できます。これにより、アプリケーションの 1 日あたりのコストを把握し、アプリケーションのリソース使用量を最適化できます。

課金のラベルを表示するには、BigQuery にデータをエクスポートしてから、そのデータに対してクエリを実行します。

  1. BigQuery に課金データをエクスポートします

    BigQuery Export を有効にしてからデータが表示されるまでに、数時間かかる場合があります。

  2. Google Cloud コンソールの [BigQuery] ページで、プロジェクトと課金データセットを選択します。

  3. BigQuery Export から作成されたテーブルに対してクエリを実行します。

ラベルは繰り返しフィールドとしてデータセットに追加されます。そのため、コスト データセットの場合には 1 行に複数のラベルが追加されることがあります。そのような場合には、ラベルで簡単にクエリを実行できるようにテーブルをラベル フィールドでフラット化することをおすすめします。

たとえば、次のクエリは、ラベルが存在する送信帯域幅のコストデータ、ラベルキー、ラベル値を取得します。

SELECT
  product,
  resource_type,
  start_time,
  end_time,
  labels.key,
  labels.value,
  cost
FROM (FLATTEN([YOUR_DATASET.TABLEID], labels))
WHERE
  cost > 0.0
  and labels.key is not null
  and resource_type = 'Out Bandwidth'
LIMIT 100

BigQuery は、フラット化された出力でデータを返します。

product resource_type start_time end_time labels_key labels_value cost
App Engine Out Bandwidth 2017-10-07 22:00:00 2017-10-07 23:00:00 service default 0.020033
App Engine Out Bandwidth 2017-10-07 13:00:00 2017-10-07 14:00:00 service frontend 0.016042
App Engine Out Bandwidth 2017-10-07 06:00:00 2017-10-07 07:00:00 service backend_task 0.013125
App Engine Out Bandwidth 2017-10-07 21:00:00 2017-10-07 22:00:00 service default 0.020722
App Engine Out Bandwidth 2017-10-07 19:00:00 2017-10-07 20:00:00 service frontend 0.020725
App Engine Out Bandwidth 2017-10-08 04:00:00 2017-10-08 05:00:00 service backend_task 0.02072
App Engine Out Bandwidth 2017-10-08 02:00:00 2017-10-08 03:00:00 service default 0.020723
App Engine Out Bandwidth 2017-10-07 14:00:00 2017-10-07 15:00:00 service frontend 0.020724
App Engine Out Bandwidth 2017-10-07 23:00:00 2017-10-08 00:00:00 service backend_task 0.021417

請求レポートの期間

レポートの各日が 24 時間全体をカバーするように、エクスポートする課金データには、直近の太平洋時間午前 0 時までのデータのみが含まれます。たとえば、12 月 3 日の正午に課金データをエクスポートする場合、エクスポートには 12 月 2 日午後 11 時 59 分までのデータが含まれます。

レポートの各日付について、その日の初めに存在するラベルに課金データが関連付けられます。たとえば、12 月 3 日の太平洋時間正午にラベルを作成した場合、その日の初めにはそのラベルは存在していないため、12 月 3 日のレポートではそのラベルに対してデータは関連付けられません。そのラベルに対するデータは 12 月 4 日から関連付けられます。

正午に作成され、同じ 24 時間以内に削除されたラベルには、データは関連付けられません。

Google Cloud コンソールでのラベルの表示

リソースにラベルを付けると、Google Cloud コンソールでラベルを表示できます。

  1. App Engine の [サービス] ページに移動します。

    [サービス] に移動

  2. サービスごとに、[Labels] 列にすべてのラベルが表示されます。

ラベルの削除

サービスからラベルを削除するには:

  1. App Engine の [サービス] ページに移動します。

    App Engine の [サービス] に移動

  2. ラベルを削除するリソースの横にあるチェックボックスをオンにします。

  3. [情報パネルを表示] をクリックし、[ラベル] タブを選択してラベル列を展開します。

  4. 削除するすべてのラベルの横にある X をクリックします。

  5. 変更を保存します。