Slide 1

Slide 1 text

2021/12/08 ~ インフラエンジニア向け ~ 雲勉@オンライン【勉強会】 GatewayLoadBalancerをネタにELBの歴史を紐解く会

Slide 2

Slide 2 text

2 本日のハッシュタグ #kumoben 写真撮影 OK!

Slide 3

Slide 3 text

アイレットご紹介 – 会社概要 3 ◼ 社名 アイレット株式会社 ◼ 所在地 〒105-6307 東京都港区⻁ノ⾨1-23-1 ⻁ノ⾨ヒルズ森タワー7F 設⽴2003年10⽉15⽇ ◼ 資本⾦ 7,000万円 ◼ 代表者名 岩永充正 ◼ 従業員数 753名(2021年10⽉末時点) ◼ 事業内容 ITコンサルティング、システム開発、 システム保守・運⽤、 サーバハウジング・ホスティング ◼ 主要株主 KDDI株式会社

Slide 4

Slide 4 text

アイレットご紹介 – AWS APNパートナー 4 cloudpackは、Amazon Elastic Compute Cloud (Amazon EC2)やAmazon Simple Storage Service (Amazon S3)をはじめとする AWSの各種プロダクトを利⽤する際の導⼊・設計から運⽤保守を含んだフルマネージドのサービスを提供し、バックアップや24時間 365⽇の監視/障害対応、技術的な問い合わせに対するサポートなどを⾏っております。 2013年6⽉4⽇には、AWSパートナーネットワーク(APN)において、⽇本初のAPNプレミアティアコンサルティングパートナーの⼀社と して認定されたのをはじめ、その後9年連続で認定されています。 『APNプレミアティアコンサルティングパートナー』はAPNプログラムの中で最上位のパートナーであり、厳しいクライテリアを満たした パートナーのみが選出され、世界で128社のみが認定されています。9年連続で認定された⽇本企業としては、cloudpack(アイレット) と株式会社野村総合研究所の2社のみとなります。

Slide 5

Slide 5 text

アイレットご紹介 – APN Consulting Partner of the Year 2019 – Japan 5 AWSのパートナーネットワークに登録している企業が参加した「AWS Partner Summit Tokyo」の中で、数あるアワードの中で最も実績 をあげたパートナーであることを⽰す『APN Consulting Partner of the Year 2019 – Japan』を受賞しました。cloudpackは、同賞を5度 ⽬の受賞となります。 『APN Consulting Partner of the Year 2019 – Japan』は、AWSが年間を通じて営業・技術・マーケティング分野においてパートナーと しての総合⼒を判断し、AWSのビジネスに最も貢献したパートナーに贈られるものです。cloudpackは、2013年から継続的にプレミアコン サルティングパートナーとして認定されているほか、業界に影響を与える多数のお客様事例のリリースや、数千台規模のマイグレーション 案件、基幹システムの移⾏を⼿掛けるなど、さらなるAWSビジネスの拡⼤に貢献しました。 また、サーバーレスやマシンラーニングなどの新サービスも積極的に採⽤して成功させる⼀⽅で、エンタープライズ案件も推進してきた結 果、著しい売り上げ伸び率を達成したことが評価されました。

Slide 6

Slide 6 text

アイレットご紹介 - 弊社の代表するサービス 6 クラウドを活用し お客様のご要望に幅広くお応えする 総合支援サービスです。

Slide 7

Slide 7 text

0.講師自己紹介 7 ◼ 久米拓馬(クメタクマ) • クラウドインテグレーション事業部 大阪構築第二セクション • 某大手企業様の情シス子会社に派遣勤務を13年くらい • 2016/01入社 アイレット 歴5年くらい • 英語一切できないのにre:inventに行くという、 暴挙に出たことがあります。 もし機会があれば、是非体験してみてください。

Slide 8

Slide 8 text

