AWS Service Quotasでクォータ緩和申請

aws_logo

皆さんはAWSでサービスクォータ緩和申請を利用したことがあるでしょうか?

AWSの特定サービス、特定リソースにおける利用上限が『クォータ』[1] と呼ばれていたりします。

さて、このサービスクォータですが、以前はAWSサポートで緩和申請のチケット発行するしかなかったのが、現在ではAWSサービス AWS Service Quotas から現在の値の確認、そして緩和申請までを行うことができるようになっています。

https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html

サービスクォータ緩和申請まで含めたインフラ構成管理をするためにちょくちょく利用する機会があったんですが、不便なことがあったので説明していきます。

AWS Service Quotasで不便なこと

申請後、AWSサポートのチケット上で追加のやり取りが発生する可能性があります。それも英語のWebテキストチャットで。まれに、英語で電話がかかってくることもありました。

追加のやり取りが発生した例、しなかった例を挙げます:

  • 発生
    • Amazon Athenaの『DML query timeout(DMLクエリのタイムアウト)』
    • EC2の『All G and VT Spot Instance Requests(すべてのGおよびVTタイプのスポットインスタンス申請)』
  • 発生せず
    • EC2の『EC2-VPC Elastic IPs(VPC毎のEIP数の上限)』

3件を比較して考えてみると、制限緩和の審査が厳しく、昔ながらのAWSサポート経由での制限緩和であれば質問事項の記入が求められる場合に、追加のやり取りが発生する様子です。

分散並列コンピューティングなど、処理性能のスケーリングファクターが複雑なAWSサービスや、ハードウェア要求が高かったり、物理的に要求を満たしづらい(昨今のGPU不足)場合などですね。

対策

サービスクォータに応じてService Quotas APIとAWSサポートAPI(チケットはAPIからも発行できる)を使い分けることで回避できます。

ただし、私見としてはAWSサポートAPIで申請したほうがいいんじゃないかと思ってます。

なぜかというと、Service Quotas APIに複数の質問事項に回答するためのインターフェイスが備わっていない反面、AWSサポートAPIでは備わっているから。下記はAWS CLIのリファレンスですが、--desired-valueで希望する値を指定するのみで、任意の質問事項への回答はできません。

  request-service-quota-increase
--service-code <value>
--quota-code <value>
--desired-value <value>
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

https://docs.aws.amazon.com/cli/latest/reference/service-quotas/request-service-quota-increase.html

そして下記がAWSサポートAPIのリファレンスです。Webテキストチャットの本文である--communication-body に質問事項への回答を記入しておけばOKです。

  create-case
--subject <value>
[--service-code <value>]
[--severity-code <value>]
[--category-code <value>]
--communication-body <value>
[--cc-email-addresses <value>]
[--language <value>]
[--issue-type <value>]
[--attachment-set-id <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

https://docs.aws.amazon.com/cli/latest/reference/support/create-case.html

どのような質問事項が用意されているかは実際にサービスクォータ緩和申請をおこなうことでやっと判明しますが、できれば質問事項もシステマチックにAPI定義してもらいたいところ。

Service Quotas APIに特定サービスクォータの緩和申請における質問事項一覧を取得するコマンドを追加したり、緩和申請コマンドに質問事項の回答ペイロードを渡すパラメータが追加されれば万事解決するんじゃないかと思ったり。


[1]: クォータ (quote) は『分け前』といった意味。