タグを使用して使用状況を属性付けし、追跡する
この記事では、タグを使用してコンピュートの使用状況を特定のワークスペース、チーム、プロジェクト、またはユーザーに関連付け、コストの追跡と予算編成をサポートする方法について説明します。
タグには次の 2 つのタイプがあります。
- デフォルト tags: クラウドにデプロイされたリソースに Databricks によって自動的に適用されます。 これらは、ベンダー、クラスター ID、作成者などの基本的なメタデータを提供します。
- カスタムタグ: コンピュート リソースおよびサーバレス ワークロードに追加できるユーザー定義タグ。 これにより、きめ細かな追跡、レポート作成、予算編成が可能になります。
タグデータはプレーンテキストとして保存され、グローバルに複製できます。リソースのセキュリティを損なう可能性のあるタグ名、値、または記述子は使用しないでください。たとえば、個人情報や機密情報を含むタグ名、値、または記述子は使用しないでください。
デフォルトのタグ
Databricks は、クラウド アカウントにデプロイするコンピュート リソースにデフォルト タグを自動的に追加します。 これらのタグは、使用状況を Databricks に関連付け、リソースの名前、ID、作成者など、リソースに関する基本情報を提供します。
デフォルトのタグは、コスト分析のためにAWS EC2およびAWS EBSインスタンスに自動的に伝播されます。
デフォルトのタグのキーと値
Databricksは、次のデフォルト タグをコンピュート リソースに追加します。
タグキー | 値 |
|---|---|
| 定数値: |
| Databricks クラスターの内部 ID |
| クラスターの名前 |
| クラスターを作成したユーザーのユーザー名(Eメールアドレス) |
| ジョブ名 (ジョブ コンピュートにのみ反映されます)。 Jobs API 2.0 を使用する場合、これは |
| ジョブ ID (ジョブ コンピュートにのみ反映されます) |
データプロファイリングで使用されるコンピュートには、次の追加タグが含まれます。
タグキー | 値 |
|---|---|
| True |
| 監視対象のテーブルの ID |
| モニターが作成されたワークスペースの ID |
| 監視対象テーブルが存在するメタストアの ID |
Databricks は、プールとプールによって作成されたコンピュート リソースに次のデフォルト タグを追加します。
タグキー | 値 |
|---|---|
| 定数値: |
| プールを作成したユーザーの Databricks 内部 ID |
| プールの Databricks 内部 ID |
カスタムタグ
カスタム タグを使用すると、コンピュートの使用状況を特定のチーム、プロジェクト、またはコスト センターに、デフォルト タグよりも細かく関連付けることができます。 これらのタグはユーザーまたは管理者によって適用され、アカウントの使用状況ログと該当するクラウドリソースの両方に伝播されます。これらのタグは、Databricks アカウントで予算を作成および監視するためにも使用されます。
カスタムタグでサポートされているリソース
Databricks によって管理される次のオブジェクトにカスタム タグを追加できます。
オブジェクト | タグ付けインターフェイス (UI) | タグ付けインターフェイス (API) |
|---|---|---|
ワークスペース | N/A | |
プール | Databricks ワークスペースのプール UI | |
汎用とジョブコンピュート | Databricks ワークスペースのコンピュート UI | |
SQLウェアハウス | Databricks ワークスペースの SQL ウェアハウス UI | |
データベースのインスタンス | Databricks ワークスペースのデータベース インスタンス UI |
カスタムタグは、GCE ログでは小文字で表示されます。文字が文字、数字、アンダースコア、またはダッシュでない場合、文字は削除されます。たとえば、 My Key は mykey になり、 My.Val は myvalになります。
キー Name を持つカスタム タグをクラスターに割り当てないでください。 すべてのクラスターには、 Databricksによって値が設定されるタグ Name があります。 キー Name に関連付けられた値を変更すると、クラスターは Databricksで追跡できなくなります。 その結果、クラスターはアイドル状態になった後に終了せず、引き続き使用コストが発生します。
Tag サーバレス コンピュート workloads
プレビュー
この機能は パブリック プレビュー段階です。
サーバレス コンピュートの使用状況をユーザー、グループ、またはプロジェクトに帰属させるには、サーバレス予算ポリシーを使用できます。 ユーザにサーバレス予算ポリシーが割り当てられると、そのユーザのサーバレス使用状況は、ポリシーのカスタムタグで自動的にタグ付けされます。 サーバレス予算ポリシーは、サーバレス ノートブック、ジョブ、パイプライン、モデルサービング エンドポイントに適用できます。
サーバレス コンピュートの利用状況は、アカウントの 課金利用 システムテーブルに記録されています。 従来の DBU 使用状況レポートには、サーバレス使用状況タグやサーバレス予算ポリシー タグは含まれません。
サーバレス 予算ポリシーでの属性の使用を参照してください。
タグの伝播
タグは、クラスターがプールから作成されたかどうかによって、 AWS EC2 インスタンスに異なる方法で伝達されます。
クラスターがプールから作成された場合、その EC2 インスタンスは、クラスタータグではなく、カスタムおよびデフォルトワークスペースタグとプールタグのみを継承します。 したがって、プールからクラスターを作成する場合は、必要なすべてのカスタム クラスタータグをワークスペースまたはプールに割り当ててください。
クラスター タグとプール タグはどちらも、クラスターがプールから作成された場合でも、 DBU 使用状況レポートに反映されます。
タグ競合の解決
カスタム タグ (ワークスペース、クラスター、またはプール タグ) のキー名がDatabricksデフォルトタグと同じである場合、カスタム タグには伝播中に自動的にx_というプレフィックスが付けられます。 デフォルトの Databricks タグは元のキー名を保持します。
たとえば、 Databricksすべてのクラスターに確実なクラスタータグvendor = Databricksを適用します。 カスタムワークスペースタグvendor = AWS Databricksを追加すると、デフォルトのvendorタグと競合します。AWS 使用状況レポートに伝播されると、カスタムワークスペースタグはx_vendor = AWS Databricksになりますが、デフォルトのクラスタータグはvendor = Databricksままになります。
コンピュート ポリシーを通じて追加された競合するカスタム タグは、 x_プレフィックスで自動解決されず、クラスターまたはプールが無効な設定エラーで失敗します。 コンピュート ポリシーでは、 Databricksのデフォルトタグ キーと競合するタグ キーを追加しないようにしてください。
:::
タグの施行
特定のカスタム タグの使用を強制するには、コンピュート ポリシーを使用できます。 カスタムタグの適用をご覧ください。サーバレス コンピュート ワークロードにカスタムタグを適用するには、 サーバレス 予算ポリシーを使用します。
ワークスペース全体でコンピュート リソースを作成するときに特定のタグが常に入力されるようにするには、ワークスペースのプライマリIAM IAMロール (ワークスペースのセットアップ中に作成されたロール、アクセスが必要な場合はAWS 管理者に問い合わせる) に特定の ポリシー を適用できます。IAM ポリシーには、必須のタグキーとオプションの値に対する明示的な Deny ステートメント を含める必要があります。許可された値のいずれかを持つ必要なタグが指定されていない場合、 クラスターの作成は失敗します 。
たとえば、Department タグと Project タグを強制し、前者には指定された値のみを許可し、後者には空でない自由形式の値を設定する場合は、次のような IAM ポリシーを適用できます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "MandateLaunchWithTag1",
"Effect": "Deny",
"Action": ["ec2:RunInstances", "ec2:CreateTags"],
"Resource": "arn:aws:ec2:region:accountId:instance/*",
"Condition": {
"StringNotEqualsIgnoreCase": {
"aws:RequestTag/Department": ["Deptt1", "Deptt2", "Deptt3"]
}
}
},
{
"Sid": "MandateLaunchWithTag2",
"Effect": "Deny",
"Action": ["ec2:RunInstances", "ec2:CreateTags"],
"Resource": "arn:aws:ec2:region:accountId:instance/*",
"Condition": {
"StringNotLike": {
"aws:RequestTag/Project": "?*"
}
}
}
]
}
オンデマンドインスタンスのみ、スポットインスタンスのみ、またはその両方を持つクラスターが存在するシナリオを効果的にカバーするには、各タグに ec2:RunInstances アクションと ec2:CreateTags アクションの両方が必要です。
Databricks では、タグごとに個別のポリシー ステートメントを追加することをお勧めします。 全体的なポリシーが長くなる可能性がありますが、デバッグは簡単です。 ポリシーで使用できる演算子の一覧については、 IAM ポリシー条件演算子のリファレンス を参照してください。
IAM ポリシーによるクラスター作成エラーには、次のencoded error messageが表示されます。
Cloud Provider Launch Failure: A cloud provider error was encountered while setting up the cluster.
このメッセージがエンコードされるのは、認証状況の詳細が、アクションを要求したユーザーには表示されない特権情報を構成する可能性があるためです。 このようなメッセージをデコードする方法については、「DecodeAuthorizationMessage API (または CLI) を参照してください。
制限
- タグのキーと値には、文字、スペース、数字、または文字
+、-、=、.、_、:、/、@のみを含めることができます。 他の文字を含むタグは無効です。 - タグキーの名前または値を変更した場合、これらの変更はクラスターの再起動またはプールの拡張後にのみ適用されます。
- クラスターのカスタム タグがクラスタープールのカスタム タグと競合する場合、クラスターは作成できません。
- 変更後にカスタム ワークスペース タグが反映されるまでに最大 1 時間かかる場合があります。
- ワークスペースリソースに割り当てることができるタグは 20 個までです。