2022/09/06 追記 Next.js v12.2以降では本記事の対処が不要になりました。詳細はコメントをご覧ください。 https://zenn.dev/link/comments/83306d9bb57eb9 Client -> AWS ALB -> Node.js 構成をとった場合、稀にALBが502を返す場合があります。 これは、Node.jsのkeepAliveTimeoutのデフォルト値が5秒[1]であり、ALBのConnection idle timeoutのデフォルト値が60秒[2]であることによって引き起こされます。 この問題の詳細はこちらの記事が詳しいです。 問題点 Next.jsでも上記の問題が発生するのですが、厄介なのはkeepAliveTimeout値を変更する方法が提供されていないことです。 例外的に、Custom Serverを利用すればkeepAlive
こんにちは、テクニカルサポートの Shimizu です。 弊社ヘルプデスクへ「Application Load Balancer(ALB)の 502 エラーの原因調査が難しい」というお問い合わせをよくいただきます。 実際サポート側においても「原因箇所が ALB 側か、またはバックエンド EC2 サーバー側か」の切り分けは確認するべき点が多く、毎回時間がかかります。 そこで「もっと簡単に原因を切り分ける方法がないか」と考えた結果、Yes/No 形式のトラブルシューティングを作ろうと思いつきました。 それでは始めてみましょう! 質問 [質問1] 該当時刻の ALB のメトリクスを確認しましょう。「HTTP 5XXs」は出ていますか? YES(出ている) バックエンドサーバーの内部から 500 系のエラーレスポンスが返されており、バックエンド側の問題を明確に示しています。 → [結果A] へ N
渡辺です。 最近、ビックコミックスの「アオアシ」ってサッカー漫画がお気に入りです。 同じサッカー漫画のジャイアントキリングと共に、チームビルディングやコーチングのヒントなども学べます。 さて、今回はELBをフロントエンドに配置したApacheの推奨設定です。 過去エントリーあるかなと思いましたが、なかったので書いておきましょう。 What are the optimal settings for using Apache as a back-end server for ELB?で説明されています。 KeepAliveTimeoutをELBアイドルタイムアウトの値以上にする 結論としては、 KeepAliveTimeoutを60秒以上 に設定します。 60秒というのはELBのアイドルタイムアウトのデフォルト値です。 AWSのドキュメントでは120秒を推奨値としています。 その他の推奨値を反
TL;DR ELBはクライアントからのリクエスト時に、クライアントとバックエンドとのコネクション2つを維持する 両方の接続について、アイドルタイムアウト値はデフォルトで60秒となっている バランシング先のNginxなどのKeepAlive Timeout値は、ELBのアイドルタイムアウト値より大きくなければならない もしELBのアイドルタイムアウト値より小さい場合、504 Gateway Timeoutエラーが返ってくる この504エラーはALBのログには書き込まれないので、きちんとALBのステータスコードを監視するべき ELBのコネクション 図にするまでもないが、ELBにおけるTCPコネクションは以下のようになっている。 KeepAliveとは まずはKeepAliveについて振り返っておく。KeepAliveとはクライアントとサーバー間での接続が有効であるかを確認するために一定周期で行
連載目次 TCP/IPの仕組みについて、“目で見て触って”学ぶ本連載。第5回では、「認証」の仕組みを見ていきます。プロトコルビュワー(※)での実行結果とブラウザの動作を見比べながら、HTTPへの理解をさらに深めましょう。 ※「プロトコルビュワー」について 本連載では、筆者が作成した「プロトコルビュワー」というツールを使い、実際のリクエスト/レスポンスの内容を見ながら学習を進めていきます。プロトコルビュワーのインストール方法や使い方については、前回を参考にしてください(記事冒頭やや下「『プロトコルビュワー』差し替えのお願い」を参照) 認証とは?――実際のアクセスの流れ 認証とは、「Webへのアクセスに際してユーザー名とパスワードを求め、それらがあらかじめ登録してあるものと合致したときだけ、リクエストされた内容を送り返す仕組み」のことです。認証を利用することで、ユーザー名とパスワードを知ってい
Keep-Aliveの動作 HTTPの基本的な動作では、「リクエストのたびに接続を確立し、1つのレスポンスを返したら接続を切る」ということを繰り返します。 実際のWebページを見ると、そこには文字以外に複数の要素(写真、画像、音楽など)が含まれており、1つの画面を表示するにはこれら全てをサーバから取得する必要があります。そのため、Webページを見るときには通常、HTTPのリクエストを何度か繰り返して、必要な全ての情報をサーバから取得します。 しかしながら、HTTPのリクエストとレスポンスを1つやりとりするたびに、いちいち接続を準備して切断することを繰り返すのは、明らかな無駄です。 そこで、現在最も多く使われているバージョンのHTTP(HTTP 1.1)では、この無駄を省く仕組みが用意されています。具体的には、特に指定がない限り、レスポンスを返した後に接続を維持し、次のリクエストを送るときは
今回は前回に続いて、プロトコルについてです。前回はSMTPでしたが、今回はおそらく最もメジャーなプロトコルであるといっても過言ではないHTTPについてです。 「デカいRFC」の読み方 まずHTTPにはバージョンとして1.0と1.1があります。実質、今はほぼ100%のサイトが1.1だと思って良いでしょう。 HTT1.1はRFC2068で提唱され、RFC2616にObsoleteされています。ですのでRFC2616(と、RFC2616をUpdateしているRFC2817とRFC5785)を読めば、HTTP1.1のことが把握できます。とはいってもでかいRFCなので、読むのはちょっと大変かもしれません。ただ、これくらいポピュラーなRFCになると日本語訳もたくさんあるので、原文と一緒に日本語訳も読むと、理解が速いかもしれません(訳だけ読むのはあまりオススメできません)。 また、RFCを読むとき(
パブリッククラウドがテレコムキャリアの5G基盤へ進出。AWS、Azure、Google Cloudが5Gのインフラ向けサービスを相次いで発表 スペイン バルセロナで2月27日、モバイル通信およびテレコム業界における最大級の国際的イベント「MWC Barcelona 2023」が開幕しました。 これに合わせてAWS、Microsoft Azure、Google Cloudが相次いでテレコム業界向けのクラウドサービスを発表しています。これまでテレコム企業が自前で構築することが当たり前だった通信網とコンピューティング基盤が、パブリッククラウドのサービスとして提供されようとしているのです。 AWS、Azure、Google Cloudが相次いで発表 AWSは2月21日、「AWS Telco Network Builder」を発表しました。 AWS Telco Network Builderは、テレ
マイクロソフト、AzureやMicrosoft 365などに影響した先週の大規模障害の原因報告。WAN内の全ルータが再計算状態に突入し、パケット転送が不可に マイクロソフトは、日本時間で先週の1月25日午後4時頃から最大で約5時間半に渡り、Microsoft AzureやMicrosoft 365、Microsoft Teamsなど幅広いサービスがほぼ全世界で利用できなくなっていた大規模障害について、予備的な報告書を公開しました。 WAN内の全てのルーターに誤ったメッセージが送信 報告書の原因について説明している部分を引用します。 まず原因について。同社のワイドエリアネットワークに対して行われた設定変更が全体に影響したと説明しています。 We determined that a change made to the Microsoft Wide Area Network (WAN) imp
AWSのセキュリティグループ、ネットワークACLのステートレスとステートフルを噛み砕いて具体的に行ってみる クラウドソリューション事業部の倉岡です。1年目ということもあり学ぶことが多々あるのですが、つい先日AWS技術書を読んで悩んだ内容がありました。 ”AWSのセキュリティグループはステートフル、ネットワークACLはステートレス” と言った文言です。ステートフルは「状態を保持する」と言った意味合いがあり、ステートレスは「状態を保持しない」と言った意味合いがあります。その意味も踏まえて先ほどの文言を言い換えると ”AWSのセキュリティグループは状態を保持する、ネットワークACLは状態を保持しない” となります。 ますます、わからなくなってきました。そこで様々なサイトの閲覧や解説書を読み進めていくことにしました。すると、 ”セキュリティグループはステートフルで1つの通信を設定すれば戻りの通信は
ども、大瀧です。 最近、お客さまからの問い合わせからElastic Load Balancing(ELB)の負荷分散について調べ社内資料としてまとめる機会がありました。せっかくなので、ブログ記事として公開してみます。内容は随時アップデートしますので、ツッコミ・ご指摘があればぜひお願いします! 負荷分散の仕組み ELBは、クライアントのリクエストを受け付けEC2インスタンスにトラフィックを転送するために、2種類の負荷分散を組み合わせて動作します。 スケーラビリティと冗長性のために、ELBはロードバランサの機能を提供するノードを複数動作させるはたらきがあり、クライアントから複数のノードへアクセスを分散させるためにDNSラウンドロビン、ノードからEC2インスタンスへのトラフィック転送を分散させるためにLeast Connsという手法を用いています。 DNSラウンドロビン DNSラウンドロビンはそ
VPC内のトラフィック制御設定を行うにあたり、ネットワークACLでもセキュリティグループでも実現できる要件の場合、ネットワークACLでは全トラフィックを許可して、セキュリティグループで細かい設定をすることが多いです。なぜそうしているのかまとめました。 ネットワークACLとセキュリティグループの違い まず表題の理由を述べる前に、ネットワークACLとセキュリティグループの違いを抑えておきましょう。 設定対象 ネットワークACLはサブネット単位で設定します。サブネット以下の全インスタンスが影響を受けます。各サブネットは必ずいずれか一つのネットワークACLと紐付ける必要があります。設定しない場合デフォルトのネットワークACLが勝手に紐付きます。 セキュリティグループはインスタンス単位で設定します。各インスタンスには少なくとも 1 つのセキュリティグループを紐付ける必要があります。言い換えれば複数個
「プロフェッショナルIPv6 第2版」を無料配布します。2018年7月にプロフェッショナルIPv6初版を発売&無償配布開始しました(すごいIPv6本を無料配布)。初版発売開始から3年、さらにパワーアップした「プロフェッショナルIPv6 第2版」がついに完成しました! 本書を企画して、少しずつ文章を書き溜めはじめた2011年から10年近くかけて完成した488ページにおよぶ「プロフェッショナルIPv6 第2版」をお楽しみください。 プロフェッショナルIPv6第2版の構成 プロフェッショナルIPv6第2版は5部構成になっています。 第1部は「インターネットとIPv6の概要」というタイトルで、IPv6の視点からインターネット自体の仕組みを復習し、そのうえで、詳細の説明に入る前に把握しておくべきIPv6の概要として、次のような事項を解説しています。 従来のIPv4アドレスとは大きく異なるIPv6アド
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く