質問: ### 前提・実現したいこと 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)で設定しなおしてみたところ、アクセスできました・・・
回答: > > 失敗しているドメインの方は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のドメイン名を入れる > > >