「わたしと仕事、どっちが大事なの?」
「チョコ味といちご味、どっちが好き?」
「こっちのレジとあっちのレジ、どっちがすいてる?」
記録的な猛暑の中、争いながら萎れてる僕らは人間は どうしてこうも比べたがるのでしょう?
かく言う自分も、夏の日差しに溶けながら、こんなことを思ったのでした。
「ELBって、ALBとNLBとCLBって何が違うの?」
AWSが提供している比較表
Elastic Load Balancing 製品詳細 というページの
「Elastic Load Balancing 製品の比較」という項目内に比較表が掲載されています。
これをみると、ELBの機能比較がひと目でわかります。
これで済ますと、ブログが終わってしまうので、特にNLBについて、上記の表に、6点ほど記載項目の補足事項を記載してみました。(2018年7月時点の仕様をベースにしています。)
補足事項の説明
※1 アクセスログ出力は非対応
ALBとCLBは、アクセスログをS3バケットに出力することができますが、NLBはアクセスログの出力に対応していません。表中の「ログ」は、VPC フローログとCloudTrail ログを意味しているものと思われます。
※2 IPアドレスでのターゲット設定時は、ソースIPアドレスの保持は無効となる/※5 インスタンスでのターゲット設定時に限る
NLBは、ターゲットグループの設定方法によって、ターゲットグループ内のノードに到達するパケットのソースIPアドレスが変わります。
ターゲットグループの設定をインスタンスIDで行った場合
ターゲットグループ内のノードに到達するパケットのソースIPアドレスは、クライアントのIPアドレスになります。
ターゲットグループの設定をIPで行った場合
ターゲットグループ内のノードに到達するパケットのソースIPアドレスは、NLBのIPアドレスになります。
※3 作成時に指定することは不可。作成時に自動付与されたものが維持される
NLBに付与されるIPアドレスは、静的IPアドレスです。ただし、後述のElastic IP アドレスを指定しない限り、Private IPアドレスや、Public IPアドレスを特定のものを指定することはできません。NLB作成時に自動付与されたIPアドレスが維持され静的IPとなります。
※6 Internet Facingの場合、ターゲットのインスタンスは、0.0.0.0/0宛としてインターネットへの経路を保持しておかなければならない
NLBをInternet Facing構成で使う場合、ターゲットグループ内のEC2インスタンスは、Internet Gatewayや、NAT Gatewayもしくはパブリックサブネットの EC2 インスタンスへのルートを 0.0.0.0/0 と指定しておく必要があります。
と、ここまで書いて思い出しましたが、セキュリティグループの付与が、NLBにはできない点も、重要な比較ポイントでした。
まとめ
NLBについて、比較表内の補足事項を記載してみましたが、今後の機能追加や仕様変更で、上記内容が変更する可能性もありますので、ご注意ください。