

# クエリ処理キャパシティを管理する
<a name="capacity-management"></a>

キャパシティ予約を使用して、Athena で実行するクエリ専用のサーバーレス処理キャパシティを確保することができます。キャパシティ予約を使用することで、ワークロード管理機能で重要なワークロードの優先順位付け、制御、スケーリングを簡単に行えます。例えば、キャパシティを追加して同時に実行できるクエリの数を増やしたり、そのキャパシティを使用できるワークロードを選択したり、ワークロード間でキャパシティを共有したりすることができます。キャパシティはサーバーレスで、 Athena によって完全に管理され、必要な限り長く維持されます。セットアップは簡単で、SQL クエリを変更する必要はありません。

クエリの処理キャパシティを確保するには、キャパシティ予約を作成し、必要なデータ処理ユニット (DPU) の数を指定し、予約に 1 つ以上のワークグループを割り当てます。

キャパシティ予約を使用する際に、ワークグループは重要な役割を果たします。ワークグループによって、クエリを論理的グルーピングやユースケースにまとめることができます。キャパシティ予約によって、キャパシティをワークグループに選択的に割り当て、各ワークグループのクエリの動作と請求方法を制御できます。ワークグループの詳細については、「[ワークグループを使用してクエリのアクセスとコストを制御する](workgroups-manage-queries-control-costs.md)」を参照してください。

ワークグループをキャパシティ予約に割り当てると、リザーブドキャパシティで実行されて DDL と DML のクエリクォータにはカウントされないため、これらのクエリを優先できます。例えば、時間的制約のある財務報告クエリに使用されるワークグループにキャパシティを割り当てて、それらのクエリを別のワークグループ内の重要度の低いクエリから隔離することができます。これにより、重要なワークロードに対するクエリ実行が予測可能になり、他のワークロードは独立して実行できます。

キャパシティ予約とワークグループを組み合わせて使用すると、さまざまな要件に対応することができます。例としていくつかのシナリオを次に挙げます。
+ **重要なクエリを分離** – 重要なワークロードに必要なキャパシティを必要なときに確保するには、キャパシティ予約を作成し、そのワークグループをキャパシティ予約に割り当てます。割り当てたワークグループのクエリのみが、そのキャパシティ予約の処理容量を使用します。例えば、運用アプリケーションをサポートするクエリの実行の信頼性を確保するには、それらのクエリの運用ワークグループをキャパシティ予約に割り当てます。クエリを開発するときには、予約に関連付けられていない別個のワークグループを使用し、準備が整ったら運用ワークグループにクエリを移動させます。
+ **同様のワークロード間でキャパシティを共有** – 1 つの予約のキャパシティを複数のワークロードで共有できます。これにより、これらのワークロードの予測可能なコストを達成し、それらの同時実行を制御できます。例えば、クエリ実行開始時刻の遅延に耐えられるようにワークロードをスケジュールした場合、それらのワークグループを 1 つの予約に割り当てることができます。これにより、同じアカウントで実行されるインタラクティブクエリの DDL クエリクォータと DML クエリクォータが解放され、これらのクエリが最小限の遅延で開始されます。

## DPU を理解する
<a name="capacity-management-understanding-dpus"></a>

キャパシティはデータ処理ユニット (DPU) で測定されます。DPU は、Athena がユーザーに代わってデータにアクセスして処理するために使用するサーバーレスのコンピューティングリソースとメモリリソースです。通常は、1 つの DPU で 4 個の vCPU と 16 GB のメモリを使用できます。保持している DPU の数によって、同時に実行できるクエリ数が決まります。例えば、DPU 256 個の予約では、DPU 128 個の予約の約 2 倍の同時クエリ数に対応できます。