アジェンダ 8 0. 自己紹介 1. AWS Elastic Load Balancingとは (19:10~19:15) 2. Classic Load Balancerのお話 (19:15~19:20) 3. Application Load Balancerのお話 (19:20~19:25) 4. Network Load Balancerのお話 (19:25~19:30) 5. Gateway Load Balancerのお話 (19:30~19:40) 6. Gateway Load Balancerの通信デモ (19:40~19:50) 7. 質疑応答 (19:50~20:00)

Slide 9

Slide 9 text

1. AWS Elastic Load Balancingとは 9

Slide 10

Slide 10 text

1. AWS Elastic Load Balancingとは 10 ◼ AWS Elastic Load Balancingの概要 そもそもELBってなんだろう。 というのも必要ないくらい、今では有名なサービスですね。 名前の通り、ロードバランシングのためのマネージドサービスです。 ロードバランサーといえば。。。 ・f5社のBIG-IPが有名どころ? もちろん、複数のメーカーで存在しますが、総じて共通していることが ・高い ・それほど設定事例がない ということじゃないでしょうか。 なかなか⼿が出せない。。。

Slide 11

Slide 11 text

1. AWS Elastic Load Balancingとは 11 ◼ AWS Elastic Load Balancingの概要 私自身もオンプレネットワークを運⽤していましたが、それなりの規模の中でも ロードバランサーの登場機会は少なく、運⽤経験はありませんでした。 そのため、 ・難しそう ・高そう といった偏見の⽬が正直ありました。

Slide 12

Slide 12 text

1. AWS Elastic Load Balancingとは 12 ◼ AWS Elastic Load Balancingの概要 が、みなさんご存知の通り、AWS ELBはそんな懸念を払拭していますね。 さて、改めてそもそもなんなの、と。 ・受信したトラフィックを複数のターゲットに自動的に分散 ・ターゲットのモニタリングを行い、正常なターゲットにトラフィックをルーティング ・負荷に合わせて自動でスケーリング ・リクエストを中断することなく、ターゲットの追加と削除が可能 ・SSL暗号化の復号処理が可能 前述の通り、オンプレミスのロードバランサーに明るくないので、画期的ではないかも しれません。 ただ、この機能が安価に利⽤できてしまう仕組みは非常に魅⼒的ですね。

Slide 13

Slide 13 text

1. AWS Elastic Load Balancingとは 13 ◼ ELBの種類 ELBの種類についてですが、 ・ Classic Load Balancer ・ Application Load Balancer ・ Network Load Balancer ・ Gateway Load Balancer が現時点でのラインナップです。 詳細は個別の紹介でお話しします。 Application Load Balancer Classic Load Balancer Network Load Balancer Gateway Load Balancer Elastic Load Balancing

Slide 14

Slide 14 text

1. AWS Elastic Load Balancingとは 14 ◼ まとめ あくまでロードバランサーとしてのマネージドサービスですが、 利⽤の⽤途は多々あり、 ・WEBのロードバランサー ・API受付部分のロードバランサー ・外部アクセスの障壁用途 ・耐障害・可用性向上用途 ・トラフィック検査などセキュリティ向上 ・AWS WAFとの組み合わせによるセキュリティ向上 など、現在では非常に⼤事な機能を担うサービスになっています。

Slide 15

Slide 15 text

2. Classic Load Balancerのお話 15

Slide 16

Slide 16 text

2. Classic Load Balancerのお話 16 ◼ Classic Load Balancerのお話 みなさん、存在をお忘れではありませんか? 影の功労者、 Classic Load Balancerさんです。

Slide 17

Slide 17 text

2. Classic Load Balancerのお話 17 ◼ Classic Load Balancerの登場時期 インターネット情報で恐縮ですが、 ・2009年5月 だそうです。 私自身は2015年あたりからawsを触り始めたんですが、ずっと古いですね。 ALBの登場が2016年なのですが、それまではELB=CLBで、そもそも名称自体が ELBでした。 ALBの登場したタイミングではかなり困惑しましたね。 (クラシックってどういうこと?なくなる??!?!?など)

