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を試しに使う⑦ 〜サイドカーパターンでサービスを実行する

前回で、copilot svc deployを実行したときにサービスの起動で失敗してエラーになっていた点を解消しました。
解消したので今回はサイドカーを設定して、ロードバランサーからnginxへ流してphp8-Laravelへ流して、結果レスポンスを表示する(Laravelデフォルト画面)をやっていきたいと思います。

まずサイドカーでnginxを利用してメインコンテナに流すように設定します。
サービスのmanifestに以下を記載しました。
nginxと言うコンテナ名で、80番で待ち受け、指定イメージ(あらかじめメインコンテナに流すようにconfを配置してコンテナイメージをビルドとコミット・プッシュしたもの)でサイドカーを利用すると言う記載です。variablesは環境変数で今回は利用していないので設定しなくていいのですが今後の私の利用用途で使うことがあるので設定しています。

sidecars:
  nginx:
    port: 80
    image: *********.dkr.ecr.ap-northeast-1.amazonaws.com/my-nginx:latest
    variables:
      NGINX_PORT: 80

imageではなくDockerfileを使いたいところでもあるのですがawsのドキュメントによると今後アップデートしていく予定はあるみたいですね。
それともう一つサービスのmanifestに設定するのが

http.target_container

前回メインのphp8/Larabelの8000番で待ち受けしているコンテナがロードバランサーからのリクエストを受け付けていましたが、このメインのコンテナの代わりにサイドカーで立ち上げたコンテナがロードバランサーからのリクエストを受け付けるようにするための記述になります。

http:
  target_container: nginx

私の場合ですとこんな感じで記載してあります。

すでにdeployしていますのでmanifestの変更は
copilot svc deploy --name laravel-server --env test
でアップデートされます。

デプロイを実行すると以下になります。



アクセスの確認とヘッダー情報にnginxの情報を確認しました。
また、cloudwatchのログインサイトでロググループを選択して確認するとアクセスログも確認できます。

ここまでで目的の構成は実現しました。
次回以降はより詳細に設定周りを深掘りしていきたいと思います。

コメント

このブログの人気の投稿

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

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

CakePHP3でHTTPSにする