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

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

ただいまの
回答率

90.33%

  • AWS(Amazon Web Services)

    2179questions

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

  • Amazon EC2

    133questions

    Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

  • Amazon Route 53

    12questions

    Amazon Route 53 はAmazonが提供する、 可用性と拡張性に優れた ドメインネームシステム(DNS)サービスです。

AWSで設定している特定のドメインにアクセスできない(ERR_EMPTY_RESPONSE)

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,720

CyberMergina

score 275

前提・実現したいこと

AWS上にテスト環境を追加するため、丸ごと複製していたところ、
Nodeサーバー用のドメインのみアクセスが出来ません・・・。
AWSの証明書を使用しているため、ELB上での証明書セットが必要です。

■ 構成(※1台のEC2インスタンスです)
○ httpサーバー
[Route53(a.xxx.jp|http)] -> [ELB(ポートを80にフォワード)] -> [EC2]
○ Nodeサーバー
[Route53(b.xxx.jp|tcp)] -> [ELB(ポートを12345にフォワード)] -> [EC2]

発生している問題・エラーメッセージ

ロードしようとしている「https://xxx.jp/socket.io/socket.io.js」が
取得できず、下記エラーが発生しております。

Failed to load resource: net::ERR_EMPTY_RESPONSE

設定

  • EC2-セキュリティグループ(本番をコピーしてる)
    tcp 12345 ローカルネットワーク内のみ

  • ELB
    tcp 80 -> 12345
    ssl 443 -> 12345
    ※インスタンスも設定済み

  • Route53
    b.xxx.jp A [対象のELB設定]

試したこと

  • ELBのヘルスチェック
    tcp:80 を対象にチェックし問題ないことを確認。

  • Route53のヘルスチェック
    tcp://b.xxx.jp:443/ を対象にチェックし問題ないことを確認。

  • Whois情報を確認する
    失敗しているドメインの方はIPアドレスがコロコロ変わる

Route53, ELB, セキュリティグループ, 証明書設定を何度か確認しましたが、
今のところ自力で上手くいかず。。。
エラー的にも名前解決出来てないのかなとか考えております。

ご助言頂けると幸いです、よろしくお願い致します。

 追記

  • 別の名前(c.xxx.jp)で設定しなおしてみたところ、アクセスできました・・・
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

失敗しているドメインの方はIPアドレスがコロコロ変わる

あと少しでしたね。
ELBはIP固定ではなく、IPアドレスがランダムで変わるポリシーになっています。

よってRoute53の設定は、Aレコードで設定するのではなく、【CNAME】として【ELBのDNS名】を入力してください。


【追記】

 AWSで必要なソリューション

  • VPC
  • EC2
  • ELB
  • Route53

 VPC設定

1.VPCを作成する
2.インターネットゲートウェイを作成する
3.サブネットを作成する
4.サブネットのルートテーブルにインターネットゲートウェイを追加する
5.ネットワークACLの確認をする

 EC2設定

1.インスタンスを生成する
2.セキュリティグループを作成する
2-1.セキュリティグループ名:ELB_SG

VPC:VPCを設定
インバウンドルール:HTTP TCP 80 カスタム 0.0.0.0/0、HTTPS TCP 443 カスタム 0.0.0.0/0

2-2.セキュリティグループ名:EC2_SG

VPC:VPCを設定
インバウンドルール:HTTP TCP 12345 カスタム「ELB_SGのID」

3.セキュリティグループをアタッチ

インスタンスにEC2_SGを割り当てる

 ELB設定

1.ELBを作成する

1-1.標準のロードバランサーにする

ロードバランサーを作成する場所:VPCを設定
内部向けロードバランサーの作成:チェックしない
リスナーの設定:HTTP 80 HTTP 12345、HTTPS 443 HTTP 12345
サブネットの選択:VPCで利用しているサブネットを設定

1-2.セキュリティグループの割り当て

セキュリティグループ(ELB_SG)を選択する

1-3.セキュリティ設定の構成

証明書を選択するorアップロードする

1-4.ヘルスチェックの設定

pingプロトコル:HTTP
pingポート:12345
pingパス:任意

1-5.EC2インスタンスの追加

 Route53設定

1.Hosted zonesを作成する

