AWSのNLBとは
AWSのNLBとは、通信の負荷分散をするロードバランサーというサービスの1つです。AWSではElastic Load Balancing(ELB)というサービスでロードバランスの機能を提供していますが、ELBではその中で4種類のロードバランサーを提供しており、その中の1種類がNLBです。
ELBでは、アプリケーションの用途にあわせて、ロードバランサーの種類を選択できます。そのため、これからAWSを利用してアプリケーションを作る方は、ELBで提供されているロードバランサーの種類やNLBの概要、使い方などを確認する必要があります。
ちなみに、ロードバランサーのサービスはGCPなどAWS以外でも提供されているサービスではありますが、本記事ではAWSのロードバランサーに着目して解説します。AWSでこれからサービスを構築しようと考えている方は、ぜひ本記事を参考にしてください。
【参考】:AWS公式 ロードバランサーについて
【参考】:AWS公式 NLBについて
AWSのロードバランサーは4種類あり、特徴が異なる
前述の通り、AWSには「Application Load Balancer (ALB) 」「Network Load Balancer(NLB)」「Gateway Load Balancer(GLB)」「Classic Load Balancer(CLB)」のロードバランサーが存在しています。
その中でもNLBは、TCPとUDPの両方の負荷分散をしてくれるのが特徴です。また、その他のサービスは、NLBとは違う特徴を持ちます。ここからは、その他のサービスの特徴についても解説します。
AWS ALBの特徴
ALBは通信の負荷を分散する点ではNLBと同じですが、HTTPまたはHTTPSに特化して負荷分散をしています。そのため、HTTPまたはHTTPSに関する負荷分散をしたい場合には、ALBを利用しましょう。
【参考】:AWS公式 ALBについて
AWS CLBの特徴
CLBは、EC2-classicという旧サービスで使用されていたロードバランサーです。現在は基本的にNLBを使いますので、これからAWSでシステムなどを構築する方は、NLBや他のロードバランサーを利用することになるでしょう。
【参考】:AWS公式 CLBの移行について
AWS GLBの特徴
AWS NLBがUDPやTCPのプロトコルに対応していましたが、GLBはIPプロトコルに対応しています。このサービスは、サードパーティ製の仮想アプライアンスを利用する場合に利用します。
【参考】:AWS公式 ELBの機能の比較
【参考】:AWS公式 GLBについての質問
AWSのNLBの作成方法
ここからは、NLBの作成方法を解説します。NLBの作成をする際には、管理画面からログインして作業をする方法と、AWS CLIを利用する方法があります。
本記事では、管理画面からログインする流れを簡単に解説します。CLIを使ってNLBを作成したい方は公式サイトのチュートリアルを参考にしてください。
ターゲットグループを設定する
ターゲットグループは、コンソール画面のナビゲーションペインから選択できます。ターゲットグループの設定では、ターゲットグループ名の入力、プロトコルの選択、IPアドレスの選択などが決められます。その他、オプションとしてタグを追加したりポートの値を設定したりすることができます。
一通りターゲットグループの項目を選択し終えると、「次へ」ボタンが表示されターゲットの登録ができるようになりますので、まずはこれらの項目を設定しましょう。
【参考】:AWS公式 NLBの作成方法
ターゲットの登録をする
ターゲットグループを設定したら、次はターゲットを登録しましょう。ターゲットがインスタンスかIPアドレスか、ALBなのかによって選択できるものが異なります。
ターゲットがインスタンスの場合は、インスタンスとポートを選択できます。一方でIPアドレスの場合はIPアドレスとポートが入力可能です。ALBがターゲットの時は、ALBを選択するだけで作業は完了です。
【参考】:AWS公式 NLBの作成方法
ロードバランサーとリスナーの構成を設定する
ロードバランサーとリスナーは、コンソール画面のナビゲーションペインで選択できます。まず、ロードバランサーは「ロードバランサー」「ロード バランサーの作成」「ネットワーク ロード バランサー」の順で選択すれば作成が開始されます。
ロードバランサーの作成では名称やIPアドレスのタイプ、スキームを選択できます。さらに、その後のネットワークマッピングではサブネットの選択などができますので、ご自身の要件に合うものを選択しましょう。
リスナーの設定では、任意でプロトコルとポートの変更などができます。さらに、必要に応じてリスナーの追加もできるので、追加をしたい方はここで設定しましょう。
最後にオプションでタグの設定などもできますが、必要なければそのままでも結構です。構成を確認したらロードバランサーを作成することができます。
【参考】:AWS公式 NLBの作成方法
ロードバランサーをテストする
完成したロードバランサーは、きちんと動作しているかテストしましょう。ロードバランサーをテストするには、ロードバランサーのDNS名をブラウザのURLを入力する欄にコピー&ペーストをしてください。その後、サーバーのデフォルトのページが表示されているか確認します。
ちなみに、ロードバランサーが上手く動作できず、作成し直したい場合は1度ロードバランサーを削除することもできます。削除の詳しい方法については、公式サイトを参考にして下さい。
【参考】:AWS公式 NLBの削除について
AWSのNLBに関するよくある疑問
NLBについて理解が深まったところで、ここからはNLBに関する疑問について紹介します。何か疑問があればこちらも参考にしつつ、NLBを使用してみましょう。
NLBのアクセスログは取得できるか
NLBのアクセスログは、デフォルトでは無効になっています。アクセスログを取得したい場合は、ロードバランサーのアクセスログの作成を有効にする必要があります。
アクセスログが作成されるには、ロードバランサーにTLSリスナーがある場合など条件があります。また、アクセスログはAmazon S3に保存されますが、この際にはAWS KMSなどを使用して、保存する前に暗号化をすることも可能です。アクセスログを取得したい方は、公式サイトとご自身の設定を確認しましょう。
【参考】:AWS NLBのアクセスログについて
NLBにはリソースの制限があるか
こちらは、結論からいうと制限があります。AWSでは制限のことを現在は「クオータ」と呼んでおり、NLBのクオータを確認したい場合は「ServiceQuotas」のコンソール画面から確認できるようです。NLBのクオータについて詳細を知りたい方は、公式サイトを参考にしてください。
【参考】:AWS NLBのリソースの制限について
【参考】:AWS ServiceQuotas コンソール
ロードバランサーの種類を理解し、NLBを活用しよう
AWSのELBには、NLBを始めとした4つのロードバランサーがあることが分かりました。それぞれ特徴が異なりますので、NLBや他のサービスの特徴を理解したうえでNLBを作成してみましょう。
またNLBの作成はコンソール画面から簡単に作成することができます。コマンドを使い慣れていない方などは、画面上で作業が完結するのも非常に便利な点だといえます。アプリケーションを開発する方や、これからAWSでサービスを構築する方はぜひ本記事を参考にしてNLBを作成してみてください。