

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# WorkSpaces アプリケーション使用状況レポート
<a name="configure-usage-reports"></a>

Amazon WorkSpaces アプリケーション使用状況レポートをサブスクライブして、ユーザーがサービスをどのように使用しているかに関する詳細なレポートを受け取ることができます。2 つの .csv ファイルは、毎日アカウントの Amazon Simple Storage Service (Amazon S3) バケットにエクスポートされます。

**注記**  
WorkSpaces Applications 使用状況レポートを有効にするには、2019 年 5 月 7 日以降にリリースされた WorkSpaces Applications エージェントのバージョンを使用するイメージを使用する必要があります。

**Topics**
+ [WorkSpaces アプリケーション使用状況レポートを有効にする](enable-usage-reports.md)
+ [WorkSpaces アプリケーション使用状況レポートフィールド](usage-reports-fields.md)
+ [カスタムレポートの作成と WorkSpaces アプリケーション使用状況データの分析](configure-custom-reports-analyze-usage-data.md)

# WorkSpaces アプリケーション使用状況レポートを有効にする
<a name="enable-usage-reports"></a>

使用状況レポートを受け取るには、WorkSpaces アプリケーションコンソール、 AWS Command Line Interface (AWS CLI)、または `CreateUsageReportSubscription` API オペレーションを使用してサブスクライブします。使用状況データを受信する AWS リージョンごとに、使用状況レポートを個別に有効にする必要があります。

**注記**  
使用状況レポートのサブスクライブはいつでも開始または停止できます。使用状況レポートのサブスクライブは無料ですが、S3 バケットに保存されたレポートには標準の Amazon S3 料金が適用されます。詳細については、[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/) を参照してください。

WorkSpaces アプリケーションコンソールを使用して WorkSpaces アプリケーションの使用状況レポートをサブスクライブするには、次の手順を実行します。

1. [https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) で WorkSpaces アプリケーションコンソールを開きます。

1. 使用状況レポートを有効にする AWS リージョンを選択します。

1. ナビゲーションペインで [**Usage Reports (使用状況レポート)**] を選択します。

1. [**有効**] を選択し、[**適用**] を選択してください。

セッションスクリプト設定でインスタンスセッションスクリプトと Amazon S3 ログ記録を有効にした場合、WorkSpaces Applications はスクリプト出力を保存するための S3 バケットを作成しました。そのバケットはアカウントとリージョンに固有のものです。この場合、使用状況レポートを有効にすると、WorkSpaces アプリケーションは同じバケットを使用して使用状況レポートを保存します。インスタンスセッションスクリプトをまだ有効にしていない場合、使用状況レポートを有効にすると、WorkSpaces アプリケーションは次の場所に新しい S3 バケットを作成します。

```
appstream-logs-region-code-account-id-without-hyphens-random-identifier
```

***region-code***  
使用状況レポートが有効になっている AWS リージョンのリージョンコード。

***account-id-without-hyphens***  
ご自身の Amazon Web Services アカウント ID ランダムな ID により、同じリージョンで他のバケットとの競合が発生することはありません。バケット名の最初の部分 `appstream-logs` は、複数のアカウントやリージョンにまたがる場合でも変更されません。

たとえば、アカウント番号 123456789012 で米国西部 (オレゴン) リージョン (us-west-2) で使用状況レポートを有効にすると、WorkSpaces Applications は、次の例に示す名前のように、そのリージョンのアカウント内に Amazon S3 バケットを作成します。

```
appstream-logs-us-west-2-1234567890123-abcdefg
```

適切なアクセス許可を持つ管理者のみが、このバケットを削除できます。

**Topics**
+ [WorkSpaces アプリケーションセッションレポート](usage-report-types-sessions-reports.md)
+ [WorkSpaces アプリケーションアプリケーションレポート](usage-report-types-applications-reports.md)

# WorkSpaces アプリケーションセッションレポート
<a name="usage-report-types-sessions-reports"></a>

ユーザーが Amazon Web Services アカウントで少なくとも 1 つのストリーミングセッションを起動する日ごとに、WorkSpaces Applications はセッションレポートを Amazon S3 バケットにエクスポートします。**daily-session-report-[YYYY]-[MM]-[DD].csv** という名前のレポートが、以下のフォルダパスを使用して、Amazon S3 アカウント内のネストフォルダ構造に保存されます。