ゾーンの名前:xxx.jp
TypeをPublicHostedZoneにする

2.ELBのドメインをCNAMEで登録する

TypeをCNAMEにして、ValueにELBのドメイン名を入れる

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/30 17:37

    ご回答いただき、ありがとうございます!

    ご指摘いただいた通り、【CNAME】として【ELBのDNS名】を設定してみましたが、
    「b.xxx.jp’s server DNS address could not be found.」と言われてしまいました・・・

    また、Aレコードで別の名前(c.xxx.jp)を付けて設定してみたところ、アクセス可能できました。
    余計な設定をしてしまっているのかもしれません・・・・;

    キャンセル

  • 2017/03/30 18:14

    自分の端末のターミナルで
    > nslookup b.xxx.jp
    すると、どうなりますか?

    見つけられないといわれる場合は、Route53の設定が誤っています。
    IPアドレスが返ってきたのであれば場合は、ELBの設定が誤っています。

    後、接続方法を教えてください。
    作業端末→VPC→ELB→EC2
    であってますか?

    キャンセル

  • 2017/03/30 19:23

    Aレコード/CNAMEレコードどちらで設定しても(見え方は違いますが)IPアドレスが返ってきました。

    > 後、接続方法を教えてください。
    作業端末(Mac)からChromeブラウザで対象のWEBアプリにアクセスして確認してます。
    構成は DNS -> ELB -> EC2 になります。

    キャンセル

  • 2017/03/30 19:52

    なるほど。

    ということは、内部向けロードバランサーの作成をしたのではないでしょうか。

    もしそうなら、設定変更できませんからELBを一回削除して
    【内部向けロードバランサーの作成】のチェックをいれずに
    再作成してみてください。
    Route53は、CNAMEのままで良いでしょう。

    違うのであれば、VPC設定かセキュリティグループが誤っていると思います。

    キャンセル

  • 2017/03/30 20:24

    > ということは、内部向けロードバランサーの作成をしたのではないでしょうか。
    念のため、もう一度作り直してみましたが、つながらずです・・・
    「b.xxx.jp’s server DNS address could not be found.」

    先ほど見つけたのですが、EC2側のnginxにてヘッダーが壊れているとのエラーが出ておりました。
    作り直してからは、EC2に届かなくなりました・・・(設定を変えてしまったかもしれません)

    今は、ELB設定内に書いてあるDNS名にcurlコマンドでアクセスしてみたりしてますが、
    「Empty reply from server」と返ってきました。
    ELBを何度も作って⇔消して、としてるのが影響してしまってるのですかね・・・

    キャンセル

  • 2017/03/31 01:44 編集

    おっと、まずいですね。
    設定方法を書いておきましたので確認してみてください。

    一旦、正しい構成を目標にするのではなく、WEBサイトだけ表示することを目標にしてください。
    セキュリティグループも一旦ALLトラヒックで接続でき設定があっていることを確認した後に制限すればよいです。

    キャンセル

  • 2017/03/31 10:23

    ご丁寧に手順を記載頂きありがとうございます!

    昨夜同時のタイミングで急につながるようになりました・・・何が原因だったのかも不明です・・・。

    ただ、これまでRoute53の設定をAレコードで行っていたのでCNAMEに設定することや、
    telnetコマンドで疎通確認が出来ることは新しい知見でした!

    記載頂いた内容を、今後とも活用させて頂きます。
    長い時間ご協力いただきありがとうございました!!

    キャンセル

  • 2017/03/31 12:06

    設定があっているのであれば、おそらくRoute53のドメイン名とIPアドレスの遅延が発生していたんだと思います。

    開発時はRoute53の対象ドメインの設定値、TTL (Seconds)を60秒とか小さい値でやれば良かったのではないかと思います。
    接続確認がとれたらセキュリティ確保のために1日(86400秒)とかに変更すれば良いです。

    キャンセル

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

  • ただいまの回答率 90.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • AWS(Amazon Web Services)

    2179questions

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

  • Amazon EC2

    133questions

    Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

  • Amazon Route 53

    12questions

    Amazon Route 53 はAmazonが提供する、 可用性と拡張性に優れた ドメインネームシステム(DNS)サービスです。