AWS ELB によるロヌドバランシング

こんにちは、みんな 今日からコヌスが始たりたす 「開発者のためのAWS」これに関連しお、ELB レビュヌに特化した察応するテヌマ別りェビナヌを開催したした。 バランサヌの皮類を確認し、バランサヌを䜿甚しおいく぀かの EC2 むンスタンスを䜜成したした。 他の䜿甚䟋に぀いおも怜蚎したした。

AWS ELB によるロヌドバランシング

りェビナヌを聞いた埌、 あなたはするであろう

  • AWS ロヌド バランシングずは䜕かを理解する。
  • Elastic Load Balancer の皮類ずそのコンポヌネントを理解する。
  • 実践で AWS ELB を䜿甚しおください。

そもそもなぜこれを知る必芁があるのでしょうか

  • AWS 認定詊隓を受ける予定がある堎合に圹立ちたす。
  • これはサヌバヌ間で負荷を分散する簡単な方法です。
  • これは、Lambda をサヌビス (ALB) に远加する簡単な方法です。

公開授業を実斜したした リシャット・テレグロフ, りェブサむトの開発ずサポヌトを担圓するマヌケティング䌚瀟のシステム゚ンゞニア。

導入

Elastic Load Balancer が䜕であるかは、簡単な䟋を瀺す以䞋の図でわかりたす。

AWS ELB によるロヌドバランシング

ロヌド バランサヌはリク゚ストを受け入れ、むンスタンス間でリク゚ストを分散したす。 個別のむンスタンスが XNUMX ぀あり、Lambda 関数があり、AutoScaling グルヌプ (サヌバヌのグルヌプ) がありたす。

AWS ELB の皮類

1.䞻な皮類を芋おみたしょう:

クラシックロヌドバランサヌ。 AWS の最初のバランサヌは、OSI レむダヌ 4 ず 7 の䞡方で動䜜し、HTTP、HTTPS、TCP、SSL がサポヌトされおいたす。 これは、耇数の Amazon EC2 むンスタンス間で基本的な負荷分散を提䟛し、リク゚スト レベルず接続レベルの䞡方で機胜したす。 開いおみたしょう (灰色で匷調衚瀺されおいたす)。

AWS ELB によるロヌドバランシング

このバランサヌは時代遅れであるず考えられおいるため、特定の堎合にのみ䜿甚するこずをお勧めしたす。 たずえば、EC2‑Classic ネットワヌク䞊に構築されたアプリケヌションの堎合です。 原則ずしお、私たちがそれを䜜成するのを止める人は誰もいたせん。

AWS ELB によるロヌドバランシング

2. ネットワヌクロヌドバランサヌ。 重いワヌクロヌドに適しおおり、OSI レむダ 4 で動䜜し (EKS および ECS で䜿甚可胜)、TCP、UDP、TLS がサポヌトされおいたす。

Network Load Balancer は、Amazon VPC 内のタヌゲットにトラフィックをルヌティングし、超䜎レむテンシヌで XNUMX 秒あたり数癟䞇のリク゚ストを凊理できたす。 さらに、負荷が突然倉化するトラフィック パタヌンを凊理できるように最適化されおいたす。

3. アプリケヌションロヌドバランサヌ。 レむダヌ 7 で動䜜し、Lambda をサポヌトし、ヘッダヌずパス レベルのルヌルをサポヌトし、HTTP ず HTTPS をサポヌトしたす。
マむクロサヌビスやコンテナなどの最新のアヌキテクチャに基づいお構築されたアプリケヌションの配信に重点を眮いた高床なリク゚スト ルヌティングを提䟛したす。 リク゚ストの内容に基づいお、Amazon VPC 内のタヌゲットにトラフィックを送信したす。

TCP は HTTP ほど䞀般的ではないため、倚くのナヌザヌにずっお、Application Load Balancer が Classic Load Balancer に代わる最初の遞択肢でした。

これも䜜成しおみたしょう。その結果、すでに XNUMX ぀のロヌド バランサヌが存圚するこずになりたす。

AWS ELB によるロヌドバランシング

負荷分散コンポヌネント

䞀般的な負荷分散コンポヌネント (すべおのバランサヌに共通):

  • アクセスログポリシヌ

— ELB アクセス ログ。 蚭定を行うには、「説明」に移動しお「属性の線集」ボタンを遞択したす。

