問題タブ [amazon-elb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
logging - ELB セカンダリ ヘルスチェックをログに記録しないように nginx を構成する
Amazon Elastic Load Balancer (ELB) は定期的なヘルスチェックを実行します。
ロードバランサー用に構成したヘルスチェックに加えて、サービスによって 2 番目のヘルスチェックが実行され、インスタンスが登録解除されずに終了することによって引き起こされる潜在的な副作用から保護されます。このチェックを実行するために、ロード バランサーは、ヘルス チェックが使用するように構成されているポートと同じポートで TCP 接続を開き、ヘルス チェックの完了後に接続を閉じます。
nginx はこれらのイベントを 400 エラーでログに記録します。これは 1 分間に何度も発生します。
[07/Aug/2013:18:32:27 +0000] "-" 0.000 400 0 "-" "-" "-"
これらのイベントをログに記録しないようにnginxを構成するにはどうすればよいですか?
websocket - WebSocket と負荷分散がボトルネック?
WebSocket ドローンとして機能するシステムが多数あり、それらのドローンの前にロード バランサーがある場合。WebSocket リクエストが LB に入ると、LB は WebSocket ドローンを選択し、WebSocket が確立されます。(私は ELB で SSL 終端された AWS ELB tcp を使用しています)
質問: 作成された WebSocket は LB を通過しますか、それとも LB は WebSocket リクエストを WebSocket Drone に転送し、クライアントと WebSocket Drone の間に直接リンクが存在しますか?
WebSocket 接続が LB を経由すると、LB が大きなボトルネックになります。
LB を削除し、クライアントに WebSocket ドローンの直接 IP を渡すと、このボトルネックを回避できますが、このロジックを自分で作成する必要があります。
これがどのように機能するかについての私の考えは正しいですか?
amazon-web-services - Elastic Load Balancing と Auto-Scaling を使用した AWS EC2 のみによるスケーリング
私は、ネットワーク プログラミングを学び始めたばかりのスタートアップ開発者です。サーバーを展開する場所を選択する段階にあります。
パフォーマンスと使いやすさから Netty を使用しています。
だからここに私の質問があります。トラフィックが多いときに ELB と Auto-Scaling のみを使用することは可能ですか?
amazon-web-services - AWS ELB の背後でクライアント IP を取得する方法は?
Web サーバー (apache または nginx) を使用すると、x-forwarded-for
ヘッダーを見つけて、ELB の IP ではなくクライアント IP を見つけることができます。
IPTables
特定の IP アドレスをブロックできるように、 を使用して同じことを行うことはできますか?
これは Web サーバー レベルで実行できます。ただし、これは少し非効率的だと思います。IP テーブルなどでこれを達成できることを願っていますか?
ssl - AWSエラスティックロードバランサーでhttpsを自己署名証明書で動作させる際の問題
自己署名証明書を使用して、AWS Elastic Load Balancer で https を構成する際に問題が発生しています。セットアップが完了した後、https エンドポイントへの接続が機能しません。http接続はまだ問題ありません。
これが私がしたことです。
このコマンドを使用して自己署名証明書を生成します
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
次のコマンドを使用して、キーと証明書が機能していることを確認しました。
openssl rsa -in privateKey.key -check
openssl x509 -in certificate.crt -text -nooutaws 証明書の要件に準拠するために、証明書、キー、および証明書を .pem エンコード形式に変換します。
openssl rsa -in privateKey.key -text > private.pem
openssl x509 -inform PEM -in certificate.crt > public.pem
AWS マネジメント コンソール http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_UpdatingLoadBalancerSSL.htmlを使用して、エラスティック ロード バランサーに証明書をアップロードします。秘密鍵と公開証明書の値には、手順 3 で生成した private.pem と public.pem を使用しました。
EBL リスナー構成に入り、https リスナーを追加し、アップロードした証明書を使用しました。リスナーの構成は次のとおりです。
私の構成で何が間違っているのか考えてみませんか? ありがとう!!!
amazon-elb - Amazon ELB に登録されたばかりの EC2 インスタンスのステータスの背後にある「理由」を特定するにはどうすればよいですか?
EC2 インスタンスを Amazon ELB に登録するデプロイ スクリプト (具体的には、Ansible モジュール) に取り組んでいます。スクリプトは Boto ライブラリを使用します。
スクリプトの関連部分を次に示します。
(ところで、上記のコードは Ansible のec2_elb モジュールからのものです。)
そのため、インスタンスが最初に登録されたときは「OutOfService」です。ここのスクリプトは、インスタンスがヘルスチェックなどに合格した後、インスタンスが「サービス中」の状態になるのを「待機」します。
ここに問題があります。上記のプロセスは単純すぎます (これが、私が自分の目的に合わせてモジュールをカスタマイズしようとしている理由です)。私が遭遇した主な問題は、インスタンスが存在するアベイラビリティーゾーンにサービスを提供するようにロードバランサーが構成されていない場合、インスタンスがサービスを停止したままになることです。基本的に、上記のスクリプトはハングアップします。
私がやりたいこと (そしてそれが、この組み込みモジュールをカスタマイズしている理由です) は、ELB がインスタンスがヘルスチェックに合格するのを待っているだけなのか、それとも他の理由があるのか (たとえば、未登録のアベイラビリティ ゾーン) がサービス停止の原因となっています。
Boto ライブラリ (Amazon ELB API 経由) は、状態よりもわずかに詳細な情報を提供します。次のように、Boto ドキュメント(およびAmazon ELB API ドキュメント) で説明されている「reason」属性があります。
reason_code (str) – OutOfService インスタンスの原因に関する情報を提供します。具体的には、原因が Elastic Load Balancing にあるのか、それとも LoadBalancer の背後にあるインスタンスにあるのかを示します。
reason_code 属性に関するドキュメントが不足しているため、a) 返される可能性のある値がここにあることを期待できるかどうか、b) 私の質問に関連してそれらが実際に何を意味するかはわかりませんその上。
Amazon が管理コンソールでインスタンスがサービスを停止している詳細な理由を表示できることを考えると、私がやりたいことは実行可能だと思います。
では、インスタンスのステータスの背後にあるより詳細な理由をどこでどのように見つけることができますか?
oauth - Elastic Load Balancer SSL を使用した oAuth
ELB で AWS EC2 インスタンスを使用しています。ELB自体でSSL接続が有効になっていることは知っています。私の EC2 インスタンスは SSL をサポートしていません。
ここに私の問題があります。oAuth のような何らかの認証方法を実装する必要があります。
ELB でユーザーを認証する方法はありますか?
amazon-ec2 - 起動後に ELB ヘルスチェックが Web インスタンスをチェックしない
必要に応じて手動で電源を入れる ELB の背後に Web インスタンス (nginx) があります。wget をローカルで実行すると、Web アプリはすぐに起動し、成功した 200 応答を返します。
ただし、ELB がヘルスチェック リクエストをインスタンスに送信していないため、ウェブサイトは読み込まれません。これは、nginx のアクセス ログを表示することで確認できます。
私が使用している回避策は、ELB から Web インスタンスを削除して、再度追加することです。これにより、ヘルスチェックが再び有効になり、アクセス ログから確認できるようになります。
ヘルスチェックの設定を編集して、タイムアウトを長くし、異常なしきい値を 3 に上げましたが、違いはありませんでした。
現在、ヘルス チェックの構成は次のとおりです。 Ping ターゲット: HTTPS:443/login タイムアウト: 10 秒 間隔: 12 秒 異常: 2 正常: 2
リスナー: HTTPS 443 から HTTPS 443 への SSL 証明書
ELB と Web インスタンスは両方とも、http/https が 0.0.0.0/0 に開かれている同じパブリック VPC セキュリティ グループにあります。
Web インスタンスが開始されるとすぐに ELB ヘルスチェックが開始されない理由を理解するのを手伝ってくれる人はいますか? これは仕様によるものですか、それともチェックを自動的に開始する方法はありますか? ありがとうございました。
ニール
amazon-web-services - Load Balancer の背後にあるサーバーの Elastic IP アドレスを取得する方法
Amazon ロード バランサーの背後に 2 台のサーバーがあり、それらのエラスティック IP アドレスを見つけて SSH 接続できるようにする必要があります。(私は通常とは異なるコンピューターを使用しており、Amazon ハードウェア認証システムを別の国に置いてきたので、AWS コンソールにログインすることはできません)。
これら 2 つのアドレスを取得する方法はありますか?
mongodb - mongodb マスター マスター レプリカ セット
次のような状況があります。
ロードバランサーの背後にある 2 つの ec2 インスタンス。それらはすべて個別のデータベース (mongodb) を持っています。私が望むのは、これらのデータベースが互いに同期または複製することです。
私の知る限り、Mongodb は 3 つのソリューションを提供します。
スレーブ マスター レプリケーション: 両方のデータベースをマスターにする必要があるため、これは役に立ちません。
レプリカ セット: 1 つのプライマリ データベースといくつかのセカンダリ。プライマリが停止すると、セカンダリが機能し始めます。これは機能する可能性があります...プライマリが1つのサーバーにあり、セカンダリが別のサーバーにある場合。1 つのサーバーが応答を停止すると、db が停止し、セカンダリ db を持つ他のサーバーがプライマリになります。
シャーディング: 同じデータベースを両方のサーバーに分割します。両方のデータベースにほとんどのデータを保持するのと同じくらい高い冗長性が可能かどうかはわかりません。
どう思いますか?他の選択肢はありますか?
ありがとう!