日本語 English
インターステラ株式会社の技術ブログです

Amazon Elastic Load Balancingで固定IPアドレスを使用する

こんにちは、阿形です。

今回はAWSでロードバランサーを固定IPアドレスにして使用する方法を検討します。通常、AWSのロードバランサー、Elastic Load BalancingではIPを固定して使うことができません。これだと、セキュリティの要件で接続先をIPで制限したいといった場合に不便です。(実際に、医療系のシステムにおいて接続先を制限しているので固定IPアドレスにしてほしいと言われ困ったことがあります。)

以前はこれに対処するのが難しかったのですが、ここ最近のアップデートで簡単に対応できるようになってきています。方法として以下の2つがあります。

Network Load Balancerを使用する

Network Load Balancer(NLB)を使用する方法はシンプルです。単純にLoad BalancerにNLBを使用するだけです。
ですが、NLBではALBが持っているようなWebに適した機能を使用することができません。Webで使用するときにはNLBとALBを組み合わせる必要があります。
以前はこれができなかったので、対応が難しくなっていましたが、今はNLBの後段にALBを配置できるようになったので、非常に簡単に設定できるようになりました。

Global Acceleratorと組み合わせて使用する

Global Acceleratorとは、クライアントからのアクセスを最寄りのAWSのエッジに誘導し、インターネットを経由する部分を最小限にし、高速なAWSのネットワークを使用してアクセスを高速化する仕組みです。

本来の目的はアクセスの高速化ですが、この機能のために固定IPアドレスを持つようになっていますので、これを利用します。こちらも単体で使用するものではなく、ALBと組み合わせて使用します。

メリット・デメリット

IPアドレスを固定できる以外のメリット・デメリットをまとめます。

メリットデメリット
NLBGlobal Acceleratorより安価特になし
Global Accelerator最寄りのエッジからAWSネットワークに入るため低レイテンシー・高速
リージョン間フェイルオーバーも可能
NLBよりやや費用がかかる

いずれにしても固定IPアドレスの実現という点で言えばあまり差はありません。

高速アクセスやリージョン間フェイルオーバーが必要な場合のみGlobal Acceleratorの方を使用するメリットがあります。ただし、高速アクセスはあくまでもクライアントとサーバーが地理的、ネットワーク的に大きく離れている場合にしか効果はありません。

例えばサーバーが東京リージョンにしかなくアクセスも日本国内がほとんど、といった場合にはあまり効果はありません。実際に試してみましたが、サーバー、クライアントともに日本国内の場合、Global Acceleratorを使用しないほうが高速な場合もありました。

この点から、アクセス特性に応じてNLB、Global Acceleratorのいずれを使用するか判断するのが良いと思います。

今回はそれぞれのメリット・デメリットを検討しましたが、次回は実際の設定を見てみようと思います。

SNSでフォローする