皆さん、初めまして。
システム2部 システム運用Gの尾崎です。
私はSREとしてこれまで複数のAWSシステムの構築/運用保守を担当してきました。今回は、AWSシステムを運用していく中で必要となる「AWS Service Quotas」について、管理方法をまとめたので共有します。
AWSシステムを運用している方、これから構築される方のお役に立てればと思います。
AWS Service Quotasとは?
その名の通り「AWSサービスの制限」のことです。
AWSアカウントには、オペレーションミスなどによる意図しない支出からユーザを保護するために、AWSサービスごとにクォータ値が設定されています。
また、クォータによっては上限緩和も可能です。
https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html
以前こんなことが・・・・
開発環境で新たなIAMポリシーを作成し、既存のIAMロールにアタッチし、問題なく完了しました。
同じ対応を本番環境で実施したところ・・・
エラーになった!!!
エラー内容から「サービスクォータに達したエラー」であることはすぐに分かったため、上限緩和申請をして、約1時間後にクォータ値が引き上げられ無事作業完了しました。
開発環境と本番環境で、クォータ値に差異があったことで事前回避ができませんでした。
(開発環境では半年くらい前?にクォータを引上げていた)
今回は、1時間ほどでクォータ引上げが完了したので良かったのですが、モノによっては数日後に処理されるものもあるため、これだけのために作業リスケするもの悔しいです・・・。
ということで、「Service Quotasをうまく管理できないか」について考えてみました。
Service Quotasをうまく管理できないか?
【管理方法①】Trusted Advisorを利用し制限80%を超えていないかチェック
【管理方法②】サービスクォータのメトリクスに対しアラーム実装
【管理方法③】リクエスト履歴を個別管理
まとめ
2022年7月現在のAWS仕様では、全てのクォータを網羅できる管理方法は「③リクエスト履歴を個別管理」のみになるかと思います。
因みに、私が担当しているシステムでは「①Trusted Advisorを利用し制限80%を超えていないかチェック」を採用しています。
判断理由:過去に上限緩和を実施しており、そのリクエスト履歴が存在しない。実装が容易なため。
会社/システムによって状況、ルールや考え方は色々なので各メリデメをしっかり把握し管理方法をご検討いただければと思います。
個人的にはあまり手間をかけずに運用をしたいので、Trusted Advisorで全クォータが対象になることを願っています。
また、別の管理方法があれば教えていただけると非常に助かります。