ALB配下の複数台サーバでphpMyAdminを動かす(スティッキーセッション)
はじめに
MySQL系のデータベース(MariaDBとかAuroraとか)を使うことが多いので、phpMyAdminをよく使います。
ALB配下の複数サーバでphpMyAdminを動かしたところ、うまく解決できなかったのでALB側のスティッキーセッションで逃げました。その記録です。
ALB配下の複数サーバでphpMyAdminを動かしたところ、うまく解決できなかったのでALB側のスティッキーセッションで逃げました。その記録です。
まずはじめに、公式サイトから複数台のサーバにwgetして公開ディレクトリ配下に設置したところ、そもそもログインができない状態になりました。そこでcookie関連のなにかがダメなんだろうとおもって、Basic認証でログインできるように、設定ファイル(config.inc.php)を変更しました。
config.inc.php
config.inc.php
/* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; ↓ /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'http';
こうすることで、phpMyAdminにアクセスするとBasic認証が表示されるようになり、ログインができるようになりました。
が、データ更新時に別のエラーが表示されて更新できませんでした。
エラーメッセージ
が、データ更新時に別のエラーが表示されて更新できませんでした。
エラーメッセージ
エラー:トークンが一致しません
そりゃそうだ。ということで、ここでアプリ側の対応はあきらめて、AWS側で対応することにしました。
AWSコンソールでターゲットグループ→属性の編集→維持設定を有効に変更
AWSコンソールでターゲットグループ→属性の編集→維持設定を有効に変更
これで、同一環境からのアクセスは常に同一サーバに振り分けられるようになり、データの参照・更新ができるようになりました。
ただ、ウェブアプリも片側に振り分けられちゃうからちょっと嫌だな・・・
ただ、ウェブアプリも片側に振り分けられちゃうからちょっと嫌だな・・・
kaneko tomo 2019年3月5日
関連記事
AWS Lambdaのトリガーが作成できない(Configuration is ambiguously defined~)
AWS LambdaでS3のPUTイベントをトリガーにして、ある関数を呼び出して…
← 前の投稿
初(?)のインターン生です次の投稿 →
自分専用Googleスプレッドシート