【AWS・fargate】service connect でnginxからphp起動させる

aws

※プロモーションページが含まれる場合があります

やりたいこと

「service connect」を使ってecsのfargateで立ち上げたサービスA(nginxのコンテナ)とサービスB(nginx+php(laravel)のコンテナ)とで通信を行いたい

図にするとこんな感じ↓

結論の通信の流れ

初めはnginxのサービスとlaravelのサービスとで通信を試していたが思うよういなかったので最終的に

  • サービスA: nginx
  • サービスB: nginx + laravel

となった。

サービスAから通信が始まりサービスBのnginxに行き、サービスBのlaravelに行く。

service connectとは

こんなやつ

簡単に言うとサービス間通信が簡単にできるで!というやつだと理解してる。

最近でたあたらしいawsのサービスなので参考記事が3、4個ぐらいしかないのでめちゃくちゃ苦労した。現時点でまだ2か月もたってないぐらい。

実現方法

cloud mapの登録

API呼び出しでできた。

nginxのサービスインスタンスをつくる

nginxのcofファイルはこんな感じ↓下記の方で説明しているservice connectの設定時のDNSの所に書いたものが名前として通信で使える。使う場合はserver_nameに名前を書く。書かない場合はproxy_passのところに直接IPアドレスを入力すれば通信できる。IPアドレスはservice connectを設定したサービスタスクの中のetc/hostsの中に書いてある。←ecs execとかでコンテナの中に入れば確認することができる。ecs execの導入方法

下記画像のサービス作成画面のここにチェックを入れる

nginxの場合はクライアント側

名前空間を選択すると先ほどcloud mapで作成した項目が出てくる

laravelのサービスインスタンスをつくる

nginxと同じようにservice connectにチェックをいれて今度はクラン案ととサーバーを選択する

同じ名前空間を選択したらポートを選択

どこで受けたいかを選択する

↑で説明しているnginx(サービスA)の設定は下記を通るように設定する

コメント

タイトルとURLをコピーしました