AmazonAPIの停止とLaravelでいろいろ丸見えだった件

AmazonAPIが使用できなくなってしまいました

数日前からAmazonAPIが使用できなくなりました
APIを実行すると

<BrowseNodeLookupErrorResponse xmlns="http://ecs.amazonaws.com/doc/2013-08-01/">
<Error>
<Code>RequestThrottled</Code>
<Message>
AWS Access Key ID: . You are submitting requests too quickly. Please retry your requests at a slower rate.
</Message>
</Error>
<RequestID>82ac5747-b50b-41b3-b273-8f1a1b934e73</RequestID>
</BrowseNodeLookupErrorResponse>

数日前までは普通に使用できていたので、何かしらDos攻撃的な物を受けているのか、はたまた以前紹介した「AmazonAPIの規約変更」の影響を受けているのか・・・
問題切り分けのため、一度「KindleUnlimitedSearch」は閉鎖し、redisなどのキャッシュシステムで負荷軽減を行った後再開出来ればと・・・ 現在はVuesaxへのUI切り替えを粛々進めていたのですが、まずはキャッシュシステムの導入が先決ですね・・・

Laravelでいろいろ丸見えだった件

KindleUnlimitedSearchは表はVue.js、裏(サーバーサイド)はLaravelの環境で構築しています
Laravelでは実行時エラーが発生すると、以下のようなスタックとレースが表示されるので、エラー原因が調査しやすくて助かります

が、当然、本番でこれらの情報が見れるのは好ましくないので、本番では表示されないように設定して運営するのが当然なのですが
今の今まで、上記のスタックトレースが本番でも丸見えの状態で運営していました!! 一応システム関連の仕事をしているのに、こんなミスをしてしまってお恥ずかしい限り・・・

隠すぞ!

Laravelのスタックトレース表示は以下の2箇所に設定が存在するようです(Laravel5.7の情報)

  • app/config/app.php の ‘debug’ => env(‘APP_DEBUG’, false), の設定
  • .envファイルの[APP_DEBUG=true]の設定

自分の場合、.envファイルでAPP_DEBUG=trueのまま動かしてしまい、スタックトレースが表示されていました

スタックトレースを非表示にする方法は以下の通りです

1. .envでAPP_DEBUG=falseに設定
2. プロジェクトルートで「php artisan config:clear」を実行

これで、エラーが発生してもデフォルトの500ページが表示されるようになります

以上!

これでひとまず、本番でのスタックトレース表示は回避できました この記事を読んで、少しでも心当たりのある方はコンフィグファイルの見直しをおすすめします!