

# 使用プロファイルの作成と管理
<a name="start-usage-profiles-managing"></a>

## AWS Glue 使用プロファイルの作成
<a name="w2aac15c15c19b3"></a>

管理者は使用プロファイルを作成し、さまざまなユーザーに割り当てる必要があります。使用プロファイルを作成するときは、デフォルト値と、さまざまなジョブおよびセッションパラメータに許可される範囲の値を指定してください。ジョブまたはインタラクティブセッションには、少なくとも 1 つのパラメータを設定する必要があります。ジョブにパラメータ値が指定されていない場合、使用するデフォルト値をカスタマイズすることができます。また、このプロファイルを使用するときにユーザーがパラメータ値を指定した場合、範囲の制限または検証に許可される値のセットを設定することができます。

デフォルトは、管理者がジョブの作成者を支援するために設定したベストプラクティスです。ユーザーが新しいジョブを作成し、タイムアウト値を設定しない場合は、使用プロファイルのデフォルトのタイムアウトが適用されます。作成者にプロファイルがない場合、AWS Glue サービスのデフォルトが適用され、ジョブの定義に保存されます。ランタイム時には、AWS Glue はプロファイルに設定された制限 (最小、最大、許可されたワーカー) を適用します。

 パラメータは一度設定すると、他のすべてのパラメータは任意となります。ジョブまたはインタラクティブセッション用にカスタマイズできるパラメータは次のとおりです。
+  **ワーカーの数** - コンピューティングリソースの過剰な使用を避けるため、ワーカー数を制限します。デフォルト値、最小値、最大値を設定できます。最小値は 1 です。
+  **ワーカータイプ** - ワークロードに関連するワーカータイプを制限します。デフォルトのタイプを設定し、ユーザープロファイルのワーカータイプを許可できます。
+  **タイムアウト** - ジョブまたはインタラクティブセッションが終了する前にリソースを実行および消費できる最大時間を定義します。ジョブの長時間実行を避けるためにタイムアウト値をセットアップします。

  デフォルト値、最小値、最大値を分単位で設定できます。最小値は1 (分) です。AWS Glue デフォルトのタイムアウトは 2,880 分ですが、使用プロファイルで任意のデフォルト値を設定できます。

  「デフォルト」の値を設定するのがベストプラクティスです。ユーザーが値を設定しなかった場合、この値がジョブまたはセッションの作成に使用されます。
+  **アイドルタイムアウト** - セルの実行後からタイムアウトするまでにインタラクティブセッションが非アクティブ状態である分数を定義します。作業の完了後、インタラクティブセッション終了のアイドルタイムアウトを定義します。アイドルタイムアウトの範囲は、タイムアウトの制限内である必要があります。

  デフォルト値、最小値、最大値を分単位で設定できます。最小値は1 (分) です。AWS Glue デフォルトのタイムアウトは 2,880 分ですが、使用プロファイルで任意のデフォルト値を設定できます。

  「デフォルト」の値を設定するのがベストプラクティスです。ユーザーが値を設定しなかった場合に、この値がセッションの作成に使用されます。

**管理者として AWS Glue 使用プロファイルを作成するには (コンソール)**

1. 左側のナビゲーションメニューで **[コスト管理]** を選択します。

1. **[使用プロファイルの作成]** を選択します。

1. 使用プロファイルの **[使用プロファイル名]** を入力します。

1. 他のユーザーが使用プロファイルの目的を認識できるようなオプションの説明を入力します。

1. プロファイルのパラメータのうち少なくとも 1 つを定義します。フォーム内のどのフィールドもパラメータフィールドです。例えば、最小セッションアイドルタイムアウト値です。

1. 使用プロファイルに適用される任意のタグを定義します。

1. **[保存]** を選択します。  
![AWS Glue で使用プロファイルを作成する管理者の例。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/usage-profiles-2-create.png)

**使用プロファイルを作成するには (AWS CLI)**

