前回で、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のログインサイトでロググループを選択して確認するとアクセスログも確認できます。
ここまでで目的の構成は実現しました。
次回以降はより詳細に設定周りを深掘りしていきたいと思います。
コメント
コメントを投稿