タグ付けされた質問 弾力性のあるロードバランシング
コンテンツの言語: 日本語
並べ替え 最新
以下に記載されている質問と回答を閲覧したり、フィルタリングして並べ替えて結果を絞り込んだりできます。
お世話になります。
・マルチAZ構成でNLBを用いた場合にドメイン名と1:1で対応するような代表IPアドレスを用いることはできないのでしょうか?
NLBは固定IPを紐づけることができますが、これはサブネットごとのため、たとえば3つのAZをまたがるマルチAZ構成で冗長化している場合には、3つの固定IPアドレスを割り振らないといけない認識です。
NLBのドメイン名でCNAMEレコード登録するのであれば、この点は問題にならないのですが、CNAMEレコードは非常に制限が多いため、要件を満たさず使用できません。
AWS内で完結するシステムではないため、Route53のエイリアス機能も用いることはできません。
そこでAレコード登録でNLBにトラフィックを転送したい場合、上記の3つのIPアドレスをAレコード登録するような形となり、これはDNSラウンドロビンにはなっておりますがNLBのフローレベルのロードバランシングにはなっていない認識でおります。
Global Accelerator(GA)を用いてエッジ用の固定IPを作成し、エンドポイントとしてNLBを紐づけることで解決可能かと思っていたのですが、NLBとGAを併用すると、クライアントIPが保持されない(X-Forwarded-ForなどのHTTPヘッダに本来のwebクライアントのIPが表示されなくなる)といった問題があり、これもまた、要件的に採用できません。
同じ問題に困っている方がおられそうだと思っているのですが、
この件に関しまして、何かしら知見などお持ちの方おられましたら、ご教授いただけたりしませんでしょうか?
システム利用者 - ALB - ECS(EC2) - linux
簡易ですが、上記のような構成になっている環境にて
hping3 -S ALBのDNS名 -c 3 -p 80 --tcp-timestamp
を利用者側から実行した場合、
TCPタイムスタンプを取得できることによるセキュリティ脆弱性が確認されています。
Q1. その他検証可能な内容がございましたらご教授いただきたいです。
Q2. 上記TCPタイムスタンプついてAWS公式からの発信を何かご存知でしょうか?
Q1に関して
対応としてECS/EC2に対して(ホスト、コンテナ内共に)TCPタイムスタンプを無効とする設定
EC2 : net.ipv4.tcp_timestamps を 0 に設定
ECS : --sysctlオプションによる設定
を行いましたが、期待されるタイムスタンプが送られない結果は得られませんでした。
そのため当レスポンスはALBより発せられているものと認識しております。
Q2に関して
自分の調べる限りではパフォーマンスなどの利点から、脆弱性を許容しているケースが見受けられました。
そのためAWS公式として発信されているものがあれば内容理解させていただきたいです。
2点につきまして、ご教示いただけますと幸甚です。
Edited by: yamaguchi13 on Sep 22, 2020 9:58 PM
現在1台のEC2に対して1台のELBを使用しています。
ELBは2つのアベイラビリティゾーンに配置しており、EC2はその片方に配置されている状態です。
EC2が起動中でヘルスチェックもHealtyの場合はネットワークインターフェイスに当該ELBのものが2つあり、プライベートもそれぞれ1つずつ存在していることになっていますが、
EC2が停止したままの状態だと、ネットワークインターフェイスに当該ELBのものが1つしかなく、プライベートも1つしかありません。
これは1台のEC2でELBを利用しているのが原因なのでしょうか。
またそうである場合、EC2が停止中もALBのネットワークインターフェイスが2つある状態にすることは可能でしょうか。
ELBを使用すると、EIPが自動的に割り当てられると思うのですが、
その自動的に割り当てられたEIPがGoogle等の検索エンジンで引っかかってしまいます。
(現象)
ELBのDNS名 : 〇〇〇.ap-northeast-1.elb.amazonaws.com
実際のDNS : ×××.com ← CNAMEレコードに上記ELBのDNS名を設定
↓
×××.com を正引きでIPアドレスを取得
→ 255.255.255.253 と 255.255.255.254 が返ってくる
→ このIPアドレスがELBに自動的に割り当てられるIPアドレスという認識
↓
この状態で、×××.comに関連するキーワードで検索を実行したときに、
×××.com と 255.255.255.253、255.255.254 の両方がヒットしてしまう
上記現象に関してですが、何かしらELB側での設定に誤りがある可能性はありますでしょうか?
また同様の現象をご存知の方はいらっしゃらないでしょうか?
(初心者ですので、何か根本的に間違えているという可能性もあります。)
以上、よろしくお願い致します。
お世話になります。
表題の件について、ご協力を仰ぐことができればと思い、スレッドを立てさせていただきます。
現在、ドメインのSSL化のためにアプリケーションロードバランサーを使い、
該当インスタンスに接続しています。
しかし、ロードバランサーのヘルスチェックがいつまでもunhealthyのままになってしまっています。
しかしながら、該当ドメインをブラウザで接続すると、きちんと画面は表示され、
速度が極端に遅いなどの症状も見られません。
ロードバランサーを新しく立て直すなどの対策もしましたが、効果がありませんでした…。
根本的に、VPCやサブネット、サブドメインの設定か、何かが間違っている可能性が高いのですが、
どのようにすれば解決するか全く見立てがつきません…。
以下、まずはお出しする情報です。※「この項目を教えて」とご指摘いただければ、開示できる範囲でお出しします。
--------------------------------
■Route 53
ふたつのサブドメインを同じロードバランサーに向けて指定。
■ApplicationLoadBalancer
ap-northeast-1a
ap-northeast-1c
ふたつのAZに配置されたサブネットに向けています。
ただし、必要とするインスタンスはひとつしかないので、ap-northeast-1c側のサブネットの中は空っぽです。
リスナーはHTTP(80)・HTTPS(443)両方を開き、証明書は間違いなく合致するものを選択しております。
■TargetGroup
ap-northeast-1a内にあるインスタンスに向けており、ポートはHTTP(80)。
ヘルスチェックは /index.html に設定、ポートはトラフィックポート、
正常のしきい値は3、非正常のしきい値は2、タイムアウト20秒、間隔30秒、成功コード200.
■インスタンス
Apacheでふたつのサブドメインを受けるようにマルチドメイン化。
どちらのサブドメインのWebルート上にもindex.htmlは設置しており、ブラウザで表示確認済み。
片方のサブドメインはTomcatのディレクトリに転送しています。
--------------------------------
そもそもブラウザできちんと表示されているのに、どうしてヘルスチェックだけ通らないのか
状況がまったく分からず、混乱しております。
みなさまのお知恵をお借りできればと思います。よろしくお願いいたします。
【追記】
index.htmlに自分でブラウザよりアクセスして、Apacheのaccess.logを確認したところ、きちんと200を返しています。が、ロードバランサーのヘルスチェックのアクセスはログが出ていますが、404を返しています。
Edited by: imagamuk on Feb 5, 2019 9:37 PM
ELBのアクセスログを確認していたところ、通常2つのロードバランサーノードの IP アドレスのファイルが生成されていますが、
特定の1時間だけ1つのロードバランサーのノードのIPアドレスのファイルしか存在しませんでした。
バックエンドのインスタンスのログを確認したところ、ログが抜けているロードバランサーノードを経由したログが残っているため通信はできていたようです。
このようなケースはELBに障害が発生してログが欠損したと考えられるのでしょうか?
ターゲットグループを作成する際に、プロトコルとしてHTTPを選んだ際とTCPと選んだ際とでターゲットにできるインスタンスに差異があります。(※TCPを選択した場合の方がターゲットが少なくなります。)
同じサブネット、同じセキュリティグループを割り当てており、コンソール上での異なる点としては元となるイメージのみのはずなのですがターゲットとして選べないインスタンスが存在します。
ターゲットとして選ばれるためのルールなどあるのでしょうか?
ELB _ EC2 _ RDSの組み合わせでホームページの運用(1年半程)を行っていましたが、
急にアクセスできない状況が発生しました。
ELBのアクセスログやEC2上のnginxのアクセスログは、アクセスが出来なくなった日時から出力が止まっています。
アクセスログも出力されていないのでELBまでに接続する間に問題があるのかと思い、
tracertやpathpingを使うとawsのサーバーまでは届いているようですが、ELBまでたどり着く前に
タイムアウトとなってしまいます。
DNSの名前解決は問題がなく、
正常に運用していた頃からネットワークセキュリティグループの変更もありません。
発生している問題に対する調査方法や対応方法に関してご存知の方がいらっしゃれば、
ご教授していただきたく投稿しました。
【確認した内容】
・ELBとEC2の再紐つけ
・EC2、nginxの再起動
・tracertやpathpingでのトレース(要求がタイムアウトになりELBまでトレースできず)
よろしくお願いします。