キャパシティ要件の見積もりについては、「[キャパシティ要件を決定する](capacity-management-requirements.md)」を参照してください。料金については、「[Amazon Athena の料金](https://aws.amazon.com/athena/pricing/)」を参照してください。

## 考慮事項と制限事項
<a name="capacity-management-considerations-limitations"></a>
+ スキャンされたデータに基づいて、キャパシティ予約とクエリ単位の請求を同じアカウントで同時に使用できます。
+ キャパシティ予約で実行されるクエリは、DDL クエリクォータと DML クエリクォータにはカウントされません。
+ キャパシティが他のクエリの処理でビジー状態になっている場合、新たに送信されたクエリはキャパシティが利用可能になるまでキューに入れられます。キューの最大許容時間は 10 時間です。
+ 1 つのキャパシティ予約に一度に割り当てることができるワークグループは 1 個です。1 つの予約に合計 20 個のワークグループを割り当てることができます。予約に複数のワークグループを割り当てると、キャパシティはワークグループ間で共有され、送信順序に基づいてクエリに割り当てられます。Athena がクエリにキャパシティを動的に割り当てる方法では、それが原因で実行順序にばらつきが生じる場合があります。
+ Athena は、複雑さに基づいて DML クエリに 4～124 個の DPU を自動的に割り当てます。DDL クエリはそれぞれ 4 個の DPU を消費します。詳細については、次のトピックを参照してください。
  + [キャパシティ要件を決定する](capacity-management-requirements.md)
  + [キャパシティ使用量を制御する](capacity-management-control-capacity-usage.md)
+ 各キャパシティ予約に必要な最小限の DPU 数は 4 個です。料金については、「[Amazon Athena の料金](https://aws.amazon.com/athena/pricing/)」を参照してください。
+ アカウントとリージョンごとに、最大合計 1,000 個の DPU で最大 100 個のキャパシティ予約を作成できます。ユースケースに 1,000 個を超える DPU が必要な場合は、[athena-feedback@amazon.com](mailto:athena-feedback@amazon.com?subject=Athena Provisioned Capacity DPU Limit Request) までご連絡ください。
+ キャパシティのリクエストは保証されないため、完了するまでに最大 30 分かかる場合があります。キャパシティを別のキャパシティ予約、AWS アカウント、または AWS リージョン に転送することはできません。
+ `DPUConsumed` CloudWatch メトリクスは予約ごとではなく、ワークグループごとに対応します。そのため、ワークグループをある予約から別の予約に移動すると、そのワークグループが最初の予約に属していたときのデータが `DPUConsumed` メトリクスに含まれます。Athena の CloudWatch メトリクスの使用に関する詳細については、「[CloudWatch による Athena クエリメトリクスのモニタリング](query-metrics-viewing.md)」を参照してください。
+ 予約に割り当てられているワークグループを削除するには、まず予約からワークグループを削除します。
+ Apache Spark を使用するように設定されたワークグループはサポートされていません。
+ キャパシティ予約は次の商用 AWS リージョン で利用できます。
  + イスラエル (テルアビブ)
  + 中東 (アラブ首長国連邦)
  + 中東 (バーレーン)
  + アジアパシフィック (ニュージーランド)

**Topics**
+ [DPU を理解する](#capacity-management-understanding-dpus)
+ [考慮事項と制限事項](#capacity-management-considerations-limitations)
+ [キャパシティ要件を決定する](capacity-management-requirements.md)
+ [キャパシティ予約を作成する](capacity-management-creating-capacity-reservations.md)
+ [キャパシティ使用量を制御する](capacity-management-control-capacity-usage.md)
+ [キャパシティを自動で調整する](capacity-management-automatically-adjust-capacity.md)
+ [予約を管理する](capacity-management-managing-reservations.md)
+ [キャパシティ予約の IAM ポリシー](capacity-reservations-iam-policy.md)
+ [Athena キャパシティ予約 API](capacity-management-api-list.md)

# キャパシティ要件を決定する
<a name="capacity-management-requirements"></a>

キャパシティ予約を作成する前に、必要なキャパシティを見積もることで、正しい数の DPU を割り当てることができます。また、予約の使用後は、予約のキャパシティが不足していないか、超過していないかを確認するとよいでしょう。このトピックでは、これらの見積もりに使用できる手法について説明し、使用状況とコストを評価するためのいくつかの AWS ツールについても説明します。

**Topics**
+ [必要なキャパシティを見積もる](#capacity-management-requirements-estimating)
+ [より多くのキャパシティが必要であることを示す兆候](#capacity-management-requirements-insufficient-capacity)
+ [アイドル状態のキャパシティを確認する](#capacity-management-requirements-idle-capacity)
+ [DPU 消費量のモニタリング](#capacity-management-requirements-monitoring-dpu-consumption)

## 必要なキャパシティを見積もる
<a name="capacity-management-requirements-estimating"></a>

キャパシティ要件を見積もるときは、特定のクエリに必要なキャパシティと、一般的に必要なキャパシティという 2 つの観点を考慮すると効果的です。

### クエリごとのキャパシティ要件を見積もる
<a name="capacity-management-requirements-estimating-query"></a>

クエリで必要な DPU の数を判断するには、次のガイドラインを使用します。
+ DDL クエリは 4 個の DPU を消費します。
+ DML クエリは 4〜124 個の DPU を消費します。

Athena は、クエリが送信されるときに DML クエリに必要な DPU の数を決定します。この数は、データサイズ、ストレージ形式、クエリ構造、およびその他の要因によって変わります。通常、Athena は最も少なく、最も効率的な DPU 数を選択しようとします。Athena は、クエリを正常に完了するためにより多くの計算能力が必要であると判断した場合、クエリに割り当てられる DPU の数を増やします。

### ワークロード固有のキャパシティ要件を見積もる
<a name="capacity-management-requirements-estimating-workload"></a>

複数のクエリを同時に実行するために必要な容量を判断するには、次の表にある一般ガイドラインを考慮してください。


****  

| 同時クエリ | 必要な DPU | 
| --- | --- | 
| 10 | 40 またはそれ以上 | 
| 20 | 96 以上 | 
| 30 またはそれ以上 | 240 以上 | 

実際に必要な DPU の数は、目標と分析パターンによって異なることに注意してください。たとえば、クエリをキューに入れずにすぐに開始したい場合は、ピーク時の同時クエリ需要を判断し、それに応じて DPU の数をプロビジョニングします。

プロビジョニングする DPU の数は、ピーク需要よりも少なくても構いませんが、ピーク需要が発生するとキューイングが発生する可能性があります。キューイングが発生すると、Athena はクエリをキューに保持し、キャパシティが利用可能になるとクエリを実行します。

固定予算内でクエリを実行することが目標であれば、「[AWS 料金計算ツール](https://calculator.aws/#/addService/Athena)」を使って予算に合う DPU 数を特定できます。

最後に、データサイズ、ストレージ形式、およびクエリの記述方法が、クエリに必要な DPU に影響することを覚えておいてください。データを圧縮または分割したり、列形式に変換したりすることで、クエリのパフォーマンスを向上させることができます。詳細については、「[Athena のパフォーマンスを最適化する](performance-tuning.md)」を参照してください。

## より多くのキャパシティが必要であることを示す兆候
<a name="capacity-management-requirements-insufficient-capacity"></a>

割り当てられたキャパシティが不十分であることの 2 つの兆候として、キャパシティ不足のエラーメッセージとクエリキューイングがあります

キャパシティ不足のエラーメッセージが表示されてクエリが失敗した場合、クエリに対してキャパシティ予約の DPU 数が少なすぎる可能性があります。たとえば、DPU 24 個の予約があり、24 個よりも多い DPU を必要とするクエリを実行すると、クエリは失敗します。Athena の [EventBridge イベント](athena-events.md)を使用してこのクエリエラーを監視することができます。DPU をさらに追加してクエリを再実行してみてください。

多くのクエリがキューに入っている場合は、キャパシティがすべて他のクエリに使用されていることを意味します。キューを減らすには、次のいずれかの操作を行います。
+ 予約に DPU を追加して、クエリの同時実行性を向上させます。
+ 予約からワークグループを削除して、他のクエリに使えるキャパシティを増やします。

キャパシティ予約内のワークグループ内で Athena クエリキュー時間の [CloudWatch メトリック](query-metrics-viewing.md)を使用して、クエリキューイングが過剰になっていないかどうかを確認します。値が希望のしきい値を超える場合は、キャパシティ予約に DPU を追加します。

## アイドル状態のキャパシティを確認する
<a name="capacity-management-requirements-idle-capacity"></a>

アイドル状態のキャパシティを確認するには、予約内の DPU の数を減らすか、ワークロードを増やしてから結果を確認します。

**アイドル状態のキャパシティを確認するには**

1. 次のいずれかを行います。
   + 予約内の DPU の数を減らします (利用可能なリソースを減らす)。
   + 予約にワークグループを追加します (ワークロードを増やす)。

1. [CloudWatch](query-metrics-viewing.md) を使用してクエリキュー時間を測定します。

1. キュー時間が望ましいレベルを超えて増加した場合は、次のいずれかの操作を行います。
   + ワークグループを削除します。
   + キャパシティ予約に DPU を追加します。

1. 変更のたびに、パフォーマンスとクエリキュー時間を確認します。

1. 引き続きワークロードや DPU 数を調整して、望ましいバランスをとってください。

望ましい時間を超えるキャパシティを維持したくない場合は、予約を[キャンセル](capacity-management-cancelling-a-capacity-reservation.md)して後で別の予約を作成します。ただし、最近別の予約からキャパシティをキャンセルしていたとしても、新しいキャパシティのリクエストが保証されるわけではなく、新しい予約の作成には時間がかかります。

## DPU 消費量のモニタリング
<a name="capacity-management-requirements-monitoring-dpu-consumption"></a>

クエリの実行後、クエリによって消費される DPU を表示して、容量の見積もりを絞り込むことができます。Athena は、コンソール、API オペレーション、CloudWatch を通じて DPU 消費メトリクスを提供します。この情報から、リソースの消費量が予想よりも多いクエリや少ないクエリを特定し、実際のデータに基づいて容量の割り当てを最適化することができます。DPU の消費量の表示と追跡の詳細については、「[DPU 使用をモニタリングする](capacity-management-control-capacity-usage.md#capacity-management-monitor-dpu-usage)」を参照してください。

## キャパシティ要件とコストを評価するためのツール
<a name="capacity-management-requirements-tools"></a>

AWS の以下のサービスと機能を使用して、Athena の使用状況とコストを測定できます。

### CloudWatch メトリクス
<a name="capacity-management-requirements-tools-cloudwatch-metrics"></a>

クエリ関連のメトリックスをワークグループレベルで Amazon CloudWatch に公開するように Athena を設定できます。ワークグループのメトリックスを有効にすると、ワークグループのクエリに関するメトリックスがワークグループの詳細ページの Athena コンソールに表示されます。

CloudWatch に公開される Athena メトリックスとそのディメンションについては、「[CloudWatch による Athena クエリメトリクスのモニタリング](query-metrics-viewing.md)」を参照してください。

### CloudWatch の使用状況メトリクス
<a name="capacity-management-requirements-tools-cloudwatch-usage-metrics"></a>

CloudWatch の使用状況メトリクスにより、CloudWatch グラフやダッシュボード上に現在のサービスの使用状況を表示することで、アカウントがどのようにリソースを使用しているかを可視化できます。Athena での使用可能性に関するメトリクスは、Athena の AWS[Service Quotas](service-limits.md) と対応しています。使用量がサービスクォータに近づいたときに警告するアラームを設定することもできます。

詳細については、「[CloudWatch による Athena 使用状況メトリクスのモニタリング](monitoring-athena-usage-metrics.md)」を参照してください。

### Amazon EventBridge イベント
<a name="capacity-management-requirements-tools-eventbridge-events"></a>

Amazon Athena を Amazon EventBridge と使用し、クエリの状態に関するリアルタイムの通知を受け取ることができます。送信したクエリの状態が変更されると、Athena がそのクエリの状態推移に関する情報が含まれるイベントを EventBridge に発行します。関心のあるイベントのシンプルなルールを作成し、イベントがルールに一致したときに自動化されたアクションが実行されるようにできます。

詳細については、以下のリソースを参照してください。
+ [EventBridge を使用して Athena クエリ イベントをモニタリングする](athena-events.md)
+ [Amazon EventBridge とは](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)
+ [Amazon EventBridge イベント](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) 

### タグ
<a name="capacity-management-requirements-tools-tags"></a>

Athena では、キャパシティ予約がタグをサポートしています。タグは、キーと値から構成されています。Athena でコストを追跡するには、AWS 生成のコスト配分タグを使用できます。AWS はコスト配分タグを使用し、[[コストと使用状況のレポート]](https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html) でリソースのコストを整理します。これにより、AWS コストを簡単に分類して追跡できるようになります。Athena のコスト配分タグを有効にするには、[AWS Billing and Cost Management コンソール](https://console.aws.amazon.com/billing/)を使用します。

詳細については、以下のリソースを参照してください。
+ [Athena リソースにタグ付けする](tags.md)
+ [AWS 生成のコスト配分タグをアクティブ化する](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activate-built-in-tags.html)
+ [AWS コスト配分タグを使用する](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)

# キャパシティ予約を作成する
<a name="capacity-management-creating-capacity-reservations"></a>

まず、必要な数の DPU を含むキャパシティ予約を作成し、そのキャパシティをクエリに使用する 1 つ以上のワークグループを割り当てます。安定したパフォーマンスの提供や、コスト管理改善のために、必要に応じて後からキャパシティを調整できます。キャパシティ要件の見積もりについては、「[キャパシティ要件を決定する](capacity-management-requirements.md)」を参照してください。

**重要**  
キャパシティのリクエストは保証されないため、完了するまでに最大 30 分かかる場合があります。

**キャパシティ予約を作成するには**

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

1. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

1. **[管理]**、**[キャパシティ予約]** を選択します。

1. **[キャパシティ予約を作成]** を選択します。

1. **[キャパシティ予約を作成]** ページの **[キャパシティ予約名]** に名称を入力します。名称は一意でなくてはならず、1～128 文字で、a～z、A～Z、0～9、\$1 (アンダースコア)、. (ピリオド)、- (ハイフン)が使用できます。予約作成後に名称を変更することはできません。

1. **DPU** では、必要なデータ処理ユニット (DPU) の数を 4 個単位で選択または入力します。詳細については、「[DPU を理解する](capacity-management.md#capacity-management-understanding-dpus)」を参照してください。

1. (オプション) **[タグ]** オプションを展開し、**[新しいタグを追加]** を選択し、キャパシティ予約リソースに関連付ける 1 つ以上のカスタムキー/値ペアを追加します。詳細については、「[Athena リソースにタグ付けする](tags.md)」を参照してください。

1. **[Review]** (レビュー) を選択します。

1. **[キャパシティ予約の作成を確認]** プロンプトで、DPU の数、AWS リージョン、その他の情報を確認します。 q 問題がなければ、**[送信]** を選択します。

   詳細ページでは、キャパシティ予約の **[ステータス]** は **[保留中]** と表示されます。予約キャパシティでクエリを実行できる場合、そのステータスは **[アクティブ]** と表示されます。

この時点で、1 つ以上のワークグループを予約に追加する準備が整っています。手順については、「[予約にワークグループを追加する](capacity-management-adding-workgroups-to-a-reservation.md)」を参照してください。

# キャパシティ使用量を制御する
<a name="capacity-management-control-capacity-usage"></a>

Athena がクエリに割り当てる DPU の数は、最大または最小の DPU コントロールを設定することで制御できます。すべてのクエリのベースラインコントロールを確立する場合はワークグループレベルでこれらを設定でき、きめ細かなコントロールを求める場合は個々のクエリレベルで設定できます。これにより、クエリのパフォーマンス、ワークロードの同時実行数、コストを直接制御できます。
+ DPU 数を最大に設定すると、クエリによるキャパシティ消費量が指定した量を超えません。これにより、コストとワークロードの同時実行を簡単に制御できます。例えば、キャパシティ予約に DPU が 200 個ある場合、クエリ 1 件あたりの最大 DPU 数を 8 に設定すると、25 件のクエリを同時に実行できます。予約の DPU を 400 に増やすと、50 件のクエリを同時に実行できます。
+ DPU 数を最小に設定すると、希望する最小数の DPU でクエリが実行されます。これは、クエリの一般的なキャパシティ使用プロファイルを事前に把握している場合に役立ちます。

**注記**  
DPU 使用コントロールは、キャパシティ予約で実行されるクエリにのみ適用されます。

**注記**  
すべてのクエリに同じ数の DPU を使用するには、最小 DPU と最大 DPU に同じ値を使用します。

## ワークグループレベルで DPU コントロールを設定する
<a name="capacity-management-set-dpu-controls-workgroup-level"></a>

DPU コントロールをワークグループレベルで設定して、コストを管理し、選択したワークグループのワークロードパフォーマンスを制御します。ワークグループレベルで設定された DPU コントロールは、**[クライアント側設定の上書き]** が有効になっている場合、すべてのクエリに適用されます。

**コンソールを使用して DPU コントロールを設定する方法**

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

1. ナビゲーションペインで、**[Global networks (グローバルネットワーク)]** を選択します。

1. キャパシティ予約を使用するワークグループを選択します。

1. **[実行コントロール]** タブで、**[コントロールの編集]** を選択します。

1. 次を設定します。
   + **[クエリあたりの最小 DPU]** では、4～124 の範囲内の値を 4 単位で入力します。
   + **[クエリあたりの最大 DPU]** では、4～124 の範囲内の値を 4 単位で入力します。

1. **[保存]** を選択します。

1. （オプション）**[クライアント側設定の上書き]** を選択してこれらの設定を適用し、クエリレベルの DPU 設定を無視します。

**AWS CLI を使用して DPU コントロールを設定する方法**
+ `update-work-group` コマンドを使用してワークグループの DPU コントロールを設定します。

  ```
  aws athena update-work-group \
    --work-group my_workgroup \
    --configuration-updates '{
          "EngineConfiguration": {
              "Classifications": [
                  {
                      "Name": "athena-query-engine-properties",
                      "Properties": {
                          "max-dpu-count" : "24",
                          "min-dpu-count" : "12"
                          }
                      }
                  ]
          }}'
  ```

  `EnforceWorkGroupConfiguration` を `true` に設定すると、ワークグループ設定は、[StartQueryExecution](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartQueryExecution.html) 経由で送信したときにクエリレベルで指定された DPU コントロールを上書きします。これにより、ワークグループ内のすべてのクエリにおけるリソース割り当ての一貫性が確保されます。

## 個々のクエリで DPU コントロールを設定する
<a name="capacity-management-set-dpu-controls-individual-queries"></a>

クエリにさまざまなリソース要件があってきめ細かな制御が必要である場合は、クエリレベルの DPU コントロールを設定します。ワークグループで **[クライアント側設定の上書き]** が有効になっていない限り、クエリレベルの DPU コントロールはワークグループレベルの設定よりも優先されます。

**コンソールを使用してクエリの DPU コントロールを設定する方法**

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

1. ナビゲーションペイン内で **[クエリエディタ]** を選択します。

1. キャパシティ予約を使用するワークグループを選択します。

1. **[クエリ設定]** タブを選択します。

1. **[実行コントロール]** セクションで、**[コントロールの編集]** を選択します。

1. 次を設定します。
   + **[クエリあたりの最小 DPU]** では、4～124 の範囲内の値を 4 単位で入力します。
   + **[クエリあたりの最大 DPU]** では、4～124 の範囲内の値を 4 単位で入力します。

1. **[保存]** を選択します。

**AWS CLI を使用してクエリの DPU コントロールを設定する方法**
+ `engine-configuration` パラメータがある `start-query-execution` コマンドを使用します。

  ```
  aws athena start-query-execution \
    --query-string "SELECT * FROM my_table LIMIT 10" \
    --work-group "my_workgroup" \
    --engine-configuration '{
      "Classifications": [ {
          "Name": "athena-query-engine-properties",
              "Properties": {
                  "max-dpu-count" : "32",
                  "min-dpu-count" : "8"
                  }
              }
          ]}'
  ```

クエリレベルとワークグループレベルの DPU 設定の関係は、ワークグループ設定によって異なります。
+ **[クライアント側設定の上書き]** が有効になっている場合、ワークグループレベルの DPU コントロールは、クエリレベルの設定よりも優先されます。これにより、指定したワークグループ内のすべてのクエリにおけるリソース使用の一貫性が確保されます。
+ **[クライアント側設定の上書き]** が有効になっていない場合、クエリレベルの DPU コントロールがワークグループレベルの設定よりも優先されます。これにより、個々のクエリを柔軟に最適化できます。

どちらのレベルでも DPU コントロールを指定しない場合、Athena がクエリの複雑さに基づいてキャパシティを自動的に割り当てます。

**注記**  
DDL クエリの場合、最小 DPU の最大値は 4 です。DDL クエリの最小値を大きめに設定するとエラーが発生します。

## DPU 使用をモニタリングする
<a name="capacity-management-monitor-dpu-usage"></a>

クエリが完了したら、DPU の使用状況を表示できます。Athena は、コンソール、API オペレーション、CloudWatch を通じて DPU 使用メトリクスを提供します。

**コンソールで DPU 消費量を表示する方法**

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

1. ナビゲーションペイン内で **[クエリエディタ]** を選択します。

1. クエリが完了したら、クエリ結果コンテナで **[消費された DPU]** 値を表示します。

1. 過去のクエリの DPU 消費量を表示する方法

   1. ナビゲーションペインで **[最近のクエリ]** を選択します。

   1. **[消費された DPU]** 列がテーブルにまだ表示されていない場合は、設定アイコンを選択してその列を追加します。

   1. 完了した各クエリの DPU 消費量を確認します。

1. 必要に応じて、**[クエリエディタ]** から **[クエリ統計]** タブを選択し、**[消費された DPU]** を確認します。

**API を使用して DPU 消費量を取得する方法**

1. 次の API オペレーションを使用して、DPU 消費量をプログラムで取得します。
   + `GetQueryExecution` - 特定のクエリの実行の詳細情報を返す
   + `BatchGetQueryExecution` - 複数のクエリの実行の詳細情報を返す

1. AWS CLI を使用する例:

   ```
   aws athena get-query-execution \
     --query-execution-id "123e4567-e89b-12d3-a456-426614174000"
   ```

   応答には `Statistics` オブジェクトの `DpuCount` フィールドが含まれます。

   ```
   {
     "QueryExecution": {
       "Statistics": {
         "DpuCount": 8
       }
     }
   }
   ```

**CloudWatch で DPU 使用をモニタリングする方法**
+ Athena は、キャパシティ使用率などのパフォーマンスデータのモニタリングに役立つクエリ関連メトリクスを CloudWatch に発行します。詳細については「[CloudWatch による Athena クエリメトリクスのモニタリング](query-metrics-viewing.md)」を参照してください。

# キャパシティを自動で調整する
<a name="capacity-management-automatically-adjust-capacity"></a>

Athena の自動スケーリングソリューションを使用すれば、ワークロード使用率に応じて予約のキャパシティを自動で調整できます。使用率が設定したしきい値を超えると自動的に容量が追加され、使用率が低い間は容量を削除してコストを削減します。さまざまな使用率しきい値、最小 DPU 量と最大 DPU 量、スケーリング増分、使用率評価頻度を設定することで、動作をカスタマイズできます。これにより、パフォーマンス要件とコスト最適化のバランスを取りながら、手動で容量を調整する必要がなくなります。

CloudFormation テンプレートを使用してこのサーバーレスソリューションをデプロイします。使用率メトリクスをモニタリングしてスケーリングを決定する Step Functions ステートマシンが作成されます。テンプレートまたはステートマシンは、特定のニーズに合わせてさらにカスタマイズすることができます。

開始するには、Athena コンソールを使用して、キャパシティ予約の詳細ページで **[自動スケーリングの設定]** を選択します。これにより、あらかじめテンプレートがロードされている CloudFormation にリダイレクトされます。または、以下の手順に従います。

## 前提条件
<a name="capacity-management-auto-scaling-prerequisites"></a>
+ アクティブなキャパシティ予約が必要
+ CloudFormation スタックのデプロイと Step Functions リソースの作成に必要な IAM 許可

## CloudFormation スタックを起動する
<a name="capacity-management-auto-scaling-launch-stack"></a>

この自動 CloudFormation テンプレートによって、Athena キャパシティ予約の自動スケーリングソリューションがデプロイされます。スタックを起動する前に、[前提条件](#capacity-management-auto-scaling-prerequisites) で該当するステップを完了する必要があります。

[https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?&templateURL=https:%2F%2Fathena-downloads.s3.us-east-1.amazonaws.com%2F%2Ftemplates%2F%2Fcapacity-reservation-scaling%2F%2Fstate-machine%2F%2Fathena-capacity-reservation-scaling-template-v1.1.yaml](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?&templateURL=https:%2F%2Fathena-downloads.s3.us-east-1.amazonaws.com%2F%2Ftemplates%2F%2Fcapacity-reservation-scaling%2F%2Fstate-machine%2F%2Fathena-capacity-reservation-scaling-template-v1.1.yaml) 

**自動スケーリングソリューションを起動する方法**

1. [AWS マネジメントコンソール](https://console.aws.amazon.com/)にサインインして、`AWSAccelerator-InstallerStack` CloudFormation テンプレートを起動するボタンを選択します。

1. テンプレートはデフォルトで米国東部 (バージニア北部) で起動します。別の AWS リージョンでこのソリューションを起動するには、コンソールのナビゲーションバーのリージョンセレクターを使用します。

1. **[スタックの作成]** ページで、テンプレート URL が **[Amazon S3 URL]** テキストボックスに表示されていることを確認し、**[次へ]** を選択します。

1. **[スタックの詳細を指定]** ページで、ソリューションのスタックに名前を割り当てます。

1. **[パラメータ]** で、このソリューションのテンプレートパラメータを確認し、必要に応じて変更します。このソリューションでは、次のデフォルト値を使用します。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/capacity-management-automatically-adjust-capacity.html)
**注記**  
Athena のキャパシティ予約要件に合わせるために、すべての DPU 値を 4 の倍数にする必要があります。

1. **[次へ]** を選択します。

1. **[スタックオプションの設定]** ページで、**[次へ]** を選択します。

1. **[確認および作成]** ページで、設定を確認して確定します。テンプレートによって IAM のリソースが作成されることを承認するチェックボックスをオンにします。

1. **[送信]** を選択してスタックをデプロイします。

   スタックのステータスは、CloudFormation コンソールの **[ステータス]** 列で確認できます。数分で `CREATE_COMPLETE` ステータスが表示されます。

# 予約を管理する
<a name="capacity-management-managing-reservations"></a>

**[キャパシティ予約]** ページでは、キャパシティ予約を表示および管理できます。DPU の追加や削減、ワークグループ割り当ての変更、予約のタグ付けやキャンセルなどの管理タスクを実行できます。

**キャパシティ予約の表示および管理**

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

1. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

1. **[管理]**、**[キャパシティ予約]** を選択します。

1. [キャパシティ予約] ページでは、次のタスクを実行できます。
   + キャパシティ予約を作成するには、**[キャパシティ予約を作成]** を選択します。
   + 検索ボックスを使用して、予約を名前または DPU の数でフィルタリングします。
   + ステータスドロップダウンメニューを選択して、キャパシティ予約ステータス (**[アクティブ]**、**[キャンセル済み]** など) でフィルタリングします。予約ステータスについては、「[予約ステータスを把握する](#capacity-management-understanding-reservation-status)」を参照してください。
   + キャパシティ予約の詳細を表示するには、予約のリンクを選択します。予約の詳細ページには、[[キャパシティの編集](capacity-management-editing-capacity-reservations.md)]、[[ワークグループの追加](capacity-management-adding-workgroups-to-a-reservation.md)]、[[ワークグループの削除](capacity-management-removing-a-workgroup-from-a-reservation.md)]、[[予約のキャンセル](capacity-management-cancelling-a-capacity-reservation.md)] のオプションがあります。
   + 予約を編集 (DPU を追加または削除するなど) するには、その予約のボタンを選択し、**[編集]** を選択します。
   + 予約をキャンセルするには、その予約のボタンを選択し、**[キャンセル]** を選択します。

## 予約ステータスを把握する
<a name="capacity-management-understanding-reservation-status"></a>

キャパシティ予約の取りうるステータス値は、次の表のとおりです。


****  

| ステータス | 説明 | 
| --- | --- | 
| [保留中] | Athena はキャパシティリクエストを処理中です。キャパシティはクエリを実行する準備ができていません。 | 
| アクティブ | クエリを実行するためのキャパシティがあります。 | 
| 失敗 | キャパシティのリクエストは正常に完了しませんでした。キャパシティの充足は保証されないことに注意してください。予約に失敗した場合、アカウントの DPU 制限にカウントされます。利用状況を解放するには、予約をキャンセルする必要があります。 | 
| [更新保留中] | Athena は予約の変更を処理中です。例えば、予約を編集して DPU を追加または削除すると、このステータスが表示されます。 | 
| [キャンセル中] | Athena は予約のキャンセルリクエストを処理中です。予約を使用していたワークグループでまだ実行中のクエリは完了できますが、ワークグループ内の他のクエリはオンデマンド (プロビジョニングされていない) キャパシティを使用します。 | 
| キャンセル済み |  キャパシティ予約のキャンセルが完了しました。キャンセルされた予約は、45 日間コンソールに残ります。45 日後、Athena は予約を削除します。この 45 日間は、その予約の編集や再使用はできませんが、過去の参照用に予約のタグを参照したり、詳細を確認したりすることはできます。 キャンセルされたキャパシティが後日再予約可能になる保証はありません。キャパシティを別の予約、AWS アカウント、AWS リージョン に移すことはできません。  | 

## アクティブ DPU とターゲット DPU を理解する
<a name="capacity-management-understanding-dpu-status"></a>

Athena コンソールのキャパシティ予約のリストで、予約には 2 つの DPU 値 (**[アクティブ DPU]** と **[ターゲット DPU]**) が表示されます。
+ **[アクティブ DPU]** — 予約内でクエリを実行できる DPU の数。例えば、DPU 100 個をリクエストし、そのリクエストが受理された場合、**[アクティブ DPU]** には **100** と表示されます。
+ **[ターゲット DPU]** — 予約の移行先の DPU の数。予約の作成中、または DPU 数の増減が保留中の場合、**[ターゲット DPU]** には **[アクティブ DPU]** とは異なる値が表示されます。

例えば、DPU 24 個の予約を作成するリクエストを送信すると、**[ステータス]** は **[保留中]** になり、**[アクティブ DPU]** は **0**、**[ターゲット DPU]** は **24** になります。

DPU 100 個の予約があり、予約を編集して DPU 20 個の増加をリクエストした場合、**[ステータス]** は**[更新保留中]** になり、**[アクティブ DPU]** は **100**、**[ターゲット DPU]** は **120** になります。

DPU 100 個の予約があり、予約を編集して DPU 20 個の削減をリクエストした場合、**[ステータス]** は**[更新保留中]** になり、**[アクティブ DPU]** は **100**、**[ターゲット DPU]** は **80** になります。

これらの移行中、Athena はリクエストに応じて DPU の取得または削減を能動的に行っています。**[アクティブ DPU]** が **[ターゲット DPU]** と等しい時は、目標数に達しており、保留中の変更はありません。

これらの値をプログラムで取得するには、[GetCapacityReservation](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCapacityReservation.html) API アクションを呼び出します。API では、**[アクティブ DPU]** および **[ターゲット DPU]** をそれぞれ、`AllocatedDpus` および `TargetDpus` と呼びます。

**Topics**
+ [予約ステータスを把握する](#capacity-management-understanding-reservation-status)
+ [アクティブ DPU とターゲット DPU を理解する](#capacity-management-understanding-dpu-status)
+ [キャパシティ予約を編集する](capacity-management-editing-capacity-reservations.md)
+ [予約にワークグループを追加する](capacity-management-adding-workgroups-to-a-reservation.md)
+ [予約からワークグループを削除する](capacity-management-removing-a-workgroup-from-a-reservation.md)
+ [キャパシティ予約をキャンセルする](capacity-management-cancelling-a-capacity-reservation.md)
+ [キャパシティ予約を削除する](capacity-management-deleting-a-capacity-reservation.md)

# キャパシティ予約を編集する
<a name="capacity-management-editing-capacity-reservations"></a>

キャパシティ予約を作成したら、DPU の数を調整したり、カスタムタグを追加または削除したりできます。

**キャパシティ予約を編集するには**

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

1. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

1. **[管理]**、**[キャパシティ予約]** を選択します。

1. キャパシティ予約のリストで、次のいずれかを実行します。
   + 予約の横にあるボタンを選択し、**[編集]** を選択します。
   + 予約リンクを選択し、**[編集]** を選択します。

1. **DPU** の場合は、必要なデータ処理ユニットの数を選択または入力します。詳細については、「[DPU を理解する](capacity-management.md#capacity-management-understanding-dpus)」を参照してください。
**注記**  
DPU はアクティブなキャパシティ予約にいつでも追加できます。
予約がアクティブになってから 1 分が経過したとき、または DPU が最後に追加されたときは、アクティブなキャパシティ予約から DPU を減らすようにリクエストできます。
DPU の削減をリクエストすると、Athena はアクティブな DPU よりもアイドル状態の DPU の削除を優先します。削除対象としてマークされた DPU をクエリが消費している場合、Athena は クエリが完了するまで待機してから、DPU を削除します。

1. (オプション) **[タグ]** で、**[削除]** を選択してタグを削除するか、**[タグの追加]** を選択して新しいタグを追加します。

1. **[送信]** を選択します。予約の詳細ページには、更新された構成が表示されます。

# 予約にワークグループを追加する
<a name="capacity-management-adding-workgroups-to-a-reservation"></a>

キャパシティ予約を作成すると、予約に最大 20 のワークグループを追加できます。予約にワークグループを追加すると、リザーブドキャパシティでどのクエリを実行すべきかを Athena に伝えます。予約に関連付けられていないワークグループからのクエリは、引き続きテラバイト (TB) ごとのスキャン済みデフォルト価格モデルを使用して実行されます。

予約に 2 つ以上のワークグループがある場合、それらのワークグループからのクエリはリザーブドキャパシティを使用できます。ワークグループの追加と削除は随時行うことができます。ワークグループを追加または削除しても、実行中のクエリは中断されません。

予約が保留中ステータスの場合、追加したワークグループからのクエリは、予約がアクティブになるまで、引き続きテラバイト (TB) ごとのスキャン済みデフォルト価格モデルを使用して実行されます。

**キャパシティ予約に 1 つ以上のワークグループを追加するには**

1. [キャパシティ予約] の詳細ページで、**[ワークグループの追加]** を選択します。

1. **[ワークグループの追加]** ページで、追加するワークグループを選択し、**[ワークグループの追加]** を選択します。1 つのワークグループを複数の予約に割り当てることはできません。

   [キャパシティ予約] の詳細ページに、追加したワークグループが表示されます。これらのワークグループで実行されるクエリは、予約がアクティブなときに、予約したキャパシティを使用します。

# 予約からワークグループを削除する
<a name="capacity-management-removing-a-workgroup-from-a-reservation"></a>

ワークグループ専用のキャパシティが不要になった場合や、ワークグループを専用の予約に移動したい場合は、いつでも削除できます。予約からワークグループを削除するプロセスは簡単です。予約からワークグループを削除すると、削除されたワークグループからのクエリはオンデマンドキャパシティの使用に戻り、スキャンされたテラバイト（TB）に基づいて請求されます。

**予約から 1 つ以上のワークグループを削除するには**

1. キャパシティ予約の詳細ページで、削除するワークグループを選択します。

1. **[ワークグループを削除]** を選択します。**[ワークグループを削除しますか？]** のプロンプトが表示され、ワークグループを予約から削除する前に、現在アクティブなクエリがすべて終了することを通知します。

1. **[**を削除] を選択します。キャパシティ予約の詳細ページには、削除されたワークグループがもう存在しないことが表示されます。

# キャパシティ予約をキャンセルする
<a name="capacity-management-cancelling-a-capacity-reservation"></a>

キャパシティ予約が不要になった場合は、キャンセルすることができます。予約を使用していたワークグループでまだ実行中のクエリは完了できますが、ワークグループ内の他のクエリは予約を使用しなくなります。

**注記**  
キャンセルされたキャパシティが後日再予約可能になる保証はありません。キャパシティを別の予約、AWS アカウント、AWS リージョン に移すことはできません。

**キャパシティ予約をキャンセルするには**

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

1. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

1. **[管理]**、**[キャパシティ予約]** を選択します。

1. キャパシティ予約のリストで、次のいずれかを実行します。
   + 予約の横にあるボタンを選択し、**[キャンセル]** を選択します。
   + [予約リンク] を選択してから、**[キャパシティ予約のキャンセル]** を選択します。

1. **[キャパシティ予約をキャンセルしますか？]** プロンプトで **[キャンセル]** を入力し、**[キャパシティ予約のキャンセル]** を選択します。

   予約のステータスが **[キャンセル中]** に変わり、キャンセルが進行中であることを知らせる進行状況バナーが表示されます。

   キャンセルが完了すると、キャパシティ予約はそのまま残りますが、ステータスは **[キャンセル済み]** と表示されます。予約はキャンセル後 45 日で削除されます。この 45 日間は、キャンセルされた予約を編集したり再利用したりすることはできませんが、タグを参照、表示して、過去の履歴を参照することはできます。

# キャパシティ予約を削除する
<a name="capacity-management-deleting-a-capacity-reservation"></a>

キャンセルされたキャパシティ予約への参照をすべて削除したい場合は、予約を削除できます。予約は削除する前にキャンセルする必要があります。削除された予約はアカウントから直ちに削除され、参照できなくなります (ARN を使用する場合を含む)。

**キャパシティ予約を削除するには**

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

1. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

1. **[管理]**、**[キャパシティ予約]** を選択します。

1. キャパシティ予約のリストで、次のいずれかを実行します。
   + キャンセルされた予約の横にあるボタンを選択し、**[アクション]**、**[削除]** の順に選択します。
   + 予約リンクを選択し、**[削除]** を選択します。

1. **[キャパシティ予約を削除しますか?]** プロンプトが表示されたら、**[削除]** を選択します。

   バナーは、キャパシティ予約が正常に削除されたことを通知します。削除された予約は、キャパシティ予約のリストに表示されなくなります。

# キャパシティ予約の IAM ポリシー
<a name="capacity-reservations-iam-policy"></a>

キャパシティ予約へのアクセスを制御するには、リソースレベルの IAM 許可、またはアイデンティティベースの IAM ポリシーを使用します。IAM ポリシーを使用するときは、常に IAM のベストプラクティスに従うようにしてください。詳細については、*IAM ユーザーガイド*の「[IAM でのセキュリティベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

以下の手順は、Athena に固有の手順です。

IAM 固有の情報については、このセクションの最後に表示されているリンク先を参照してください。JSON キャパシティ予約ポリシーの例についての情報は、「[キャパシティ予約ポリシーの例](example-policies-capacity-reservations.md)」を参照してください。

**IAM コンソールのビジュアルエディタを使用してキャパシティ予約ポリシーを作成するには**

1. AWS マネジメントコンソール にサインインして、IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. 左側のナビゲーションペインで、[**Policies**] (ポリシー)、[**Create policy**] (ポリシーの作成) の順にクリックします。

1. [**Visual editor**] (ビジュアルエディタ) タブで、[**Choose a service**] (サービスの選択) をクリックします。次に、ポリシーに追加する Athena を選択します。

1. **[Select actions]** (アクションの選択) を選択し、ポリシーに追加するアクションを選択します。ビジュアルエディタが Athena で利用できるアクションを表示します。詳細については、「*サービス承認リファレンス*」の「[Amazon Athena のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)」を参照してください。

1. **[アクションの追加]** を選択して特定のアクションを入力、またはワイルドカード文字 (\$1) を使用して複数のアクションを指定します。

   デフォルトでは、作成しているポリシーが選択するアクションを許可します。Athena 内の `capacity-reservation` リソースに対するリソースレベルのアクセス許可をサポートするアクションを 1 つ、または複数選択すると、エディタが `capacity-reservation` リソースをリストします。

1. **[リソース]** を選択し、ポリシーに関する特定のキャパシティ予約を指定します。JSON キャパシティ予約ポリシーの例については、「[キャパシティ予約ポリシーの例](example-policies-capacity-reservations.md)」を参照してください。

1. 以下のように `capacity-reservation` リソースを指定します。

   ```
   arn:aws:athena:<region>:<user-account>:capacity-reservation/<capacity-reservation-name>
   ```

1. **[Review policy]** (ポリシーの確認) をクリックして、作成するポリシーの **[Name]** (名前) と **[Description**] (説明) (オプション) を入力します。ポリシー概要を確認して、意図したアクセス許可を付与したことを確認します。

1. **[Create Policy]** (ポリシーの作成) をクリックして、新しいポリシーを保存します。

1. このアイデンティティベースのポリシーをユーザー、グループ、またはロールにアタッチします。

詳細については、「*サービス認可リファレンス*」と「*IAM ユーザーガイド*」で以下のトピックを参照してください。
+  [Amazon Athena のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) 
+  [ビジュアルエディタでのポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) 
+  [IAM ポリシーの追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) 
+  [リソースへのアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html#access_controlling-resources) 

JSON キャパシティ予約ポリシーの例については、「[キャパシティ予約ポリシーの例](example-policies-capacity-reservations.md)」を参照してください。

Amazon Athena アクションの完全なリストについては、「[Amazon Athena API リファレンス](https://docs.aws.amazon.com/athena/latest/APIReference/)」の API アクション名を参照してください。

# キャパシティ予約ポリシーの例
<a name="example-policies-capacity-reservations"></a>

このセクションには、キャパシティ予約に対するさまざまなアクションを有効にするために使用できるポリシーの例が含まれています。IAM ポリシーを使用するときは、常に IAM のベストプラクティスに従うようにしてください。詳細については、「*IAM ユーザーガイド*」の「[IAM でのセキュリティベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

キャパシティ予約は、Athena で管理されている IAM リソースです。そのため、キャパシティ予約ポリシーで `capacity-reservation` を入力として取るアクションを使用する場合、キャパシティ予約の ARN を次のように指定する必要があります:

```
"Resource": [arn:aws:athena:<region>:<user-account>:capacity-reservation/<capacity-reservation-name>]
```

`<capacity-reservation-name>` の場所はキャパシティ予約の名前です。たとえば、`test_capacity_reservation` という名前のキャパシティ予約の場合は、次のようにリソースとして指定します:

```
"Resource": ["arn:aws:athena:us-east-1:123456789012:capacity-reservation/test_capacity_reservation"]
```

Amazon Athena アクションの完全なリストについては、「[Amazon Athena API リファレンス](https://docs.aws.amazon.com/athena/latest/APIReference/)」の API アクション名を参照してください。IAM ポリシーの詳細については、「*IAM ユーザーガイド*」で「[ビジュアルエディタでのポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor)」を参照してください。

**Example キャパシティ予約を一覧表示するポリシーの例**  
次のポリシーによって、すべてのユーザーがすべてのキャパシティ予約を一覧表示できるようになります。    
****  

```
{ 
    "Version":"2012-10-17",		 	 	  
    "Statement": [ 
        { 
            "Effect": "Allow", 
            "Action": [ 
                "athena:ListCapacityReservations" 
            ], 
            "Resource": "*" 
        } 
    ] 
}
```

**Example 管理オペレーションに関するポリシーの例**  
次のポリシーによって、ユーザーはキャパシティ予約 `test_capacity_reservation` を作成、キャンセル、更新、その詳細を取得できます。また、このポリシーによって、ユーザーは `workgroupA` と`workgroupB` を`test_capacity_reservation` に割り当てられます。    
****  

```
{ 
   "Version":"2012-10-17",		 	 	  
   "Statement":[ 
      { 
         "Effect": "Allow", 
         "Action": [ 
             "athena:CreateCapacityReservation", 
             "athena:GetCapacityReservation", 
             "athena:CancelCapacityReservation", 
             "athena:UpdateCapacityReservation", 
             "athena:GetCapacityAssignmentConfiguration", 
             "athena:PutCapacityAssignmentConfiguration" 
         ], 
         "Resource": [ 
             "arn:aws:athena:us-east-1:123456789012:capacity-reservation/test_capacity_reservation", 
             "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA", 
             "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupB" 
         ] 
      } 
   ] 
}
```

# Athena キャパシティ予約 API
<a name="capacity-management-api-list"></a>

次のリストには、Athena キャパシティ予約 API アクションへの参照リンクが含まれています。データ構造とその他の Athena API アクションについては、「[Amazon Athena API リファレンス](https://docs.aws.amazon.com/athena/latest/APIReference/)」を参照してください。
+  [CancelCapacityReservation](https://docs.aws.amazon.com/athena/latest/APIReference/API_CancelCapacityReservation.html) 
+  [CreateCapacityReservation](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateCapacityReservation.html) 
+  [DeleteCapacityReservation](https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteCapacityReservation.html) 
+  [GetCapacityAssignmentConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCapacityAssignmentConfiguration.html) 
+  [GetCapacityReservation](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCapacityReservation.html) 
+  [ListCapacityReservations](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListCapacityReservations.html) 
+  [PutCapacityAssignmentConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_PutCapacityAssignmentConfiguration.html) 
+  [UpdateCapacityReservation](https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateCapacityReservation.html) 