1. 次のコマンドを入力します。

   ```
   aws glue create-usage-profile --name {{profile-name}} --configuration {{file://config.json}} --tags {{list-of-tags}}
   ```

   ここでは、config.json はインタラクティブセッション (`SessionConfiguration`) とジョブ (`JobConfiguration`) のパラメータ値を定義できます。

   ```
   //config.json (There is a separate blob for session/job configuration
   {
       "SessionConfiguration": {
           "timeout": {
               "DefaultValue": "2880",
               "MinValue": "100",
               "MaxValue": "4000"
           },
           "idleTimeout": {
               "DefaultValue": "30",
               "MinValue": "10",
               "MaxValue": "4000"
           },
           "workerType": {
               "DefaultValue": "G.2X",
               "AllowedValues": [
                   "G.1X",
                   "G.2X",
                   "G.4X",
                   "G.8X",
                   "G.12X",
                   "G.16X",
                   "R.1X",
                   "R.2X",
                   "R.4X",
                   "R.8X"
               ]
           },
           "numberOfWorkers": {
               "DefaultValue": "10",
               "MinValue": "1",
               "MaxValue": "10"
           }
       },
       "JobConfiguration": {
           "timeout": {
               "DefaultValue": "2880",
               "MinValue": "100",
               "MaxValue": "4000"
           },
           "workerType": {
               "DefaultValue": "G.2X",
               "AllowedValues": [
                   "G.1X",
                   "G.2X",
                   "G.4X",
                   "G.8X",
                   "G.12X",
                   "G.16X",
                   "R.1X",
                   "R.2X",
                   "R.4X",
                   "R.8X"
               ]
           },
           "numberOfWorkers": {
               "DefaultValue": "10",
               "MinValue": "1",
               "MaxValue": "10"
           }
       }
   }
   ```

1. 次のコマンドを入力すると、作成された使用プロファイルを確認できます。

   ```
   aws glue get-usage-profile --name {{profile-name}}
   ```

   レスポンスは以下のようになります。

   ```
   {
       "ProfileName": "foo",
       "Configuration": {
           "SessionConfiguration": {
               "numberOfWorkers": {
                   "DefaultValue": "10",
                   "MinValue": "1",
                   "MaxValue": "10"
               },
               "workerType": {
                   "DefaultValue": "G.2X",
                   "AllowedValues": [
                       "G.1X",
                       "G.2X",
                       "G.4X",
                       "G.8X",
                       "G.12X",
                       "G.16X",
                       "R.1X",
                       "R.2X",
                       "R.4X",
                       "R.8X"
                   ]
               },
               "timeout": {
                   "DefaultValue": "2880",
                   "MinValue": "100",
                   "MaxValue": "4000"
               },
               "idleTimeout": {
                   "DefaultValue": "30",
                   "MinValue": "10",
                   "MaxValue": "4000"
               }
           },
           "JobConfiguration": {
               "numberOfWorkers": {
                   "DefaultValue": "10",
                   "MinValue": "1",
                   "MaxValue": "10"
               },
               "workerType": {
                   "DefaultValue": "G.2X",
                   "AllowedValues": [
                       "G.1X",
                       "G.2X",
                       "G.4X",
                       "G.8X",
                       "G.12X",
                       "G.16X",
                       "R.1X",
                       "R.2X",
                       "R.4X",
                       "R.8X"
                   ]
               },
               "timeout": {
                   "DefaultValue": "2880",
                   "MinValue": "100",
                   "MaxValue": "4000"
               }
           }
       },
       "CreatedOn": "2024-01-19T23:15:24.542000+00:00"
   }
   ```