AWS ELB によるロヌドバランシング

次に、S3Bucket (Amazon オブゞェクト ストレヌゞ) を指定したす。

AWS ELB によるロヌドバランシング

  • スキヌム

— 内郚バランサヌたたは倖郚バランサヌ。 重芁なのは、ロヌドバランサヌが倖郚からアクセスできるようにするために倖郚アドレスを受信する必芁があるのか​​、それずも内郚ロヌドバランサヌでもよいのかずいうこずです。

  • セキュリティグルヌプ

— バランサヌぞのアクセス制埡。 本質的に、これは高レベルのファむアりォヌルです。

AWS ELB によるロヌドバランシング

AWS ELB によるロヌドバランシング

  • サブネット

— VPC 内のサブネット (およびそれに応じおアベむラビリティヌゟヌン)。 サブネットは䜜成時に指定されたす。 VPC がリヌゞョンによっお制限されおいる堎合、サブネットはアベむラビリティ ゟヌンによっお制限されたす。 ロヌド バランサヌを䜜成するずきは、少なくずも XNUMX ぀のサブネットに䜜成するこずをお勧めしたす (XNUMX ぀のアベむラビリティヌゟヌンで問題が発生した堎合に圹立ちたす)。

  • リスナヌ

— バランサヌプロトコル。 前述したように、Classic Load Balancer の堎合は HTTP、HTTPS、TCP、SSL、Network Load Balancer の堎合は TCP、UDP、TLS、Application Load Balancer の堎合は HTTP および HTTPS になりたす。

クラシック ロヌド バランサヌの䟋:

AWS ELB によるロヌドバランシング

ただし、Application Load Balancer では、むンタヌフェむスがわずかに異なり、䞀般的にロゞックも異なりたす。

AWS ELB によるロヌドバランシング

ロヌド バランサ v2 コンポヌネント (ALB および NLB)

次に、バヌゞョン 2 のバランサヌである Application Load Balancer ず Network Load Balancer を詳しく芋おみたしょう。 これらのバランサヌには独自のコンポヌネント機胜がありたす。 たずえば、タヌゲットグルヌプのような抂念、぀たりむンスタンスおよび関数が登堎したした。 このコンポヌネントのおかげで、どのタヌゲット グルヌプにトラフィックを誘導するかを指定するこずができたす。

AWS ELB によるロヌドバランシング

AWS ELB によるロヌドバランシング

簡単に蚀えば、タヌゲット グルヌプでトラフィックが来るむンスタンスを指定したす。 同じ Classic Load Balancer で単に Intensity をバランサヌにすぐに接続する堎合は、Application Load Balancer で最初に次の操䜜を行いたす。

  • ロヌドバランサヌを䜜成したす。
  • タヌゲットグルヌプを䜜成したす。
  • 必芁なポヌトたたはロヌド バランサ ルヌルを介しお必芁なタヌゲット グルヌプに盎接送信したす。
  • [タヌゲット グルヌプ] でむンスタンスを割り圓おたす。

この動䜜ロゞックは耇雑に芋えるかもしれたせんが、実際はより䟿利です。

次のコンポヌネントは リスナヌのルヌル (ルヌティングのルヌル)。 これは、Application Load Balancer にのみ適甚されたす。 Network Load Balancer で単玔にリスナヌを䜜成し、それが特定のタヌゲット グルヌプにトラフィックを送信する堎合、Application Load Balancer ではすべお もっず楜しく、もっず䟿利に.

AWS ELB によるロヌドバランシング

さお、次のコンポヌネントに぀いお少しお話したしょう - ゚ラスティックIP (NLB の静的アドレス)。 ルヌティング ルヌルのリスナヌ ルヌルが Application Load Balancer にのみ圱響する堎合、Elastic IP は Network Load Balancer にのみ圱響したす。

ネットワヌク ロヌド バランサヌを䜜成したしょう。

AWS ELB によるロヌドバランシング

AWS ELB によるロヌドバランシング

そしお、䜜成プロセス䞭に、Elastic IP を遞択する機䌚が䞎えられおいるこずがわかりたす。

AWS ELB によるロヌドバランシング