Slide 18

Slide 18 text

2. Classic Load Balancerのお話 18 ◼ Classic Load Balancerの特徴 そもそも、2016年まではELBと呼ばれれば、CLBのことを指していました。 そのため、web構成では といった構成が当たり前でしたね。

Slide 19

Slide 19 text

2. Classic Load Balancerのお話 19 ◼ Classic Load Balancerの特徴 何が出来ただろうと振り返ると ・EC2-Classicに対応 ・負荷分散 ・ヘルスチェック ・カスタムセキュリティポリシーの設定 ・スティッキーセッション などが代表的でしょうか。 当然、ほとんどの機能は後述のALBで対応可能です。 そのため、こんなことになってますね。

Slide 20

Slide 20 text

2. Classic Load Balancerのお話 20 ◼ Classic Load Balancerの特徴

Slide 21

Slide 21 text

2. Classic Load Balancerのお話 21 ◼ Classic Load Balancerの特徴 露骨ですよね・・・

Slide 22

Slide 22 text

2. Classic Load Balancerのお話 22 ◼ Classic Load Balancerのまとめ 今後はわかりませんが、この仕打ちを見る限り、縮小に向かいそうですね。 aws触り始めから使っているサービスとしては寂しい限りですが、 互換性のあるサービスが出てきてくれているので、採⽤は減りそうです。 懐かしい話ですが、今でこそACMがありますが、IAMと連携してSSL証明書を 取り込ませていたとか、もうクラウド老害の域でしょうね。

Slide 23

Slide 23 text

3. Application Load Balancerのお話 23

Slide 24

Slide 24 text

3. Application Load Balancerのお話 24 ◼ Application Load Balancerの登場時期 CLBから⼊って、インフラとして(当時)あまり不都合を感じていなかったところに やってきた新サービスです。※個人の見解です 登場は ・2016年8月 だそうです。 何か新しいロードバランサーが出るぞ、という不安もあったりしました。 というのも、CLBが廃止になるのか?!(そもそもCLBと呼んでなかったけど) という漠然な不安が。

Slide 25

Slide 25 text

3. Application Load Balancerのお話 25 ◼ Application Load Balancerの概要 CLBで述べたとおり、ほとんど互換性を持った形で登場しています。 そのため、特筆すべき新しい機能といえば ・リスナールールによるルーティングの設定が可能 ・リダイレクトが可能(少し後出しだった気がしますが) ・CLBをCLBという名前に押し込んだ ・SSL証明書を複数持てる ・コンテナ対応 ・ターゲットグループという概念の誕生 ・LCUという概念の追加(詳しくないです) まだまだありますが、軽く挙げて見てもかなり増えてますね。。。

Slide 26

Slide 26 text

3. Application Load Balancerのお話 26 ◼ Application Load Balancerのありがたみ リスナールール リクエスト別にルールの記載が可能。 ・ホストヘッダ ・HTTPリクエストメソッド ・パスパターン ・送信元IP ・文字列クエリ アクションは以下の通り ・フォワード ・リダイレクト ・レスポンス応答

Slide 27

Slide 27 text

3. Application Load Balancerのお話 27 ◼ Application Load Balancerのありがたみ リスナールール:パスルーティング(フォワード) ⼀つのELBで複数のパスを受け付けることができ、またターゲットも複数設定できる。 Target Group A Target Group B Target Group C

Slide 28

Slide 28 text

3. Application Load Balancerのお話 28 ◼ Application Load Balancerのありがたみ リスナールール:リダイレクト テキストベースで良ければALBのみでソーリーページの表⽰も可能。 httpsへの強制リダイレクトなど、通常webサーバーまできて処理していたものを ALBで肩代わりし負荷を減らすことができる。 Target Group A Sorry txt http → https

Slide 29

Slide 29 text