[bucket\$1name]/sessions/schedule=DAILY/year=[YYYY]/month=[MM]/day=[DD]/

Amazon Athena を使用してレポートをクエリする場合、このネスト構造により、パーティション分割が容易になります。Athena はサーバーレスのインタラクティブなクエリサービスであり、このサービスを使用すると、S3 バケットに保存されているデータを標準の SQL により分析できます。詳細については、「[カスタムレポートの作成と WorkSpaces アプリケーション使用状況データの分析](configure-custom-reports-analyze-usage-data.md)」を参照してください。

各ユーザーセッションはセッションレポートの 1 つのレコードに記述されます。セッションレポートは毎日、レポート対象日の終了 (UTC 時間) から 24 時間以内に生成されます。セッションが複数日にまたがる場合、セッションレコードは、セッションが終了した日に対応するセッションレポートに含まれます。セッションレポートに含まれるデータについては、「[セッションレポートのフィールド](usage-reports-fields-sessions-reports.md)」を参照してください。

# WorkSpaces アプリケーションアプリケーションレポート
<a name="usage-report-types-applications-reports"></a>

ユーザーがストリーミングセッション中に少なくとも 1 つのアプリケーションを起動する日ごとに、WorkSpaces Applications はアプリケーションレポートを Amazon S3 バケットにエクスポートします。**daily-app-report-[YYYY]-[MM]-[DD].csv** という名前のレポートが、以下のフォルダパスを使用して、Amazon S3 アカウント内のネストフォルダ構造に保存されます。

[bucket\$1name]/applications/schedule=DAILY/year=[YYYY]/month=[MM]/day=[DD]/

Amazon Athena を使用してレポートをクエリする場合、このネスト構造により、パーティション分割が容易になります。Athena はサーバーレスのインタラクティブなクエリサービスであり、このサービスを使用すると、S3 バケットに保存されているデータを標準の SQL により分析できます。詳細については、「[カスタムレポートの作成と WorkSpaces アプリケーション使用状況データの分析](configure-custom-reports-analyze-usage-data.md)」を参照してください。

各アプリケーション起動はアプリケーションレポートの 1 つのレコードに記述されます。たとえば、ユーザーがセッション中に 5 つの別々のアプリケーションを起動した場合は、アプリケーションレポートに 5 つの別々のレコードが含まれます。以下のいずれかのイベントが発生した場合、アプリケーションは起動されたと記録されます。
+ アプリケーション ID がストリーミング URL またはリレー状態のいずれかに埋め込まれているため、セッション開始時にアプリケーションが直接起動される。
+ ユーザーが新しいストリーミングセッションの開始時に、アプリケーションカタログからアプリケーションを選択する。
+ ユーザーがストリーミングセッション中に、アプリケーションカタログリストからアプリケーションを選択する。

アプリケーションレポートには、その他の方法で起動されたアプリケーションは含まれません。たとえば、ユーザーに Windows Explorer、PowerShell、または Windows デスクトップの [**Start (開始)**] メニューへのアクセスを許可しており、ユーザーがそれらのツールを使用して直接アプリケーションを起動した場合や、別のプログラムまたはスクリプトによってアプリケーションが起動された場合、それらのアプリケーションの起動はアプリケーションレポートに含まれません。

アプリケーションレポートは毎日、レポート対象日の終了 (UTC 時間) から 24 時間以内に生成されます。セッションが複数日にまたがる場合、セッション中に起動されたアプリケーションは、セッションが終了した日に対応するアプリケーションレポートに反映されます。アプリケーションレポートに含まれるデータについては、「[アプリケーションレポートのフィールド](usage-reports-fields-applications-reports.md)」を参照してください。

# WorkSpaces アプリケーション使用状況レポートフィールド
<a name="usage-reports-fields"></a>

このトピックでは、WorkSpaces アプリケーション使用状況レポートに含まれるフィールドについて説明します。

