こんにちは、阿形です。
今回はAWSでロードバランサーを固定IPアドレスにして使用する方法を検討します。通常、AWSのロードバランサー、Elastic Load BalancingではIPを固定して使うことができません。これだと、セキュリティの要件で接続先をIPで制限したいといった場合に不便です。(実際に、医療系のシステムにおいて接続先を制限しているので固定IPアドレスにしてほしいと言われ困ったことがあります。)
以前はこれに対処するのが難しかったのですが、ここ最近のアップデートで簡単に対応できるようになってきています。方法として以下の2つがあります。
Network Load Balancer(NLB)を使用する方法はシンプルです。単純にLoad BalancerにNLBを使用するだけです。
ですが、NLBではALBが持っているようなWebに適した機能を使用することができません。Webで使用するときにはNLBとALBを組み合わせる必要があります。
以前はこれができなかったので、対応が難しくなっていましたが、今はNLBの後段にALBを配置できるようになったので、非常に簡単に設定できるようになりました。
Global Acceleratorとは、クライアントからのアクセスを最寄りのAWSのエッジに誘導し、インターネットを経由する部分を最小限にし、高速なAWSのネットワークを使用してアクセスを高速化する仕組みです。
本来の目的はアクセスの高速化ですが、この機能のために固定IPアドレスを持つようになっていますので、これを利用します。こちらも単体で使用するものではなく、ALBと組み合わせて使用します。
IPアドレスを固定できる以外のメリット・デメリットをまとめます。
メリット | デメリット | |
---|---|---|
NLB | Global Acceleratorより安価 | 特になし |
Global Accelerator | 最寄りのエッジからAWSネットワークに入るため低レイテンシー・高速 リージョン間フェイルオーバーも可能 | NLBよりやや費用がかかる |
いずれにしても固定IPアドレスの実現という点で言えばあまり差はありません。
高速アクセスやリージョン間フェイルオーバーが必要な場合のみGlobal Acceleratorの方を使用するメリットがあります。ただし、高速アクセスはあくまでもクライアントとサーバーが地理的、ネットワーク的に大きく離れている場合にしか効果はありません。
例えばサーバーが東京リージョンにしかなくアクセスも日本国内がほとんど、といった場合にはあまり効果はありません。実際に試してみましたが、サーバー、クライアントともに日本国内の場合、Global Acceleratorを使用しないほうが高速な場合もありました。
この点から、アクセス特性に応じてNLB、Global Acceleratorのいずれを使用するか判断するのが良いと思います。
今回はそれぞれのメリット・デメリットを検討しましたが、次回は実際の設定を見てみようと思います。
関連記事1:Amazon Elastic Load Balancingで固定IPアドレスを使用する – Global Acceleratorでの設定
関連記事2:Amazon Elastic Load Balancingで固定IPアドレスを使用する – NLBでの設定