質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

723閲覧

ALB経由でSSL接続を行いたい

hypotest15

総合スコア20

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2022/01/28 13:56

達成したいこと

ALBで、ドメインへのアクセスをSSL化したい。

使用ツール

Webサーバー:Nginx
アプリケーションサーバー:Unicorn
アプリケーション:Rails
ドメイン:AWS以外で取得

行った操作

ドメイン名で、アプリケーションにアクセスできる事を確認。
その後、ALBを作成し、下記を設定しました。

  • リストACMの登録

 イメージ説明
こちらは問題なく登録できていると考えます。

  • リストターゲットグループにインスタンスの追加

 イメージ説明

  • セキュリティーグループの設定

ターゲットグループの設定
イメージ説明
イメージ説明

EC2インスタンスの設定
イメージ説明
イメージ説明

考えたこと

ヘルスチェックが「unhealthy」で成功していないのは、
おそらくセキュリティーグループの設定がうまくいっていない事が原因だと考えました。

調べたこと

  • リスト参考にして作業を進めていた書籍を確認し、漏れや間違いがないか確認。

ゼロからわかるAmazon Web Services超入門 はじめてのクラウド (かんたんIT基礎講座)

  • リストAWS公式QAを確認したものの、いまいち理解ができませんした...。

また、送信先にセキュリティーグループを登録しようとすると、下記エラーが発生しました。
イメージ説明

アウトバウンドルール は、どちらも全許可状態、
ALBのインバウンドの設定は、タイプHTTPSにしているので、
通ると考えたました。

セキュリティーグループの設定について、何がどうなっているのか
うまく理解ができないため、ご教授いただけないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2022/01/28 15:44 編集

まず、EC2インスタンスにHTTPで接続することはできますか? あと前半のセキュリティグループはターゲットグループではなくてALBに設定したものですよね? > 送信先にセキュリティーグループを登録しようとする ここは何をしたのかよくわかりません…。 まず、リクエストに失敗している原因を知るためにはどのようにヘルスチェックをしているかを確認する必要があるので、ターゲットグループに設定されているヘルスチェックの設定を貼ってください。 パッと見、セキュリティグループが原因で弾かれている可能性は低いです。(どちらかというとEC2のほうは開けすぎですが…) ALBのターゲットグループのポートが80になっているので、ALBからEC2には80番ポートの通信が送られますが、EC2側のセキュリティグループは80番ポートが全開放になっているので、セキュリティグループでは弾かれていません。 全開放にしているので他のルールを追加しても意味がない状態ですね。 本来はALB(前述の通りターゲットグループではないです)のセキュリティグループのみを設定するのがいいですが、その前にまず普通にEC2インスタンスにHTTPで接続できるか確認してみてください。
hypotest15

2022/01/29 11:38 編集

ご回答ありがとうございます! Unhealthyのエラーについは、ご記載いただいたヘルスチェックの設定を一度調べてみます。 また、無事接続できたため、セキュリティーグループの設定も変更し、解放具合を改善します。 この度は、お手数をおかけ致しました。
guest

回答2

0

自己解決

Nginxの設定ファイルのサーバーネームの書き換え忘れが原因でした。
サーバーネームを、Elastic IPからドメインに修正することで、
SSL接続が可能となりました。

参考にしたQiita記事:【画像付きで丁寧に解説】AWS(EC2)にRailsアプリをイチから上げる方法【その6〜http→httpsへSSL化編〜】

具体的的には、/etc/nginx/conf.d/rails.confファイルの下記部分です。

〜略〜 server { listen 80; server_name 【ここをドメイン名に修正】 〜略〜

Nginxの設定を書き換えていなかったのに、ドメインでアクセスできていた件については、
Route53でAレーコードを登録していたからではないかと思います。
本来は、configに記載されていないURLではアクセスできませんが、
このElastic IPリクエストは、このドメインに対応する、という紐付けができていたため、
ドメインでアクセスしても変換がなされNginxが認識できていたのではないかと考えます。

Targetグループのヘルスチェックは、Unhealthyのままですが、
SSL接続は完了したため、
こちらの質問については解決とさせていただきます。

ご回答くださったmike2mike4様、yu_1985様、閲覧くださった皆様、ありがとうございました。

投稿2022/01/29 11:32

編集2022/01/29 11:41
hypotest15

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2022/01/29 12:32

該当の記事は微妙な記載が多かったのでコメントにガッツリと自分が補足を書いた記事です。 server_nameに指定をすると、そこに指定したホストやIPがホストヘッダーに入っているリクエストのみがそこの設定に従ってnginxに処理されます。 そのため、IPやドメインだけ設定しているとALBからのヘルスチェックのリクエストが想定通り処理されないんじゃないでしょうか。 個人的にはALB配下に置くならserver_nameは無理に指定せずともいいのでは、と思います。想定外のホストからの処理を避けたければALBのリスナールールで同様の設定ができるのでそちらにやらせればよいかと。 あと、Unhealthyになったインスタンスは一度ターゲットグループから外して、再度登録しないとHealthyにはなりません。
guest

0

https://caretllc.biz/2021/03/24/post-1348/
index.htmlと書いてるけど、ターゲットグループ側でファイル指定するといい。

投稿2022/01/28 14:48

mike2mike4

総合スコア891

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hypotest15

2022/01/29 11:36

ご回答ありがとうございます。 こちら自己解決致しました。 この度は、お手数をおかけ致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問