発生事象
Amplify ホスティングのアプリ数の上限は 25 です。
以下のようにサービスクォータからも確認できます。
まだアプリ数は 10 個なのに以下のようにデプロイに失敗しました。
原因がまったくわかりません。
re:Post で調べたが結局わからなかった
同じような状況に直面しているユーザーは複数いるようです。それに対する回答は「アカウント開始したばかりは上限が 25 よりも少ない」というものでした。しかし私の最も古いアプリは最終更新日が 3 年前であり、開始したばかりとは言えないと思います。したがって結局原因はわかりません。
もう一つの原因は、アプリ数は 25 に達していないがほかのクォータに引っかかっている可能性があると思います。何かわかったらこの記事に追記します。
AWS Amplify アプリの標準クォータは確かにリージョンあたり 25 ですが、新しいアカウントではクォータが削減されることが多く、使用状況に基づいて時間の経過とともに自動的に増加します。
理由としては、アカウントが新規であるか、侵害されたとみなされて「ソフトブロック」されている可能性があります。
代替案
CloudFront と S3 を使ってデプロイすることにしました。Amplify ホスティングは裏側では CloudFront を使っているようなので、Amplify ホスティングが構築してくれていた部分を手動でやるのはどうも気が進みませんでした。しかも CI/CD も組まないといけない。Amplify ホスティングは gitHub のリポジトリを指定するだけでプッシュを検知して自動デプロイをしてくれていました。こんなにも不便なのかと思い知らされました。
四苦八苦しながらなんとかデプロイしました。Amplify ホスティングなら数分のところを数時間かかりました。以下参考記事です。
手順をざっくりまとめると以下の通りです。
1.ローカルでビルドする
2.ビルド出力ファイルを S3 にアップロードする
3.CloudFront ディストリビューションを作成する
4.バケットポリシーを編集する
5.CloudFront Functions を作成する
6.カスタムドメインを設定する
カスタムドメインの設定方法は以前記事を書いたのでこちらを参考にしました。
Amplify の Next.js アプリのビルドログを見るともっと簡単にやっているようなのですが、詳しいことはわかりません。
とりあえずデプロイできてよかったです。