3. Application Load Balancerのお話 29 ◼ Application Load Balancerのありがたみ SSL証明書複数保持 ⼀つのELBで複数の証明書を設定することができる。 webサーバーで複数のvhostを持っていたりする場合に、パスに応じたSSL証明書を 選択しオフロードができる。

Slide 30

Slide 30 text

3. Application Load Balancerのお話 30 ◼ Application Load Balancerのありがたみ 様々なターゲット ターゲットに ・EC2インスタンス ・IPアドレス ・Lambda が選択可能です。

Slide 31

Slide 31 text

3. Application Load Balancerのお話 31 ◼ 個人的Application Load Balancerイケテナイ話 ターゲットが全滅するとスルーする すでにご経験があるかもしれませんが、ターゲットグループに存在している宛先の ヘルスチェックが全滅した場合、トラフィックを流す性質があります。 Unhealthyなのにトラフィックが流れます。 ヘルスチェックの設定に不備があった場合は助かる現象でもありますが、 障害発生した場合でもスルーしてしまうため、ターゲットまで通信ができてしまうという 謎の現象が発生します。 Route53を利⽤したDNSフェイルオーバー(ALBのヘルスチェックを監視)するなどして 障害時の対策が必要になります。

Slide 32

Slide 32 text

4. Network Load Balancerのお話 32

Slide 33

Slide 33 text

4.Network Load Balancerのお話 33 ◼ Network Load Balancerの登場時期 名称からDirectConnectやVPNに関するELBが出るのかと思ってました。 登場は ・2017年9月 だそうです。 レイヤー4のロードバランサーですね。 詳しくは知りませんが。

Slide 34

Slide 34 text

4.Network Load Balancerのお話 34 ◼ Network Load Balancerの特徴 ささっと特徴を。 ・HTTP以外のプロトコルがメインの戦場 ・固定IPの付与が可能 ・PrivateLinkの対応 ・存続時間の長いTCP接続に対応 ・素早いスケール(暖機が要らないと言われている) ・セキュリティグループを持たない ALBのようにターゲットグループがあったりしますが、⼤きな違いは ターゲットグループのヘルスチェックにパスチェックがないことも挙げられますね。 PrivateLinkに対応していたり、APIgatewayの接続先になったりと ロードバランサーというより繋ぎ役としての役割が強そうですね。

Slide 35

Slide 35 text

4.Network Load Balancerのお話 35 ◼ Network Load Balancerのしんどかった話 最近実装された素晴らしい機能があります。 「ターゲットにALBが設定可能」 NLBの配下にALB?どゆこと? 今まではALB同様にインスタンスやIPアドレスの指定が必要でした。 私の携わった構築にて、以下のような構成を作ったことがあります。 Network Load Balancer Amazon API Gateway Instance

Slide 36

Slide 36 text

4.Network Load Balancerのお話 36 ◼ Network Load Balancerのしんどかった話 構成自体はよくあるものなんですが、運⽤の中で問題が発生しました。 先に述べたとおり、NLBはヘルスチェックをポートでしか⾏いません。 そのため、ポートが開いていて到達パスがない場合に障害と判断ができずに 通信を受けてしまう性質があります。 その場合、サービスがダウンしているにもかかわらず正常インスタンスへの 割り振りもされません。 Network Load Balancer Amazon API Gateway Instance サービスdown ポートは開放 Instance 本当はルーティング したくない

Slide 37

Slide 37 text

4.Network Load Balancerのお話 37 ◼ Network Load Balancerのしんどかった話 そこで、ALBを挟むことでALBによるパスのヘルスチェックを活⽤する⼿があります。 実装としてはNLBからALBの持っているIPアドレスに対してターゲット設定をして その問題に対処しました。 当初はALBの直接指定ができず、LambdaでALBの名前解決をして、そのIPアドレスを NLBのターゲットに反映して、という⼒技でやってました。 参考:https://aws.amazon.com/jp/blogs/networking-and-content-delivery/using-aws-lambda-to-enable-static-ip-addresses-for-application-load-balancers/ Network Load Balancer Amazon API Gateway Instance サービスdown ポートは開放 Instance Application Load Balancer

