##概要
メルカリのクローンサイトを作成する際にインフラ、デプロイ関係の担当をした者が沼にハマった部分を共有し、同じような状態から抜け出すための一助になればと思ったことが投稿するきっかけになります。
今回は、デプロイ完了後にIPアドレスでブラウザ(Chrome)からログインしようとしても「応答時間が長すぎます」エラーが頻発した際に、原因となった箇所について述べていきます。
AWSなどインフラ関係において、同じような状況で困っている方の一助に少しでもなれたら幸いです。
環境
- Rails v5.2.3
- Ruby v2.5.1
- Unicorn
- capistrano
- nginx
- mysql
- AWS, EC2(本番環境)
①まずはじめにセキュリティグループとは
今回、メルカリのクローンサイトを作成する際に用いたインフラ環境はAWS、EC2です。
その設定の中で、セキュリティーグループについて何点か調べて理解した箇所があるので、少しまとめてみようと思います。
- ファイアーウォール機能として挙動する。
- インスタンスごとに1つ以上のセキュリティーグループを指定できる。
- インスタンスに関連したトラフィックを判断する機能を持つ。
* ファイアーウォールとは...
ファイアウォールとは防火壁のことだが、コンピュータネットワーク関連では、ネットワークの結節点となる場所に設けて、コンピュータセキュリティ上の理由、あるいはその他の理由により「通過させてはいけない通信」を阻止するシステムを指す。通過させてはいけない通信を火にたとえている。ルーターにその機能を実装したものは、そのルーターを指して言うこともあるし、そういったアプライアンス商品などもある。
上記でつらつらと述べましたが、簡単にまとめるならば
不正なアクセス、悪意ある攻撃を防ぐ機能です。
また、トラフィック(転送されるデータ量)も管理しているみたいです。
②config.force_ssl = true を有効にしていたのが原因
私が直面した「応答時間が長すぎます」エラーの理由としては、テーマにある通りconfig.force_ssl = true のコメントアウトを外していたことが原因でした。
では、まずconfig.force_ssl = true とはどういう機能を表すのでしょうか...
それは一言、全てのIPアドレスへのアクセスをhttpsに流す設定です。
はい。この設定の影響によって、上記で述べたセキュリティーグループをhttpでポート範囲設定しているのに常にhttpsとしてアクセスを流すために長々とアドレスには入れず、「応答時間が長すぎます」エラーが発生していたのです。
セキュリティーグループをhttpsで設定していればまだしも、httpだとこの機能を使っていれば入れるわけがなかったですね...
終わりに
今回の箇所で沼にハマって得た教訓としては、理解していない、なんとなく使っているコマンドほど要注意です。
当たり前ですが、なんとなく使って上手くいった経験がある人ほど要注意かなと...(自分もそうでした。)
ではまた沼った経験をまとめたいと思います。
長々と読んで頂きありがとうございました。