**Topics**
+ [セッションレポートのフィールド](usage-reports-fields-sessions-reports.md)
+ [アプリケーションレポートのフィールド](usage-reports-fields-applications-reports.md)

# セッションレポートのフィールド
<a name="usage-reports-fields-sessions-reports"></a>

次の表は、WorkSpaces アプリケーションセッションレポートに含まれるフィールドを示しています。


| フィールド名 | 説明 | 
| --- | --- | 
| user\$1session\$1id | セッションの一意の識別子 (ID)。 | 
| aws\$1account\$1id | Amazon Web Services アカウント ID | 
| region |  AWS リージョン。 | 
| session\$1start\$1time |  セッションが開始された日時。ISO 8601 標準形式および UTC 時間で指定する必要があります。  | 
| session\$1end\$1time |  セッションが終了した日時。ISO 8601 標準形式および UTC 時間で指定する必要があります。  | 
| session\$1duration\$1in\$1seconds | セッションの期間 (秒)。 | 
| user\$1id | 認証タイプ内のユーザーの固有 ID。 | 
| user\$1arn | ユーザーの Amazon リソースネーム (ARN) | 
| authentication\$1type |  ユーザーの認証方法。 使用できる値: `CUSTOM` \$1 `SAML` \$1 `USERPOOL`  | 
| authentication\$1type\$1user\$1id | ユーザー ID と認証タイプの連結したもの。ユーザーの料金を見積もる目的でユーザーを一意に識別します。詳細については、[WorkSpaces アプリケーションの料金](https://aws.amazon.com/appstream2/pricing/)」を参照してください。 | 
| fleet\$1name | セッションに関連付けられたフリートの名前。 | 
| stack\$1name | セッションに関連付けられたスタックの名前。 | 
| instance\$1type | セッションに使用される WorkSpaces Applications インスタンスタイプ。インスタンスタイプのリストについては、[WorkSpaces アプリケーションの料金](https://aws.amazon.com/appstream2/pricing/)」を参照してください。 | 
| eni\$1private\$1ip\$1address | WorkSpaces アプリケーションインスタンスがネットワーク通信に使用する Elastic Network Interface の IP アドレス。 | 
| connected\$1at\$1least\$1once |  ユーザーが 1 回以上セッションに接続したかどうかを示します。 使用できる値: `true` \$1 `false`  | 
| client\$1ip\$1addresses | セッションへの接続に使用されたユーザーデバイスに関連付けられた IP アドレス。ユーザーが 2 回以上、セッションに対する接続と切断を行った場合、最後の 10 個までの個別の IP アドレスがセミコロンで区切られて保存されます。 | 
| google\$1drive\$1enabled |  Google Drive がセッションの永続的ストレージオプションとして有効になっていたかどうかを示します。詳細については、「[WorkSpaces アプリケーションユーザーの Google ドライブの有効化と管理](google-drive.md)」を参照してください。 使用できる値: `true` \$1 `false`  | 
| one\$1drive\$1enabled |  OneDrive がセッションの永続的ストレージオプションとして有効になっていたかどうかを示します。詳細については、「[WorkSpaces アプリケーションユーザーの Google ドライブの有効化と管理](google-drive.md)」を参照してください。 使用できる値: `true` \$1 `false`  | 
| home\$1folders\$1storage\$1location | ホームフォルダに保存されたファイルに使用された Amazon S3 バケット。 | 
| user\$1settings\$1clipboard\$1copy\$1from\$1local\$1device |  セッション中にユーザーがクリップボードを使用してローカルデバイスからストリーミングセッションにデータをコピーできたかどうかを示します。 使用できる値: `ENABLED` \$1 `DISABLED`  | 
| user\$1settings\$1clipboard\$1copy\$1to\$1local\$1device |  セッション中にユーザーがクリップボードを使用してストリーミングセッションからローカルデバイスにデータをコピーできたかどうかを示します。 使用できる値: `ENABLED` \$1 `DISABLED`  | 
| user\$1settings\$1file\$1upload |  セッション中にユーザーがローカルデバイスからストリーミングセッションにファイルをアップロードできたかどうかを示します。 使用できる値: `ENABLED` \$1 `DISABLED`  | 
| user\$1settings\$1file\$1download |  セッション中にユーザーがストリーミングセッションからローカルデバイスにファイルをダウンロードできたかどうかを示します。 使用できる値: `ENABLED` \$1 `DISABLED`  | 
| user\$1settings\$1printing\$1to\$1local\$1device |  セッション中にユーザーがストリーミングセッションからローカルデバイスにファイルを印刷できたかどうかを示します。 使用できる値: `ENABLED` \$1 `DISABLED`  | 
| application\$1settings\$1enabled |  セッションに対してアプリケーション設定の永続性が有効になっていたかどうかを示します。 使用できる値: `true` \$1 `false`  | 
| domain\$1joined |  WorkSpaces アプリケーションストリーミングインスタンスがセッション起動時に Active Directory ドメインに結合されたかどうかを示します。詳細については、「[Using Active Directory with WorkSpaces Applications](active-directory.md)」を参照してください。 使用できる値: `Y` \$1 `N`  | 
| max\$1session\$1duration | セッションの最大許容期間 (秒)。 | 
| session\$1type |  セッションのタイプ。 使用できる値: `ALWAYS_ON` \$1 `ON_DEMAND`  | 
| stream\$1view |  ストリームビュー。 使用できる値: `APPLICATION` \$1 `DESKTOP`  | 
| streaming\$1experience\$1settings\$1protocol |  セッションがストリーミングを終了したプロトコル。 使用できる値: `UDP` \$1 `TCP`  | 
| instance\$1id | ユーザーセッションに関連付けられたインスタンス ID。 | 
| is\$1multisession |  セッションがマルチセッションフリートに属しているかどうかを示します。 使用できる値: `true` \$1 `false`  | 

# アプリケーションレポートのフィールド
<a name="usage-reports-fields-applications-reports"></a>

次の表に、WorkSpaces アプリケーションアプリケーションレポートに含まれるフィールドを示します。


| フィールド名 | 説明 | 
| --- | --- | 
| user\$1session\$1id | セッションの一意の識別子 (ID)。 | 
| application\$1name | Image Assistant で指定されたアプリケーションの名前。この値は、ユーザーが WorkSpaces アプリケーションインターフェイスを介してアプリケーションを起動するときに提供されます。 | 
| schedule | レポートが生成される頻度。 可能な値: DAILY | 
| year | レポートの年。 | 
| か月 | レポートの月。 | 
| 日 | レポートの日。 | 

# カスタムレポートの作成と WorkSpaces アプリケーション使用状況データの分析
<a name="configure-custom-reports-analyze-usage-data"></a>

Amazon Athena はサーバーレスのインタラクティブなクエリサービスであり、このサービスを使用すると、S3 バケットに保存されているデータを標準の SQL により分析できます。Athena を使用して、使用状況レポートを集計したり、他のタイプのカスタムレポートを生成したりできます。

**Topics**
+ [AWS Glue クローラを作成する](configure-custom-reports-create-crawler.md)
+ [AWS Glue クローラを使用してデータカタログを作成する](configure-custom-reports-create-data-catalog.md)
+ [Athena クエリの作成と実行](configure-custom-reports-create-run-athena-queries.md)
+ [アテナクエリの操作](configure-custom-reports-example-sql-queries.md)

# AWS Glue クローラを作成する
<a name="configure-custom-reports-create-crawler"></a>

AWS Glue は、Amazon S3 データからデータベースを作成し、Athena を使用してそのデータベースをクエリできるフルマネージド抽出、変換、ロード (ETL) サービスです。このデータベースは、 AWS Glue データカタログとも呼ばれます。 AWS Glue クローラは、Amazon S3 データのスキーマを自動的に検出し、対応するデータベースとテーブルを作成できます。WorkSpaces Applications には、必要な AWS Glue リソースを作成するために使用できる CloudFormation テンプレートが用意されています。

**重要**  
次の手順のステップを完了すると AWS Glue 、 クローラが作成されます。ただし、これらのステップではクローラを起動しません。クローラを起動するには、次の手順のステップを実行する必要があります。 AWS Glue クローラの詳細については、[「クローラの定義](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)」を参照してください。

**AWS Glue クローラを作成するには**

1. [https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) で WorkSpaces アプリケーションコンソールを開きます。

1. 使用状況レポートをサブスクライブしている AWS リージョンを選択します。

1. ナビゲーションペインで、[**Usage Reports (使用状況レポート)**] を選択し、使用状況レポートのログ記録が有効になっていることを確認します。

1. [**Report Details (レポートの詳細)**] タブの [**分析**] の横にある [**CloudFormation テンプレート**] リンクをクリックします。

   リンクを選択すると CloudFormation コンソールが開き、テンプレートで指定された CloudFormation スタックのパラメータを確認してから実行できます。テンプレートを実行すると、 AWS Glue クローラといくつかのサンプル Athena クエリが作成されます。

1. [**詳細の指定**] ページの [**ScheduleExpression**] の横にあるデフォルト値をそのまま使用するか、クローラを実行する頻度に別の cron 式の値を指定します。他のデフォルト値は変更しないでください。終了したら、[**Next (次へ)**] を選択します。

   クローラはデフォルトで、毎日実行されるようにスケジュールされていますが、毎週、毎月、または別の頻度で実行されるように設定できます。cron 構文については、「[Cron 式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)」を参照してください。

1. [**オプション**] ページで、すべてのデフォルト値を受け入れ、[**Next (次へ)**] を選択します。

1. Review ****ページで、「I acknowledge that CloudFormation might create IAM resources with custom names」の横にあるチェックボックスを選択し、**「Create**」を選択します。

    CloudFormation スタックを作成および実行するには、十分な AWS Glue および AWS Identity and Access Management (IAM) アクセス許可が必要です。必要なアクセス許可がない場合は、お客様の Amazon Web Services アカウント管理者に対し、アカウントでこれらのステップを実行するか、以下のアクセス許可をお客様に付与するかのどちらかを依頼します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "athena:CreateNamedQuery",
                   "athena:BatchGetNamedQuery",
                   "athena:GetNamedQuery",
                   "athena:StartQueryExecution",
                   "athena:GetQueryResults",
                   "athena:GetQueryExecution",
                   "athena:ListNamedQueries",
                   "cloudformation:DescribeStacks",
                   "cloudformation:GetStackPolicy",
                   "cloudformation:DescribeStackEvents",
                   "cloudformation:CreateStack",
                   "cloudformation:GetTemplate",
                   "cloudformation:ListChangeSets",
                   "cloudformation:ListStackResources",
                   "iam:GetRole",
                   "iam:CreateRole",
                   "iam:GetRolePolicy",
                   "s3:GetBucketLocation",
                   "s3:ListBucketMultipartUploads",
                   "s3:ListBucket",
                   "s3:ListMultipartUploadParts",
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:AbortMultipartUpload"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*",
                   "arn:aws:cloudformation:*:*:stack/AppStreamUsageReports/*",
                   "arn:aws:athena:*:*:workgroup/primary",
                   "arn:aws:s3:::aws-athena-query-results-*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iam:AttachRolePolicy",
                   "iam:PutRolePolicy",
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::appstream-logs-*",
                   "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*"
               ],
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": "glue.amazonaws.com"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "cloudformation:GetTemplateSummary",
                   "glue:GetResourcePolicy",
                   "glue:GetCrawlers",
                   "glue:BatchGetCrawlers",
                   "glue:GetClassifiers",
                   "glue:CreateClassifier",
                   "glue:ListCrawlers",
                   "glue:GetTags",
                   "glue:GetCrawlerMetrics",
                   "glue:GetClassifier",
                   "tag:GetResources"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "athena:RunQuery",
               "Resource": "arn:aws:athena:*:*:workgroup/primary"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "glue:GetTables",
                   "glue:GetPartitions",
                   "glue:GetTable"
               ],
               "Resource": [
                   "arn:aws:glue:*:*:table/appstream-usage/*",
                   "arn:aws:glue:*:*:database/appstream-usage",
                   "arn:aws:glue:*:*:catalog"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "glue:GetDatabase",
                   "glue:CreateDatabase",
                   "glue:GetDatabases"
               ],
               "Resource": [
                   "arn:aws:glue:*:*:database/appstream-usage",
                   "arn:aws:glue:*:*:catalog"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "glue:GetCrawler",
                   "glue:StartCrawler",
                   "glue:CreateCrawler"
               ],
               "Resource": "arn:aws:glue:*:*:crawler/appstream-usage*"
           },
           {
               "Effect": "Allow",
               "Action": "glue:GetCatalogImportStatus",
               "Resource": "arn:aws:glue:*:*:catalog"
           }
       ]
   }
   ```

------

# AWS Glue クローラを使用してデータカタログを作成する
<a name="configure-custom-reports-create-data-catalog"></a>

 AWS Glue クローラは、実行時に、セッションとアプリケーションレポートの構造にマッピングされたデータカタログとスキーマを作成します。新しいレポートが Amazon S3 バケットに保存されるたびに、クローラを実行して AWS Glue データカタログを新しいレポートのデータで更新する必要があります。

**注記**  
 AWS Glue クローラの実行には料金が適用される場合があります。詳細については、「[AWS Glue 料金](https://aws.amazon.com/glue/pricing/)」を参照してください。

1. [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) で AWS Glue コンソールを開きます。

1. 使用状況レポートをサブスクライブしている AWS リージョンを選択します。

1. **appstream-usage-sessions-crawler** という名前のクローラの横にあるチェックボックスをオンにし、[**クローラの実行**] を選択します。**appstream-usage-apps-crawler** という名前のクローラに対してこのステップを繰り返します。

   これらのステップを実行すると、クローラが実行され、 CloudFormation スタックで指定されたスケジュールに従って自動的に実行されるようにスケジュールされます。

1. 両方のクローラの実行が完了したら、ナビゲーションペインで [**データベース**] を選択します。使用状況レポートを表す [**appstream-usage**] という名前のデータベースが表示されます。このデータベースは、**appstream-usage-sessions-crawler** と **appstream-usage-apps-crawler** の実行時に作成された AWS Glue データカタログです。

1. データベース内のテーブルを表示するには、[**appstream-usage**]、[**テーブル**] の順に選択します。それぞれアプリケーションとセッションの使用状況レポートを表す 2 つのテーブル、**applications** と **sessions** が表示されます。どちらかのテーブルを選択して、そのスキーマを表示します。

   これで、SQL を使用して、Athena でこれらのテーブルに対してクエリを実行できるようになりました。

# Athena クエリの作成と実行
<a name="configure-custom-reports-create-run-athena-queries"></a>

Athena を使用して使用状況レポートに対してクエリを実行するには、以下のステップを実行します。
**注記**  
実行した Athena クエリに対しては料金が発生します。詳細については、[Amazon Athena 料金](https://aws.amazon.com/athena/pricing/) を参照してください。

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) で Athena コンソールを開きます。

1. [**Database (データベース)**] で、[**appstream-usage**] を選択します。

1. クエリペインで SQL クエリを入力し、[**クエリの実行**] を選択します。

# アテナクエリの操作
<a name="configure-custom-reports-example-sql-queries"></a>

このセクションでは、Athena で実行して Amazon S3 バケット内の使用状況レポートのデータを分析できる SQL クエリを示します。

特定の月のすべてのセッションの統合レポートを作成するには、以下のクエリを実行します。

```
SELECT *
FROM "appstream-usage"."sessions"
WHERE year='four-digit-year'
AND month='two-digit-month'
```

クエリで **applications** テーブルと **sessions** テーブルの結合オペレーションを実行することもできます。たとえば、特定の月に各アプリケーションを起動した個別のユーザーを表示するには、以下のクエリを実行します。

```
SELECT DISTINCT apps.application_name, sessions.user_id
FROM "appstream-usage"."applications" apps
   INNER JOIN "appstream-usage"."sessions" sessions ON (apps.user_session_id = sessions.user_session_id AND sessions.year='four-digit-year' AND sessions.month='two-digit-month')
