

# API Gateway で REST API の使用量プランを設定する
<a name="api-gateway-create-usage-plans"></a>

使用量プランを作成する前に、API キーがセットアップされていることを確認します。詳細については、「[API Gateway で REST API の API キーをセットアップする](api-gateway-setup-api-keys.md)」を参照してください。

**Topics**
+ [API をデフォルトの使用量プランに移行する (必要な場合)](#api-gateway-usage-plan-migrate-to-default)
+ [使用量プランを作成する](#api-gateway-usage-plan-create)
+ [ステージを使用量プランに追加する](#api-gateway-usage-plan-add-stage)
+ [API キーを使用量プランに追加する](#api-gateway-usage-plan-add-key)

## API をデフォルトの使用量プランに移行する (必要な場合)
<a name="api-gateway-usage-plan-migrate-to-default"></a>

使用量プラン機能が展開された 2016 年 8 月 11 日*以降*に API Gateway の使用を開始した場合は、サポートされているすべてのリージョンで自動的に使用量プランが有効になっています。

それ以前に API Gateway の使用を開始した場合は、デフォルトの使用量プランへの移行が必要な場合もあります。選択したリージョンで使用量プランを初めて使用する前に、**使用量プランの有効化**オプションが表示されます。このオプションを有効化すると、既存の API キーに関連付けられた一意の API ステージすべてに、デフォルトの使用量プランが作成されます。デフォルトの使用量プランでは最初にスロットリングやクォータ制限が設定されていません。API キーと API ステージの関連付けは使用量プランにコピーされます。API は以前と同じように動作します。ただし、指定された API ステージの値 (`apiId` および `stage`) を含まれている API キーに関連付ける ([https://docs.aws.amazon.com/apigateway/latest/api/API_UsagePlanKey.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UsagePlanKey.html) を使用) には、[ApiKey](https://docs.aws.amazon.com/apigateway/latest/api/API_ApiKey.html) `stageKeys` プロパティを使用する代わりに、[https://docs.aws.amazon.com/apigateway/latest/api/API_UsagePlan.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UsagePlan.html) `apiStages` プロパティを使用する必要があります。

既にデフォルトの使用量プランに移行しているかどうかを確認するには、[https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-account.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-account.html) CLI コマンドを使用します。使用量プランが有効になっている場合は、コマンド出力で `features` リストに `"UsagePlans"` のエントリが含まれます。

次のように AWS CLI を使用して、デフォルトの使用量プランに API を移行することもできます。

**AWS CLI を使用してデフォルトの使用量プランに移行する**

1. この CLI コマンド [https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-account.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-account.html) を呼び出します。

1. `cli-input-json` パラメータには次の JSON を使用します。

   ```
   [
       {
           "op": "add",
           "path": "/features",
           "value": "UsagePlans"
       }
   ]
   ```

## 使用量プランを作成する
<a name="api-gateway-usage-plan-create"></a>

次の手順は、使用量プランを作成する方法を説明します。

------
#### [ AWS マネジメントコンソール ]

**使用量プランを作成するには**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1. Amazon API Gateway のメインナビゲーションペインで、**[使用量プラン]** を選択し、次に **[使用量プランの作成]** を選択します。  
![\[API 使用量プランのエンティティ\]](http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/api-gateway-new-console-usage-plan-keys-create-setup.png)

1. **[ロール名]** に名前を入力します。

1.  (オプション) **[説明]** に説明を入力します。

1. デフォルトでは、使用量プランではスロットリングが有効になっています。使用量プランの **[レート]** と **[バースト]** を入力します。**[スロットリング]** を選択してスロットリングをオフにします。

1. デフォルトでは、使用量プランでは一定期間のクォータが有効になっています。**[リクエスト]** には、使用プランの期間中にユーザーが実行できるリクエストの合計数を入力します。**[クォータ]** を選択してクォータを無効にします。

1. **[使用量プランの作成]** を選択します。

------
#### [ AWS CLI ]

次の [create-usage-plan](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-usage-plan.html) コマンドは、月の初めにリセットされる使用量プランを作成します。

```
aws apigateway create-usage-plan \
    --name "New Usage Plan" \
    --description "A new usage plan" \
    --throttle burstLimit=10,rateLimit=5 \
    --quota limit=500,offset=0,period=MONTH
```

------
#### [ REST API ]

[https://docs.aws.amazon.com/apigateway/latest/api/API_CreateUsagePlan.html](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateUsagePlan.html) を呼び出して、使用量プランを作成します。

------

## ステージを使用量プランに追加する
<a name="api-gateway-usage-plan-add-stage"></a>

次の手順は、ステージを使用量プランに追加する方法を説明します。

------
#### [ AWS マネジメントコンソール ]

**ステージを使用量プランに追加するには**

1. 使用プランを選択します。

1.  **[関連ステージ]** タブの **[ステージを追加する]** を選択します。  
![\[API ステージを使用量プランに追加します。\]](http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/api-gateway-new-console-usage-plan-keys-create-add-stage.png)

1.  **[API]** には API を選択します。

1.  **[ステージ]** では、ステージを選択します。

1. (オプション) メソッドレベルのスロットリングをオンにするには、次の手順を実行します。

   1. **[メソッドレベルのスロットリング]** を選択し、**[メソッドを追加]** を選択します。

   1. **[リソース]** では、API からリソースを選択します。

   1. **[メソッド]** では、API からメソッドを選択します。

   1.  使用量プランの **[レート]** と **[バースト]** を入力します。

1. **[使用量プランに追加]** を選択します。

------
#### [ AWS CLI ]

次の [update-usage-plan](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-usage-plan.html) コマンドは、API の `Prod` ステージを使用量プランに追加します。

```
aws apigateway update-usage-plan \
    --usage-plan-id abc123 \
    --patch-operations op="add",path="/apiStages",value="a1b1c2:Prod"
```

------
#### [ REST API ]

[https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateUsagePlan.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateUsagePlan.html) を呼び出して使用量プランを更新します。

------

## API キーを使用量プランに追加する
<a name="api-gateway-usage-plan-add-key"></a>

次の手順は、API キーを使用量プランに追加する方法を示しています。

------
#### [ AWS マネジメントコンソール ]

**使用プランにキーを追加するには**

1. **[関連付けられた API キー]** で、**[API キーを追加]** を選択します。  
![\[API 使用量プランのエンティティ\]](http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/api-gateway-new-console-usage-plan-keys-create-add-key.png)

1. 

   1.  既存のキーを使用プランに関連付けるには、**[既存のキーを追加]** を選択し、ドロップダウンメニューから既存のキーを選択します。

   1. 新しい API キーを作成するには、**[新しいキーを作成して追加]** を選択し、新しいキーを作成します。新しいキーの作成方法の詳細については、「[API キーを作成する](api-gateway-setup-api-keys.md#api-gateway-usage-plan-create-apikey)」を参照してください。

1. **[API キーの追加]** を選択します。

------
#### [ AWS CLI ]

次の [create-usage-plan-key](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-usage-plan-key.html) コマンドは、既存の API キーを使用量プランに関連付けます。

```
aws apigateway create-usage-plan-key \
    --usage-plan-id a1b2c3 \
    --key-type "API_KEY" \
    --key-id aaa111bbb
```

------
#### [ REST API ]

[https://docs.aws.amazon.com/apigateway/latest/api/API_CreateUsagePlanKey.html](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateUsagePlanKey.html) を呼び出して、既存の API キーを使用量プランに関連付けます。

API キーをインポートするときに、使用量プランに直接関連付けることもできます。[https://docs.aws.amazon.com/apigateway/latest/api/API_ImportApiKeys.html](https://docs.aws.amazon.com/apigateway/latest/api/API_ImportApiKeys.html) を呼び出して、指定した使用量プランに 1 つ以上の API キーを直接追加します。リクエストペイロードは API キー値、関連付けられた使用量プランの識別子、キーが使用量プランに有効であることを示すブーリアン型フラグ、および、場合によっては、API キーの名前と説明を含む必要があります。

`apikey:import` リクエストの次の例では、3 つの API キー (`key`、`name`、および `description` により識別される) が、1 つの使用量プラン (`usageplanIds` により識別される) に追加されます。

```
POST /apikeys?mode=import&format=csv&failonwarnings=fase HTTP/1.1
Host: apigateway.us-east-1.amazonaws.com
Content-Type: text/csv
Authorization: ...

key,name, description, enabled, usageplanIds
abcdef1234ghijklmnop8901234567, importedKey_1, firstone,  tRuE, n371pt 
abcdef1234ghijklmnop0123456789, importedKey_2, secondone, TRUE, n371pt
abcdef1234ghijklmnop9012345678, importedKey_3,          , true, n371pt
```

その結果、3 つの `UsagePlanKey` リソースが作成されて、`UsagePlan` に追加されます。

この方法で API キーを複数の使用プランに追加することもできます。これを行うには、各 `usageplanIds` 列の値を、選択した使用量プランの識別子を含むカンマ区切り文字列に変更し、引用符で囲みます (`"n371pt,m282qs"` または `'n371pt,m282qs'`)。

------

**注記**  
API キーを複数の使用量プランと関連付けることができます。使用量プランを複数のステージと関連付けることができます。ただし、指定された API キーは API の各ステージの 1 つの使用量プランにのみ関連付けることができます。