使用プロファイルの管理に使用される追加 CLI コマンド:
+ aws glue list-usage-profiles
+ aws glue update-usage-profile --name {{profile-name}} --configuration {{file://config.json}}
+ aws glue delete-usage-profile --name {{profile-name}}

## 使用プロファイルの編集
<a name="w2aac15c15c19b5"></a>

管理者は、作成した使用プロファイルを編集して、ジョブとインタラクティブセッションのプロファイルパラメータ値を変更できます。

使用プロファイルを編集するには:

**管理者として AWS Glue 使用プロファイルを編集するには (コンソール)**

1. 左側のナビゲーションメニューで **[コスト管理]** を選択します。

1. 編集する権限を持つ使用プロファイルを選択し、**[編集]** を選択します。

1. 必要に応じてプロファイルを変更します。デフォルトでは、すでに値を持つパラメータは展開されます。

1. **[編集を保存]** を選択します。  
![AWS Glue の使用プロファイルを編集するユーザーの例。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/usage-profiles-4-edit.png)

**使用プロファイルを編集するには (AWS CLI)**
+ 次のコマンドを入力します。上記の create コマンドと同じ `--configuration` ファイル構文が使用されます。

  ```
  aws glue update-usage-profile --name {{profile-name}} --configuration {{file://config.json}}
  ```

  ここで、config.json はインタラクティブセッション (`SessionConfiguration`) とジョブ (`JobConfiguration`) のパラメータ値を定義します。

## 使用プロファイルの割り当て
<a name="w2aac15c15c19b7"></a>

**[使用プロファイル]** ページの **[使用ステータス]** 列には、使用プロファイルがユーザーに割り当てられているかどうかが表示されます。ステータスにカーソルを合わせると、割り当てられた IAM エンティティが表示されます。

管理者は、AWS Glue リソースを作成するユーザー/ロールに AWS Glue 使用プロファイルを割り当てることができます。プロファイルの割り当てとは、2 つのアクションの組み合わせです:
+ IAM ユーザー/ロールタグを `glue:UsageProfile` キーで更新し、その後に
+ ユーザー/ロールの IAM ポリシーを更新。

AWS Glue Studio を使用してジョブ/インタラクティブセッションを作成するユーザーの場合、管理者は次のロールにタグを付けます:
+ ジョブの制限については、管理者はログインしたコンソールロールにタグを付けます
+ インタラクティブセッションの制限については、管理者はノートブックの作成時にユーザーが提供するロールにタグを付けます

AWS Glue リソースを作成する IAM ユーザー/ロールで管理者が更新する必要があるポリシーの例を次に示します:

```
{
    "Effect": "Allow",
    "Action": [
        "glue:GetUsageProfile"
    ],
    "Resource": [
        "arn:aws:glue:us-east-1:123456789012:usageProfile/foo"
    ]
}
```

AWS Glue は、AWS Glue 使用プロファイルで指定された値に基づいてジョブ、ジョブ実行、およびセッションリクエストを検証し、リクエストが許可されていない場合は例外を発生させます。同期 API の場合、エラーがユーザーにスローされます。非同期パスの場合、失敗したジョブ実行は、入力パラメータがユーザー/ロールに割り当てられたプロファイルの許容範囲外であるというエラーメッセージで作成されます。

使用プロファイルをユーザー/ロールに割り当てるには:

1. IAM (Identity and Access Management) コンソールを開きます。

1. ナビゲーションペインで、**[ユーザー]** または **[ロール]** を選択します。

1. ユーザーまたはロールを選択します。

1. **[タグ]** タブを選択します。

1. **[新しいタグを追加]** をクリックします。

1. **[キー]** が `glue:UsageProfile`、**[値]** が使用プロファイルの名前になっているタグを追加します。

1. **[変更を保存]** を選択します。  
![IAM ロールにタグを追加する例。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/usage-profiles-iam-role-tagged.png)

## 割り当てられた使用プロファイルを表示
<a name="w2aac15c15c19b9"></a>

ユーザーは割り当てられた使用プロファイルを表示できるほか、使用プロファイルを使って、API コールを行って AWS Glue ジョブやセッションリソースを作成したり、ジョブを開始したりできます。

プロファイルのアクセス許可は IAM ポリシーで提供されます。発信者ポリシーに `glue:UsageProfile` のアクセス許可がある限り、ユーザーはプロファイルを表示できます。それ以外の場合は「アクセス拒否」というエラーが表示されます。

割り当てられた使用プロファイルを表示するには:

1. 左側のナビゲーションメニューで **[コスト管理]** を選択します。

1. 表示するアクセス許可がある使用プロファイルを選択します。

![AWS Glue で割り当てられた使用プロファイルを表示するユーザーの例。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/usage-profiles-3-view.png)