WHERE apps.year='four-digit-year'
  AND apps.month='two-digit-month'
ORDER BY 1, 2
```

Athena のクエリ結果は、アカウントの Amazon S3 バケットに `aws-athena-query-results-account-id-without-hyphens-region-code` という名前の .csv ファイルとして保存されます。クエリ結果を見つけやすくするために、[**名前を付けて保存**] を選択し、クエリにその実行前に名前を付けます。[**Athena Results (Athena 結果)**] ペインでダウンロードアイコンを選択して、クエリの結果を .csv ファイルとしてダウンロードすることもできます。

パフォーマンスを向上させコストを削減するために、Athena ではパーティション分割を使用して、クエリでスキャンされるデータの量を減らします。詳細については、「[データのパーティション分割](https://docs.aws.amazon.com/athena/latest/ug/partitions.html)」を参照してください。使用状況レポートは、年、月、日ごとに Amazon S3 バケットにパーティション分割されます。クエリの条件として [**year (年)**]、[**month (月)**]、および [**day (日)**] フィールドを使用して、クエリを特定の日付範囲パーティションに制限できます。たとえば、以下のクエリは 2019 年 5 月 19 日の週のセッションレポートのみを取り込みます。

```
SELECT SUBSTRING(session_start_time, 1, 10) AS report_date, 
    COUNT(DISTINCT user_session_id) AS num_sessions