Slide 38

Slide 38 text

4.Network Load Balancerのお話 38 ◼ Network Load Balancerのしんどかった話 NLBには固定IP(EIP)を付与できます。 ただ、問題としてEIPはNLBの所属するAZ別に付与されます。 クロスゾーン負荷分散をしておけば、通信はAZを跨いでくれるのでどちらに繋いでも いうほど影響はないですが、AZ障害が起きたときにはフェイルオーバーのような 生きているAZのNLB(IP)に振り分けがされる、といった動作はしてくれません。 可能であれば、システム側で複数のIPを接続先に設定できると良さそうですね。 VPC Public subnet Public subnet AZ-a用EIP AZ-b用EIP 障害が起きると、 使えないIPになる

Slide 39

Slide 39 text

4.Network Load Balancerのお話 39 ◼ Network Load Balancerの活用例 ⼀部の構成でやっている例です。(セッションマネージャーの⽅が有⽤かもですが) プライベートサブネットにあるEC2へのsshおよびrdpをNLBを踏み台にしていたり。 EC2のセキュリティグループでポートの解放が必要ですが、プライベートにいる限り 外からのアクセスはそもそも遮断されているので安心かと思います。 VPC Private subnet Public subnet Instance Network Load Balancer Port:22など Port:50022など NLBのDNS名やIPアドレスを指定して 設定したportを利⽤して接続

Slide 40

Slide 40 text

5. Gateway Load Balancerのお話 40

Slide 41

Slide 41 text

5.Gateway Load Balancerのお話 41 ◼ Gateway Load Balancerの登場時期 やっときましたGWLB 登場は ・2020年11月 となります。 なんとなく、今まで語ってきた他のELBとは似ても似つかない性質かと思います。 簡単ではありますが、ドキュメントからの抜粋で説明していきます。

Slide 42

Slide 42 text

5.Gateway Load Balancerのお話 42 ◼ Gateway Load Balancerの概要 ⼀番考えられる⽤途は、セキュリティに関する対策での利⽤ではないでしょうか。 通常、ネットワークトラフィックを検査する場合、セキュリティ製品の乗ったEC2を 通過するネットワーク構成をとります。 VPC Private subnet Public subnet Instance (セキュリティ) Application Load Balancer Instance Application Load Balancer

Slide 43

Slide 43 text

5.Gateway Load Balancerのお話 43 ◼ Gateway Load Balancerの概要 外に出る通信の監査があった場合も、セキュリティ⽤インスタンスを通過するように 設定が必要であったり、またそのスケールが必要な場合に要件が増えたりと、 なかなか考えることが多いものですね。 VPC Private subnet Public subnet Instance (セキュリティ) Instance NAT gateway

Slide 44

Slide 44 text

5.Gateway Load Balancerのお話 44 ◼ Gateway Load Balancerの概要 そういった問題に対しての答えがGWLBかもしれません。 ドキュメント読んで概要を考えているのですが、正直さっぱりです。 どういった通信の流れが実現できるかを図解で説明していきます。 その流れがわかると、何のために設置するか、どんなことができそうか、という イメージにつながるかと思います。

Slide 45

Slide 45 text

5.Gateway Load Balancerのお話 45 ◼ Gateway Load Balancerの概要 パートナー企業はwebに公開されていますので、よければチェックください。 GWLBを活⽤したソリューションやその構成例などが確認できます。 https://aws.amazon.com/jp/about-aws/whats-new/2020/11/introducing-aws-gateway-load-balancer/ ドキュメント抜粋

Slide 46

Slide 46 text

5.Gateway Load Balancerのお話 46 ◼ Gateway Load Balancerの図解 引用: Gateway Load Balancer の開始⽅法

Slide 47

Slide 47 text

