0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS無料枠終了でアカウント停止後、 Elastic Beanstalk(API)だけすぐに復旧しなかった原因(Unable to assume role)

Last updated at Posted at 2026-01-18

結論

AWS無料利用枠終了後にアカウントが一時停止し、有料プランにアップグレードしたところ、

  • CloudFront + S3 のフロントエンドは即時復旧
  • しかし Elastic Beanstalk(以下 EB)のバックエンド API は正常に動いていなかった
  • EBで Unable to assume roleの警告が出ており、アプリケーションサーバー再起動で完全復旧した

結論として、「有料プランにしアカウント復帰=全部すぐに復旧」ではなかった、というのが今回の学びです。


何が起きたか(時系列)

1. AWS無料利用枠終了 → アカウント停止

前日まで正常稼働していた、EB、S3、Cloudfrontに構築したWEBシステムに突如繋がらなくなりました。
繋がらなくなり、AWSコンソールを確認しようとしたところ、パスワード入力後エラーになり、無料利用枠が終了し、AWS アカウントが一時停止状態という案内画面が表示されました。
以下メールが届いており、有料プランアップグレードを促されました。(※無料枠開始後にもらえる100USDクレジットを使い果たしたようです)

image.png

2. 有料プランにアップグレード

メール内のリンクから有料プランへアップグレード。

ここで「これで全部戻るだろう」と思っていました。


3. フロントエンドは復旧した

まず確認したのはフロント側。

  • CloudFront 経由で画面は表示できる
  • S3 配信の静的ファイルも問題なし

この時点で一瞬こう思いました。

「あ、もう復旧してるのかな?」


4. しかし画面のデータ一覧が空

API 経由で取得しているはずのデータ一覧が

  • 画面自体は表示される
  • でもバックエンドからデータが返ってきていない

ここで違和感を覚えました。


5. Elastic Beanstalk を確認

EB のイベントログを確認すると、以下の Warning が出ていました。

Environment health has transitioned from Ok to Warning.
Unable to assume role 
"arn:aws:iam::XXXXXXXXXXXX:role/aws-elasticbeanstalk-service-role".
Verify that the role exists and is configured correctly.

Health は Warning 状態。
この時の正直な思考はこれです。

「有料プランに戻したのに、まだ IAM ロール系が壊れてる?」


6. 判断がつかなかったポイント

ここが一番ハマった点です。

  • アカウントは復旧している
  • フロントは見れる
  • でも EB は Warning
  • API は動いていないように見える

この状態だと、

「実はもう直ってるけど、表示だけ Warning なのか?」
「それとも本当に壊れてるのか?」

判断がつきませんでした。


7. アプリケーションサーバー再起動

最終的に EB 環境の アプリケーションサーバーを再起動

すると、

  • role assume Warning が消える
  • Health が Ok に戻る
  • API 疎通を確認
  • 画面のデータ一覧が正常表示

ここで 完全復旧を確認 できました。


なぜフロントだけ先に復旧したのか(考察)

これは断定ではなく、今回の状況からの推測です。

  • CloudFront / S3
    • 静的配信
    • IAM サービスロール依存が少ない
  • Elastic Beanstalk
    • Health Check
    • 内部 AWS API
    • aws-elasticbeanstalk-service-role

AWS アカウント停止 → 復旧直後の状態では、

  • フロントは問題なく配信可能
  • しかし EB 側は IAM role assume 周りが不安定

その結果、

フロントは見れるが、バックエンド API は正常に動いていない

という「部分復旧」状態になった可能性が高いと考えています。


role assume Warning は「表示だけ」ではなかった

今回のポイントはここです。

role assume の Warning は、

  • Health 表示だけの問題
  • 無視してもいい警告

と思いがちですが、

今回は実際に API が正常に動作していませんでした。

  • Warning が出ている
  • かつ API のレスポンスがおかしい

この場合は、実害あり と考えた方が良さそうです。


なぜ再起動で直ったのか(推測)

これも推測になりますが、

  • 有料プラン復旧後
  • IAM assume role が可能な状態に戻る
  • ただし既存プロセスは不整合を抱えたまま
  • 再起動で
    • 正常な role を再取得
    • EB Health が回復

という流れだった可能性があります。

設定ミスというより、
AWS 側の状態変化に EB が追従しきれていなかった 印象です。

ちなみに別のEB環境も同様にUnable to assume roleの警告が出ていましたが、アカウント復帰から数時間経過後、フロントからAPI確認すると、正常につながりました。(EB HealthもOKとなっていました。)


学び・再発防止

今回の件での教訓です。

  • AWSアカウント停止後、S3,CloudFrontは即時復旧するが Elastic Beanstalkは復旧に時間がかかる
  • 無料利用枠終了前に
    • 有料プランアップグレード
    • AWS Budgetsでアラート設定
      をしておくと良い。

まとめ

AWS無料利用枠終了後の復旧では、

  • フロントとバックエンドが 同時に復旧するとは限らない
  • Elastic Beanstalk の role assume Warning は
    API 不通という実害を伴うことがある

同じ状況で迷っている人の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?