FROM "appstream-usage"."sessions"
WHERE year='2019'
   AND month='05'
   AND day BETWEEN '19' and '25'
GROUP BY 1
ORDER BY 1
```

これに対して、以下のクエリは同じ結果を生成しますが、パーティションに制限されていないため、Amazon S3 バケットに保存されているすべてのセッションレポートを取り込みます。

```
SELECT SUBSTRING(session_start_time, 1, 10) AS report_date, 
    COUNT(DISTINCT user_session_id) AS num_sessions
FROM "appstream-usage"."sessions"
WHERE session_end_time BETWEEN '2019-05-19' AND '2019-05-26'
GROUP BY 1
ORDER BY 1
```

セッションが複数日にまたがる場合、セッションレコードとアプリケーションレコードは、セッションが終了した日に対応するセッションレポートにそれぞれ含まれます。このため、特定の日付範囲内でアクティブだったすべてのセッションに関連するレコードを見つける必要がある場合は、フリートに設定した最大セッション長までクエリのパーティションセットを延長することを検討してください。

たとえば、1 か月内で特定のフリートに対してアクティブだったすべてのセッションを表示する場合、フリートの最大セッション期間が 100 時間であれば、以下のようにパーティションセットを 5 日間延長したクエリを実行します。

```
SELECT *
FROM "appstream-usage"."sessions"
WHERE fleet_name = 'fleet_name'
   AND session_start_time BETWEEN '2019-05-01' AND '2019-06-01'
   AND year='2019'
   AND (month='05' OR (month='06' AND day<='05'))
