php_modが非推奨になったのね

昔のバージョンのphp環境でphpバージョンを上げるという対応中。 apache + PHP8のインスタンスを構築してドキュメントルートまで到達を確認。 対応する人にドキュメントルートまで到達するからプロジェクトのファイルを置いてバージョンアップのエラーを確認してもらうため依頼しましたが HTTP 503 Service Unavailable のエラーが出ているとのこと。 HTMLファイルはアクセスできているからPHPの実行ができていないと思い調べると Apache HTTP サーバーで使用するために PHP に提供されている mod_php モジュールが非推奨になりました。 php-fpmをインストールして起動し、リクエストを流してphp-fmpでphpを実行するようにして解決。 しばらくPHPを触っていなかったのでモジュールが非推奨になったことに気づかずでした。

aws copilotを試しに使う⑦ 〜svc実行で起きたエラー

前回は、Laravel/nginxでcopilotを実行するためにローカルでの動作確認を行い、いざcopilotでサービスのデプロイをまずはphp8/Laravelのサービスだけ単体で行ったのですが、エラーが発生してやめたところでした。

今回はエラーを確認していきたいと思います。

まずcopilot svc deployを実行すると以下のような画面で失敗し続けて、おそらく10回失敗するとスタックがロールバックしてcleanupされる挙動になるかと思います。
前回にも載せましたがコマンドを実行したターミナルで表示されていたのは以下になります。


10回失敗した後に以下のエラー出力もありました。
Cloudformationにも同じエラーがでています。

CREATE_FAILED
Resource handler returned message: "Error occurred during operation 'ECS Deployment Circuit Breaker was triggered'." (RequestToken: Token, HandlerErrorCode: GeneralServiceException)


ROLLBACK_IN_PROGRESS
The following resource(s) failed to create: [Service]. Rollback requested by user.

ぱっと見何が原因かわからなかったんですが、何回かやっていて、おおよそコンテナが起動できないとか、サービスのmanifestでミスっていることで起きていた感じでした。

今回で言うと原因はちょっと初めからわかっていたのですが、、
私の環境はM1チップのmacbook airなので、Laravelをインストールするphpの公式イメージはarm64v8/phpのイメージを使っていたんですね、しかし実際にcopilotで起動する場合はintelのイメージじゃないとダメだ!って気付きました。

と言うことで

FROM amd64/php:latest

こちらに変更して再度実行しました。

※ここですがサービスのmanifestで platform: linux/arm64にすればarm64v8/phpでも動作します。後から気づきました。


結果はこちらになりました!
こんな感じでRunningになって、アクセスできるLBのAレコードが発行されて出力されているのでアクセスするとこんな感じでLaravelのデフォルトページにアクセスを確認できました。


ただ、今回の実行ではphp8/Laravelの8000番で待ち受けて、ロードバランサーが80番で受けたリクエストをphp8/Laravelの8000番に流して受け取ったレスポンスをブラウザに返しているだけですので、LB→nginx→php8/Laravelというサイドカーを利用した構造にしたいと思います。

そこは次回記事にしたいと思います。

コメント

このブログの人気の投稿

nginxで画像が表示されない。。

AWSのS3バケットをマウントするs3fsでマウントが外れた件

CakePHP3でHTTPSにする