615 Views
May 26, 26
スライド概要
仕事:運用保守系エンジニア&PM的なことをしています。 AWSチョットわかる。AWS以外はからっきしです。
NW-JAWS #21 ~改めて振り返る CloudFrontとELB(LV200)~ ELB?最高だぜぇ! 世界はELBで回ってる 2026/5/26 佐藤 竜也 KDDIアイレット株式会社
Profile 佐藤 竜也 KDDIアイレット株式会社 ・所属:gaipack本部 ビジネスアクセラレーション事業部 ・担当:インフラエンジニア / PM ・受賞:2025 Japan AWS All Certifications Engineers 2025 Japan AWS Top Engineers AWS Community Builder 2025(Security) ・経歴:ヘルプデスク→社内 SE→クラウドインフラ運用保守 ・最近:プロジェクト管理や慣れないスクラムに奮闘中
みなさんは ELB (Elastic Load Balancer) 使ってますか??
わたしは もちろん使ってます (ただし一部機能に限り) 。 こう さい 。 、 ス 。 ービ ないぜ だぜ サ ん れ 神 で もど 良い まじ プレ なくて ン ら オ 器触 機 な 特殊
なんとなくで触っている ELB そんな状況から打開すべく 今宵一緒に学んでいきましょう
アジェンダ 01 ELBの主な機能 02 ELBの4種類をおさらい 03 ユースケース 04 よくある構成紹介 05 まとめ
ELBの主な機能
ELBの主な機能 アプリケーションの可用性を向上させる Virtual private cloud (VPC) 1 複数のターゲットにアクセスを分 散させることが可能 2 ELBが所属している AZに対して 分散設定が可能 3 ステータスが異常なターゲットに は通信を送らない Elastic Load Balancing 1 Availability Zone 2 Availability Zone 3 Availability Zone unhealthy EC2/コンテナ など EC2/コンテナ など EC2/コンテナ など 8
ロードバランサー導入が手軽な時代に クラウド以前 ロードバランサー用のアプライアンス製品を購入 する必要がある。高額。調達期間長い。社内稟 議、上申必要。製品の専用知識必要。 データセンターでラッキングなども。 クラウド時代 ボタンひとつで導入完了。 従量課金。ハード/ソフトウェアの管理不要。 個人でも導入出来るお手軽サービスに。 9
ELB さいこうですね ざい らの 調達 か 作業 解 ん 放ば
負荷分散の構築が手軽な時代へ LB導入前提の設計が基本 と言っても過言ではない
ELB4種類をおさらい
ELB:4種類の紹介 主に利用されるのはこの 2つ ・ALB(Application Load Balancer) ・NLB(Network Load Balancer) 利用非推奨の前世代ロードバランサー ・Classic Load Balancer 13
ELB:4種類の紹介 旧:汎用的 Webアプリ特化 ネットワーク通信特化 セキュリティ中継特化 Classic Load Balancer Application Load Balancer Network Load Balancer Gateway Load Balancer 2009年リリース 2016年リリース 2017年リリース 2020年リリース EC2-Classic(VPC無し)の要件で設計 された負荷分散を提供 マイクロサービス時代の要件に合わ せ、高度なアプリケーション層処理を行 うために登場 ALBでは満たしきれないネットワーク要 件に応えるために登場 ● ● ● L4/L7の一般的なロードバラン サー リリース当時の名称は ELB ● ※ALB登場後にCLBと変更 ● 現在はレガシー位置づけ ※新規構築ではALB/NLBを推奨 ● シンプルな分散方式で複数イン スタンスへ振り分ける汎用機能 のみ ● L7(HTTP/HTTPS)特化のロー ドバランサー WebSocket対応、AWS WAF 連携、Host/Pathベース、リダイ レクト/固定レスポンスなどを提 供 Webアプリケーションのトラ フィッ ク振り分けに特化 ● ● ● ● L4(TCP/UDP/TLS)特化のロード バランサー 超低遅延・高スループットが必要 な通信に強い 固定IP(Elastic IP)運用が可能 クライアント IP保持や突発的な負 荷増にも強く、ネットワーク要件が 厳しいシステムで使いやすい セキュリティアプライアンスを中継出来 る要件に特化した LBとして登場 ● ● ● L3/L4のトラフィック中継特化の ロードバランサー ファイアウォール /IDS/IPS など のセキュリティアプライアンス連 携が可能 アプリ配信( Web振り分け)目的 ではなく、ネットワークセキュリ ティ基盤向け 14
ELB:4種類の紹介 Elastic Load Balancing の特徴 > 製品比較 にもまとまっている情報があるので参考にしていきましょう 引用:https://aws.amazon.com/jp/elasticloadbalancing/features/ 15
よく分からんという方向け Webアプリ: ALB それ以外: NLB (http/https) (TCP/UDP/TLS) まずは雑な理解でおけ
ALB/NLBの共通構成 https(443)でELBへアクセス AWS Cloud Virtual private cloud (VPC) Availability Zone ELB Internet gateway Availability Zone リスナー: https(443) ターゲットグループ: http(80) Private subnet ターゲット ターゲット Private subnet ターゲット ターゲット ※ターゲットまで TLSを終端させたい場合(エンドツーエンド TLS)はターゲットグループも 443設定が必要 17
ALB/NLBの共通構成 AWS Cloud Virtual private cloud (VPC) Availability Zone Internet gateway スキーム設定: ・Internet facing / Internal Availability Zone ELB ELBへのアクセス可能範囲を設定する Private subnet Private subnet ・パブリックに公開 (パブリック IPが付与) ・VPC内部に限定 (プライベート IPのみ付与) ターゲット ターゲット ターゲット ターゲット 18
ALB/NLBの共通構成 ターゲットグループ > ターゲットの種類 AWS Cloud Virtual private cloud (VPC) Availability Zone Internet gateway Availability Zone ELB Private subnet Private subnet ・インスタンス: EC2/Auto Scaling Group ・IPアドレス: Fargate/VPC外のターゲット ターゲット ターゲット ターゲット ターゲット ・Lambda関数: 返されたコンテンツをクライアントに返す ・Application Load Balancer: NLBのターゲットに ALBを指定したい場合 19
ALB/NLBの共通構成 https(443)でELBへアクセス AWS Cloud Virtual private cloud (VPC) Availability Zone ELB リスナー / 転送先設定 Internet gateway Availability Zone リスナー: https(443) ターゲットグループ: http(80) target-1 Private subnet ターゲット ターゲット Private subnet ターゲット ターゲット ※クライアントまで SSL終端が必要な場合は ターゲットグループも 443設定が必要 ・リスナー: ELBが受け付けるプロトコルとポート番号を設定 ・ターゲットグループ: グループリソースに対して負荷分散して配信 ・ターゲット: EC2インスタンスやコンテナなどのリソース群 20
その他にも色々多機能です ・ヘルスチェック ・ルーティング ・スケーリング ・コネクション管理 などなど
ユースケース
ALB/NLB 基本的な使われ方を 見てみましょう
ALBを選ぶユースケース ● コンテンツベースのルーティング処理をしたい場合 ○ ホスト名 /パス/ヘッダーなどでターゲットを変更する ● Cognitoを利用したユーザ認証機能を実装したい場合 ● AWS WAFと連携してアプリケーション層のセキュリティ強化をしたい場合 ● ターゲットに Lambda関数を利用したい場合 24
コンテンツベースのルーティング パスベース ホスト名ベース HTTPヘッダーベース Chromeブラウザ https://example.com/web /api apiターゲット /web webターゲット リスナーで設定されたパス名に応 じてターゲット先を振り分ける https://web.example.com api.example.com apiターゲット web.example.com webターゲット リスナーで設定されたホスト名に 応じてターゲット先を振り分ける example.com User-Agent="*Safari*" Safariターゲット User-Agent="*Chrome*" Chromeターゲット リスナーで設定された HTTPヘッダー情報 に応じてターゲット先を振り分ける 25
NLBを選ぶユースケース ● 固定IPのロードバランサーが欲しい場合 ● クライアントの Source IPとPortを保持したい場合 ● 高スループット、低レイテンシな処理が必要な場合 ● 急激なスパイクアクセスに対応したい場合 ● 他アカウント /VPCへインターネット非経由でアクセスさせたい ○ AWS PrivateLink経由でのアクセスに対応 ● ターゲットに ALBを指定したい場合 26
NLBはSourceIPをターゲットに透過出来る NLB(透過型 /L4) IP:xx.xx.xx.xx Port:3128 ALB(プロキシ型 /L7) IP:10.1.0.20 Port:3128 Network Load Balancer IP:10.2.0.20 IP:yy.yy.yy.yy Application Load Balancer クライアント IPはヘッダー情報 X-Forwarded-For:yy.yy.yy.yyで渡される IP:10.1.0.10 ターゲット ターゲット目線で送信元 IPは 「xx.xx.xx.xx」となる IP:10.2.0.10 ターゲット ターゲット目線で送信元 IPは 「10.2.0.20」となる 27
NLBはSourceIPをターゲットに透過出来る 設定はターゲットグループで TCP/TLS/UDPなどで作成後に確認可能 28
よくある構成紹介
公開されている構成図から ELBの利用を読み取ってみる
ALB:コンテンツベースルーティング Dify on AWS with CDK Webアプリケーションの コンテンツベースルーティングで利用されている 引用:https://github.com/aws-samples/dify-self-hosted-on-aws 31
CloudFront と ALB 構成 Dify on AWS with CDK CloudFront と ALB の構成とするメリット ・コンテンツキャッシュで ALBへのアクセスを減らす ・エッジロケーションでレスポンスが早くなる ・CloudFront/ALBで段階的な多層防御が可能 引用:https://github.com/aws-samples/dify-self-hosted-on-aws 32
PrivateLink と NLB SaaSへの接続時に 公開されている PrivateLink経由で プライベートアクセスが可能 引用:https://d1.awsstatic.com/architecture-diagrams/ArchitectureDiagrams/securely-access-tidb-using-aws-privatelink-ra.pdf?did=wp_card&trk=wp_card 33
NLB と ALB を利用した閉域アクセス オンプレミス環境から AWSへ 閉域環境からアクセスする方法 ・IPアドレスの固定 ・PrivateLinkでの接続 IP固定のために NLB → ALB →ターゲット という構成とするケースもある 引用:https://aws.amazon.com/jp/blogs/news/announcing-template-for-closed-network-system-workloads-on-aws/ 34
Public/Private問わず ELBは業界問わず どこでも使われていてスゴイ
まとめ
まとめ ELBは4種類あるけど基本は 2つ まずは「 Webアプリ=ALB/それ以外 =NLB」で選ぶ ● ALB:L7(HTTP/HTTPS) ● NLB:L4(TCP/UDP/TLS)/ 固定IP要件 AWSマネージドサービスとの「組み合わせ」で価値が出る ● CloudFront / PrivateLink / Cognito / WAF / ACM などなど ● ログ出力や多層防御、ユーザ認証などもアプリ実装不要になる Webアプリケーションを作るオトモ。仲良くすると幸せになれるかも??
世界中の Webアプリケーション ELBのおかげで動いている そう言っても過言じゃない
もっとELBのことを知りたいという方へ 引用:https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Elastic-Load-Balancing_0525_v1.pdf
AWS Black Belt をぜひご覧あれ ELBさいこうだぜぇ!
ご清聴ありがとうございました
参考資料 AWS Black Belt Online Seminar > Elastic Load Balancing https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Elastic-Load-Balancing_0525_v1.pdf Elastic Load Balancing の特徴 https://aws.amazon.com/jp/elasticloadbalancing/features/ ELBをよりよく理解するためにリリースの歴史と各機能面から紐解いた https://dev.classmethod.jp/articles/elb-history-and-specs/ Now Available: Monitoring, Auto Scaling and Elastic Load Balancing for Amazon EC2 https://aws.amazon.com/jp/about-aws/whats-new/2009/05/17/monitoring-auto-scaling-elastic-load-balancing/ Network Load BalancerのターゲットグループにApplication Load Balancerを設定する https://aws.amazon.com/jp/blogs/news/application-load-balancer-aws-privatelink-static-ip-addresses-network-load-balancer/ Network Load Balancer のセキュリティグループを更新する https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/load-balancer-security-groups.html Dify on AWS with CDK https://github.com/aws-samples/dify-self-hosted-on-aws Securely Access TiDB using AWS PrivateLink https://d1.awsstatic.com/architecture-diagrams/ArchitectureDiagrams/securely-access-tidb-using-aws-privatelink-ra.pdf?did=wp_card&trk=wp_card 閉域網での利用を前提としたCDKのサンプルテンプレートを公開しました https://aws.amazon.com/jp/blogs/news/announcing-template-for-closed-network-system-workloads-on-aws/