ORDER BY session_start_time
```

 AWS Glue クローラを作成した CloudFormation テンプレートは、使用状況データの分析に使用できるいくつかのサンプルクエリも Athena アカウントに作成して保存しました。サンプルクエリとしては以下のものがあります。
+ 1 か月あたりの集計セッションレポート
+ 1 スタックあたりの平均セッション長
+ 1 日あたりのセッション数
+ ユーザーあたりの総ストリーミング時間
**注記**  
オンデマンドの使用料金は、セッションごとに 1 時間単位で切り上げられます。
+ アプリ別のユーザー数

これらのクエリを使用するには、以下のステップを実行します。

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/) で Athena コンソールを開きます。

1. [**保存したクエリ**] を選択します。この手順で先ほど示した 5 つのクエリが表示されます。各クエリの名前は「AS2」で始まっています。たとえば、「AS2\$1users\$1per\$1app\$1curr\$1mo」と入力します。

1. クエリを実行するには、名前の横にあるオプションではなくクエリ名を選択します。

1. クエリのテキストがクエリペインに表示されます。**[Run query]** (クエリの実行) を選択します。

これらのクエリを別の CloudFormation テンプレートで表示するには、コードサンプルカタログの[athena-sample-queries-appstream-usage-data\$1template.yml](https://docs.aws.amazon.com/code-samples/latest/catalog/cloudformation-appstream2-athena-sample-queries-appstream-usage-data_template.yml.html)」を参照してください。 *AWS *