3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ELB(AWS)】Railsアプリを常時SSL化したらアプリにアクセスできなくなった

Last updated at Posted at 2019-11-01

一度デプロイに成功したアプリケーションが常時SSL化をしたところ、pcからならアクセスできるけどスマホからだとアクセスできない、なんてことになりました。

ものすっごい初歩的なところで1日かけてしまったので、自分への戒めも含めて投稿しようかと思います。

前提

・EC2インスタンスランニング状態(ポート:HTTP 80を開き、ソースはロードバランサのセキュリティグループを指定)
・ロードバランサのターゲットグループのステータスはHealty(ポート:HTTP 80を設定)
・ロードバランサのDNS名にはAレコードが設定されている
・ロードバランサのリスナー:HTTPS 443 (SSL認証書も紐づいている)
・コンソールからec2-userにログイン可能
・本番環境内のproduction.logにはFatalやErrorの記述なし
・Capistranoの自動デプロイにエラーなし

しかしアプリにアクセスできたりできなかったりする!!

結論

ELBのセキュリティグループインバウンドでソースにマイIPを指定していた

つまり、自宅のWifiなら接続できるけど、スマホの通信やカフェのWifiじゃ条件が違うからアクセスできなかっただけのこと!

時間経過でだめになってるのかと思っていました…
なんて愚かなんでしょう…

概念図(これが超重要!)

一番の敗因は概念図を理解していなかったことだと思います。
自分の構築した設定が、どんな構造をしているのかわかっていなかった。

ちなみに今回の場合の概念図は下図です。

01-01-パターン1:ELB証明書→EC2.png

最終的にはこんな設定になりました

①ロードバランサーのリスナー設定

ロードバランサ リスナー.png

②ロードバランサーのインバウンド設定

ロードバランサーのインバウンド.png

③ターゲットグループの基本設定

ターゲットグループ基本設定.png

④ターゲットグループのEC2インスタンス設定

ターゲットグループ インスタンス設定.png

⑤EC2インスタンスのインバウンド設定

EC2インスタンス.png

⑥Route53のロードバランサー設定

Route53.png

成功パターン

上記の設定をしたものを概念図に書き起こすと、こうなります。
クライアントからEC2まで適切なポートと信号を設定してあげて通信をする、というイメージでしょうか。

成功.png

失敗パターン

今回の場合僕は、②の時にロードバランサーのインバウンド設定の時にソースとして自宅のIPアドレスを指定していたということです。
つまり概念図に書き起こすとこんな感じです。ちょっと見にくいですね、編集能力なくてごめんなさい・・・。

成功.png

なんと頑固なロードバランサーであろうか・・・。

この設定をしてしまっていたので、自宅Wifiを使った環境のものならばアプリケーションにアクセスできるけど、場所を移動してカフェから繋いだり、スマホからアクセスしようとすると繋がらなかった、ということみたいです。

まとめ

とにかく一度手を動かしてみるという信条で勉強していて、その方針は間違っていないんじゃないかなと思います。
ただ本を読んだだけで理解できるほど頭も良くないので・・・。

しかしこうして詰まった時に一度俯瞰してみたりとか、実装段階でちょっとずつでも概念を噛み砕いていく癖をつけないとなと思いました。

Qiitaに書いてあったから、ブログに書いてあったから、その結果動いたからこれでOK!というのは危険だなと感じました。
反省です・・

補足

ちなみにデプロイの際にはNginxを使っているのですが、Nginxのconfファイルの設定で、listen 80;にしています。

ここが違っているのであれば、概念図とそのポート番号とかはまた変わってくるかと思います。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?