5.Gateway Load Balancerのお話 47 ◼ Gateway Load Balancerの図解 引用: Introducing AWS Gateway Load Balancer

Slide 48

Slide 48 text

6. Gateway Load Balancerの通信デモ 48

Slide 49

Slide 49 text

6.Gateway Load Balancerの通信デモ 49 ◼ Gateway Load Balancerの通信デモ デモ環境を⽤意しましたので、以下のポイントを見ていきます。 ・VPCの関係 ・サブネットの構成 ・ルーティング ・エンドポイント ・外側からのアクセスの可視化 ・内側からのアクセスの可視化

Slide 50

Slide 50 text

Private subnet Public subnet Private Public 6.Gateway Load Balancerの通信デモ 50 ◼ Gateway Load Balancerの通信デモ 今回⽤意した構成 VPC Private subnet Public subnet Instance (セキュリティ) Application Load Balancer Instance VPC Private Public Public subnet Gateway Load Balancer Endpoints Internet gateway Internet gateway NAT gateway NAT gateway 10.0.0.0/16 10.1.0.0/16 10.1.0.0/24 10.0.0.0/24 10.1.10.0/24 10.0.10.0/24 10.1.21.0/24

Slide 51

Slide 51 text

Private subnet Public subnet Private Public 6.Gateway Load Balancerの通信デモ 51 ◼ Gateway Load Balancerの通信デモ 今回⽤意した構成 VPC Private subnet Public subnet Instance (セキュリティ) Application Load Balancer Instance VPC Private Public Public subnet Gateway Load Balancer Endpoints Internet gateway Internet gateway NAT gateway NAT gateway 10.0.0.0/16 10.1.0.0/16 10.1.0.0/24 10.0.0.0/24 10.1.10.0/24 10.0.10.0/24 10.1.21.0/24 送信先 ターゲット 10.1.0.0/16 Local 10.1.10.0/24 GWLB-Endpoint 送信先 ターゲット 10.1.0.0/16 Local 0.0.0.0/0 GWLB-Endpoint

Slide 52

Slide 52 text

Private subnet Public subnet Private Public 6.Gateway Load Balancerの通信デモ 52 ◼ Gateway Load Balancerの通信デモ 今回⽤意した構成 VPC Private subnet Public subnet Instance (セキュリティ) Application Load Balancer Instance VPC Private Public Public subnet Gateway Load Balancer Endpoints Internet gateway Internet gateway NAT gateway NAT gateway 10.0.0.0/16 10.1.0.0/16 10.1.0.0/24 10.0.0.0/24 10.1.10.0/24 10.0.10.0/24 10.1.21.0/24 1 2 3 4 5 6 7 8

Slide 53

Slide 53 text

Private subnet Public subnet Private Public 6.Gateway Load Balancerの通信デモ 53 ◼ Gateway Load Balancerの通信デモ 今回⽤意した構成 VPC Private subnet Public subnet Instance (セキュリティ) Application Load Balancer Instance VPC Private Public Public subnet Gateway Load Balancer Endpoints Internet gateway Internet gateway NAT gateway NAT gateway 10.0.0.0/16 10.1.0.0/16 10.1.0.0/24 10.0.0.0/24 10.1.10.0/24 10.0.10.0/24 10.1.21.0/24 8 7 6 5 4 3 2 1

Slide 54

Slide 54 text

7. 質疑応答 54

Slide 55

Slide 55 text

x. 付録 55

Slide 56

Slide 56 text

x.付録 56 ◼ 制限情報 サービスクォータから確認が可能です。 リスナーの数くらいが制限に かかるかもしれませんね。 参照:https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html

Slide 57

Slide 57 text

中途向け会社説明会 57 「アイレットってどんな会社?」「cloudpackって具体的にどんな事業なの?」 「オフィス環境は?」「これまでの経験を活かせそう?」など、 少しでも興味がある方は、ぜひお気軽にご参加ください。

Slide 58

Slide 58 text

58