こんにちは、パートナーソリューションアーキテクト(PSA)の相澤です。
先日開催致しました AWS Black Belt Online Seminar 「ELB Update - Network Load Balancer (NLB) と関連サービス」の資料を公開いたしました。
当日参加者の皆様から頂いたQAの回答と併せてご紹介致します。
今後のAWS Black Belt Online Seminarのスケジュールは こちら です。皆様のご参加をお待ちしております。
過去の資料や、動画もこちらから視聴可能ですので、そちらもご参照ください
--------------------------
Q1. CLBは今後非推奨になりますか?
A1. いいえ、ALB,NLBで当てはまらないユースケースもありますので、CLBは非推奨とはなりません。多くのケースでは
ALB,NLBを使ったほうが機能面やコスト、効率が良いため、ALB,NLBを優先的にご案内しています。
Q2. CLBからの移行の際にNLBにして、DNS名が引き継ぐことはできますか?
A2. いいえ、publicで割り当てられるDNS名は引き継げません、しかし、Route53でエイリアスレコードを定義すればRoute53側で引き継ぐことは可能です。
Q3. 長時間セッションとはどの程度の長さなのでしょうか。
A3. 一般的にTCPセッションでは数十秒で終了するものがほとんどですので、それ以上のものを長時間セッションとしています。NLBでは350秒でアイドルタイムアウトが発生するため、通信が無い状態でそれより長いセッションを維持するためにはアプリケーション側でHello Packetを送るなどの対応が必要です。
http://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#connection-idle-timeout
Q4. 自動割り当てされたIPアドレスはElasticIPの扱いでしょうか?(PublicIP?)。NLBを削除した場合に残りますか?
A4. Public IPアドレス扱いになります。NLBを削除した場合には消去されます。引き続いてお使い頂く場合にはElastic IPをご検討ください。
Q5. CLB(External)→WAF(Imperva)→NLB(Internal)→EC2 という構成の場合、EC2のセキュリティグループはどこまで開ける必要がありますか?
A5. ImpervaがProxyとして動作をしますので、ImpervaのアドレスまたはSecurity Groupに対して開ける必要があります。
Q6. 古い世代のInstanceTypeのIPアドレスを指定することはできないのでしょうか?
A6. いいえ、IPターゲットにすることで指定可能です。
Q7. AWSWAFのWebaclにNLBは適用可能でしょうか?
A7.現時点ではALBのみの対応となっております。http://docs.aws.amazon.com/waf/latest/developerguide/web-acl-working-with.html
Q8. NLBがAZ毎に配置されることから、NLBのSticky機能を使っても、DNSでどちらのAZに振られるかわからないので、結果的に、クライアントからのアクセスをクラスタ中の一つのノードにStickさせることは、出来ないという理解で合っていますでしょうか?
A8. アプリケーションの作り方によります。getaddrinfo()で同一AZのIPアドレスを選択するようにすればStickさせることができます。
Q9. NLBの動的ポートマッピング機能はALBでも同様の機能があると理解しています。ALBとNLBを使い分けるポイントがあれば教えてください。
A9. WAFとの連携や、細かく文字列やブラウザなどで振り分けをする場合にはALB,単純に高速にL4動作させる場合にはNLBをご検討ください。
Q10. NLBにセキュリティグループを設定できないということですが、ターゲット側に通信を許可するにはIP指定でポート解放が解決方法ですか?
A10. はい、IP指定でポートを開放する方法で対応いたします。
Q11. NLBを利用してFTPサーバの冗長構成等は可能でしょうか?
A11. Passiveモードかつ1024番ポート以降を開ければ理論的には可能ですが、現実的ではありません。
Q12. インターナルNLBのときにVPCピア接続先からもみたいケースがあるのですが、サポートされる予定はなさそうでしょうか。
A12. PrivateLink でサポートいたしました。https://aws.amazon.com/jp/blogs/news/aws-privatelink-update-vpc-endpoints-for-your-own-applications-services/
Q13. RoundRobbinやPersistenceなどは、設定できるのでしょうか?
A13. いいえ、他のELB同様、設定できません。その場合はマーケットプレイスから上記機能をサポートしたロードバランサーを選択してご利用ください。
Q14. バックエンドのSecurityGroupのインバウンドには、クライアント側だけでなく、NLBのEIPも許可する必要はありますか。
A14. いいえ、クライアント側のIPのみ許可が必要です。
Q15. NLBを使用する場合、旧CLBのときに設定が必要だったターゲットのSecurityGroup(From ロードバランサ)は必要になるのでしょうか?
A15. 不要です。
Q16. 暖機なしにスパイクに対応可能、というのは、どういう仕組み(制御)なのでしょうか。CLB,ALBでは暖機必要だったのが、どうしてNBLだとできるのだろう、という疑問です。もしOKでしたら概要を教えていただきたいです。
A16. Re:Inventで発表がありましたので、こちらをご参照ください。AWS re:invent 2017: Deep Dive into the New Network Load Balancer (NET304) https://www.youtube.com/watch?v=z0FBGIT1Ub4
Q17. 新機能であれですが、CLBで今すぐ移行を押して移行した場合、DNS名はどうなりますか?Route53の方でAレコードのAlias設定している場合はどうなりますか?
A17. DNS名はALB,NLBのものに変更されます。そのままCLBは残りますので、Route53でAレコードをALB,NLBのもの変更し、確認が終わったらCLBを削除します。
Q18. NLBの送信SecurityGroup(ターゲットへ)は設定必要でしょうか?
A18. NLBにはセキュリティグループがないので、送信側のSecurityGroupは設定できません。
Q19. コストメリット以外にCLBからALB、NLBに移行すべき理由はありますか
A19. ALBではWebSocket,HTTP/2,パスベースのルーティングなど豊富な機能があります。NLBでは高速な処理と固定IPの設定ができる点が移行するメリットです。
Q20. Targetから見ると直接クライアントから来たパケットとNLB経由で来たパケットが区別できないということでしょうか?
A20. 区別できます。Proxy Protocolに対応しておりますので対応しているアプリケーションであれば区別可能です。
http://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol
Q21. ElasticBeanstalkでもCLB→NLB移行ツールは用意されていますか?
A21.移行ツールはありませんが、NLBは利用できます。
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-nlb.html
Q22. NLBが利用できるリージョンは全てのリージョンですか?
A22. はい、China(Beijing)以外の商用リージョンの全てで利用可能です。
Q23. NLBとALBを複数利用して、同じインスタンスをぶら下げるような使い方は可能なんでしょうか?
A23. はい、可能です。移行ウィザードでは並行利用をしています。
Q24. CLBからの移行ウィザード実行時のリスクについて教えて下さい
A24. CLBで対応していてNLBで対応していないものは設定から落ちることがあります。ウィザードでも警告されますし並行で運用できますので、そちらで確認することができます。
Q25. NLBの固定IPのままスケールするのはどういう仕組みですか?
A25. AWS Hyperplaneテクノロジーを使用しています。
Q26. NLBはシングルAZ向けに設計されているようですがAWSの思想的にはシングルAZは非推奨ではないのですか?
A26. もちろんマルチAZは推奨となります。マルチリージョンを利用して冗長性を担保されているお客様向けに選択肢をご用意いたしました。
Q27. NLBの性能の高さはCLB/ALBと比較して処理割り合いが少ない事が根本的な要因でしょうか
A27. re:Inventで発表された Hyperplaneテクノロジーを使っているためです。
以上です。