はじめに
かなり特殊な状況での事象になりますが、
RDS Proxy 作成時にステータスが「リソースの制限が不足」と表示され作成に失敗しました。
結論から先に言うと、このときは対象のサブネット内の割り当て可能なIPアドレスが枯渇したのが要因でした。
この状況はかなり稀だとは思いますが、エラーメッセージが分かりにくくてハマってしまったので記事に残しておこうと思います。
もし同じような事象に遭遇した方のお役に立てれば幸いです。
再現
前提
- RDS クラスターは作成済みである
- VPC も作成済みである
1. サブネットを用意
アベイラビリティゾーン(AZ) の a, c にそれぞれ意図的に CIDR ブロックを狭く設定したサブネットを作成し、割り当て可能な IP アドレスを枯渇させます。
2. RDS Proxy を作成
作成操作をするとステータスが作成中になるのでしばらく待ちます
3. 作成失敗
「リソースの制限が不十分」というエラーが出て失敗しました。
調査方法と要因
最初は「リソースの制限が不十分」という言葉から、クォーター関連の何かに引っかかっている?とか思い、その辺を見てみましたが問題なさそうで、ググっても有用な情報にはたどり着けず少し時間を溶かしてしまいましたが、改めて公式ドキュメントを見たところドンピシャな内容ではなかったのですが、ニュアンスが似ているものがありました。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Events.Messages.html#USER_Events.Messages.rds-proxy
RDS-EVENT-0243
サブネット name に十分な IP アドレスがないため、RDS はプロキシの容量をプロビジョニングできませんでした。この問題を解決するには、RDS プロキシのドキュメントで推奨されているように、サブネットの未使用の IP アドレスが最小限であることを確認してください。
この内容の通りに、サブネットの IP アドレスに余裕を持たせて再度トライしたところ問題なく作成が完了しました。
CloudTrail でも確認出来た
このエラーの内容は実は CloudTrail でも確認出来ました。
エラーの内容で判断出来なかったときに、はじめから CloudTrail を見ていればよかったです。。
CloudTrail のイベントのうち、RDS Proxy を作成したと思われるタイムスタンプ周辺の関連しそうイベントを1つ1つ見ていくと errorMessage
にたどり着きしました。
CreateVpcEndpoint
にそれはありました。 RDS Proxy 作成時に関連して作成されるリソースの VPC エンドポイント作成イベントですね。
ちゃんと「サブネット内に割り当て可能なIPアドレスが不足している」旨記載されていますね。
まとめ
今回のまとめとしては、
- RDS Proxy 作成時に「リソースの制限が不十分」と出て失敗する要因のひとつとして、サブネット内の空きIPアドレス枯渇も考えられる
- 基本に立ち返り公式ドキュメントを確認しよう
- エラーメッセージが分かりづらいときは CloudTrail も見てみよう
となります。