thumb_awsnlb_01

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を作成したい方は公式サイトのチュートリアルを参考にしてください。

【参考】:AWS公式 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を作成してみてください。