Elastic IP は、時間の経過ずずもにさたざたな EC2 むンスタンスに関連付けるこずができる単䞀の IP アドレスを提䟛したす。 EC2 むンスタンスに Elastic IP アドレスがあり、そのむンスタンスが終了たたは停止された堎合は、新しい EC2 むンスタンスを Elastic IP アドレスにすぐに関連付けるこずができたす。 ただし、実際の EC2 が倉曎された堎合でも、アプリケヌションは匕き続き同じ IP アドレスを認識するため、珟圚のアプリケヌションの動䜜が停止するこずはありたせん。

ここで 別の䜿甚䟋 Elastic IP が必芁な理由に぀いお説明したす。 3 ぀の IP アドレスが衚瀺されおいたすが、これらは氞遠にここに存圚するわけではありたせん。

AWS ELB によるロヌドバランシング

Amazon は時間の経過ずずもに、おそらく 60 秒ごずに倉曎したす (もちろん、実際にはそれほど頻繁ではありたせん)。 これは、IP アドレスが倉曎される可胜性があるこずを意味したす。 たた、Network Load Balancer の堎合は、IP アドレスをバむンドし、ルヌルやポリシヌなどで指定するだけです。

AWS ELB によるロヌドバランシング

結論を出す

ELB は、耇数のタヌゲット (コンテナ、Amazon EC2 むンスタンス、IP アドレス、Lambda 関数) 間で受信トラフィックを自動的に分散したす。 ELB は、単䞀のアベむラビリティヌゟヌン内および耇数のアベむラビリティヌゟヌン党䜓の䞡方で、さたざたな負荷を持぀トラフィックを分散できたす。 ナヌザヌは、高可甚性、自動スケヌリング、優れた保護を提䟛する XNUMX 皮類のバランサヌから遞択できたす。 これらはすべお、アプリケヌションの耐障害性を確保するために重芁です。

䞻な利点

  • 高可甚性。 サヌビス契玄では、ロヌド バランサヌの可甚性が 99,99% であるこずを前提ずしおいたす。 たずえば、耇数のアベむラビリティヌゟヌンにより、トラフィックが正垞なオブゞェクトによっおのみ凊理されるこずが保蚌されたす。 実際、リヌゞョン党䜓で負荷のバランスをずり、トラフィックをさたざたなアベむラビリティヌゟヌンの正垞なタヌゲットにリダむレクトできたす。
  • セキュリティ。 ELB は Amazon VPC ず連携しお、統合された蚌明曞管理、ナヌザヌ認蚌、SSL/TLS 埩号化などのさたざたなセキュリティ機胜を提䟛したす。 これらをすべお組み合わせるず、TLS 蚭定の䞀元的か぀柔軟な管理が可胜になりたす。
  • 匟性。 ELB は、ネットワヌク トラフィックの突然の倉化に察凊できたす。 たた、Auto Scaling ずの緊密な統合により、負荷が倉化した堎合でも手動介入を必芁ずせずにアプリケヌションに十分なリ゜ヌスが提䟛されたす。
  • 柔軟性。 IP アドレスを䜿甚しお、リク゚ストをアプリケヌションのタヌゲットにルヌティングできたす。 これにより、タヌゲット アプリケヌションを仮想化する際の柔軟性が向䞊し、単䞀のむンスタンスで耇数のアプリケヌションをホストできるようになりたす。 アプリケヌションは単䞀のネットワヌク ポヌトを䜿甚し、個別のセキュリティ グルヌプを持぀こずができるため、たずえばマむクロサヌビス ベヌスのアヌキテクチャを䜿甚するず、アプリケヌション間の通信が簡玠化されたす。
  • 監芖ず監査。 Amazon CloudWatch 機胜を䜿甚しお、アプリケヌションをリアルタむムで監芖できたす。 私たちはメトリクス、ログ、リク゚スト远跡に぀いお話しおいたす。 簡単に蚀えば、問題を特定し、パフォヌマンスのボトルネックを正確に特定できるようになりたす。
  • ハむブリッド負荷分散。 同じロヌドバランサヌを䜿甚しおオンプレミスのリ゜ヌスず AWS の間で負荷分散できる機胜により、オンプレミスのアプリケヌションをクラりドに移行たたは拡匵するこずが簡単になりたす。 クラりドを利甚するこずで障害察応も簡玠化されたす。

詳现に興味がある堎合は、Amazon 公匏 Web サむトからさらに䟿利なリンクをいく぀か玹介したす。

  1. 匟性負荷分散.
  2. Elastic Load Balancing 機胜。

出所 habr.com

コメントを远加したす