Azure の予約の自動化に関する API
Azure API を使用して、Azure サービスまたはソフトウェアの予約に関する組織の情報をプログラムで取得します。
購入する予約プランを検索する
組織の使用状況に基づいて購入する予約プランについての推奨事項を取得するには、Reservation Recommendation API を使用します。 詳細については、予約の推奨事項に関する記事をご覧ください。
Consumption API の使用状況の詳細を使って、リソースの使用状況を分析することもできます。 詳細については、「Usage Details - List For Billing Period By Billing Account」(使用状況の詳細 - 請求期間に対する課金アカウント別のリスト) をご覧ください。 通常、一貫して使用する Azure リソースは、予約に最適な候補です。
予約の購入
REST API を使用して、Azure の予約やソフトウェア プランをプログラムから購入できるようになりました。 詳細は、「Reservation Order - Purchase API」 (予約注文 - 購入 API) を参照してください。
REST API を使用して購入する場合のサンプル要求を以下に示します。
PUT https://management.azure.com/providers/Microsoft.Capacity/reservationOrders/<GUID>?api-version=2019-04-01
要求本文:
{
"sku": {
"name": "standard_D1"
},
"location": "westus",
"properties": {
"reservedResourceType": "VirtualMachines",
"billingScopeId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"term": "P1Y",
"quantity": "1",
"displayName": "TestReservationOrder",
"appliedScopes": null,
"appliedScopeType": "Shared",
"reservedResourceProperties": {
"instanceFlexibility": "On"
}
}
}
予約は Azure portal でも購入できます。 詳細については、次の記事を参照してください。
サービス プラン:
ソフトウェア プラン:
予約を取得する
Enterprise Agreement をご利用の Azure のお客様 (EA のお客様) の場合は、「予約トランザクション - 一覧」を使用することで、組織によって購入された予約を取得できます。 他のサブスクリプションの場合は、予約注文の一覧表示 API を使用することにより、お客様自身が購入して表示アクセス許可を持っている予約の一覧を取得できます。 既定では、アカウントの所有者または予約を購入した人には、予約を表示するアクセス許可があります。
予約の使用状況を表示する
EA のお客様の場合、組織の予約がどのように使用されているかを、プログラムで表示することができます。 詳細については、「予約トランザクション - 一覧」をご覧ください。 他のサブスクリプションの場合は、「Reservations Summaries - List By Reservation Order And Reservation」(予約の概要 - 予約注文別および予約別の一覧) で説明されている API を使用します。
組織の予約の使用量が少ない場合は、次のようにします。
- 組織で作成されている仮想マシンが、予約での VM サイズと一致していることを確認します。
- インスタンス サイズの柔軟性が有効になっていることを確認します。 詳細については、予約の管理に関する記事の「予約 VM インスタンスの最適化設定を変更する」をご覧ください。
- より広範に適用されるように、予約範囲を共有に変更します。 詳細については、予約の管理に関する記事の「予約のスコープを変更する」をご覧ください。
- 未使用の数量を交換します。 詳しくは、予約の管理に関する記事をご覧ください。
予約にアクセスできるようにする
ユーザーがアクセス権を持っているすべての予約の一覧を取得するには、予約操作の一覧取得 API を使用します。 プログラムで予約へのアクセス権を付与するには、次のいずれかの記事をご覧ください。
- REST API を使用して Azure ロールの割り当てを追加または削除する
- Azure PowerShell を使用して Azure でのロールの割り当てを追加または削除する
- Azure CLI を使用して Azure ロールの割り当てを追加または削除する
予約を分割または統合する
予約内で複数のリソース インスタンスを購入した後、その予約内のインスタンスを異なるサブスクリプションに割り当てることができます。 同じ課金コンテキスト内のすべてのサブスクリプションに適用されるように、予約範囲を変更できます。 ただし、コスト管理や予算作成が目的の場合は、範囲を "1 つのサブスクリプション" に維持し、予約インスタンスを特定のサブスクリプションに割り当てるのが望ましいことがあります。
予約を分割するには、予約分割 API を使用します。 PowerShell を使用して予約を分割することもできます。 詳細については、予約の管理に関する記事の「1 つの予約を 2 つの予約に分割する」をご覧ください。
2 つの予約を 1 つの予約にまとめるには、予約統合 API を使用します。
予約の範囲を変更する
予約のスコープは、単一のサブスクリプションや単一のリソース グループになることもあれば、課金コンテキスト内のすべてのサブスクリプションになることもあります。 単一のサブスクリプションまたは単一のリソース グループにスコープを設定した場合、選択したサブスクリプション内の実行中のリソースに対して予約が照合されます。 サブスクリプションまたはリソース グループを削除または移動した場合、予約は利用できなくなります。 スコープを "共有" に設定した場合、課金コンテキスト内の全サブスクリプションで実行されるリソースに対して予約が照合されます。 課金コンテキストは、予約の購入に使用したサブスクリプションによって決まります。 スコープは購入時に選択できます。また、購入後いつでも変更することもできます。 詳細については、予約の管理に関する記事の「予約のスコープを変更する」をご覧ください。
プログラムで範囲を変更するには、予約更新 API を使用します。