AWSのELBとは
クラウドサービスで誰もが知るAWSには、高い評価を得る優れた様々なサービスがあります。今回はその中から、ロードバランシングサービスの「AWS ELB」について解説します。
一般のユーザが頻繁に利用するWebサービスでは、その停止や遅延がユーザに大きな支障を及ぼすだけではなく、サービスの信頼を損ね、ブランドイメージを毀損するリスクを伴います。そのため、特にWebサービスではWebサーバの負荷分散の対応は不可欠です。
この負荷分散はロードバランシグと呼ばれ、ロードバランシングの機能を持つ仕組みや機器をロードバランサと言います。この記事では、AWSのロードバランシングサービスであるAWS ELBについて、概要やメリット、料金などについて解説します。
【参考】:Elastic Load Balancing(複数のターゲットにわたる着信トラフィックの分配)| AWS
ロードバランサとは
ロードバランサ(Load Balancer)は日本語では負荷分散装置とも呼ばれ、わかりやすく言えば、サーバに対するアクセスの集中を防ぎ、サーバの安定稼働を支援することを目的とする装置や仕組みのことです。
ロードバランサは外部からの通信を複数のサーバに振り分け、1つのサーバにアクセスが集中するのを防ぎます。Webサービスに対するアクセスが集中していても、ロードバランサのおかげでユーザは安定したサービスの提供を受けることができます。
ロードバランサの機能とは
ロードバランサの主な機能は負荷分散ですが、それ以外にも様々な機能があります。ローザバランサの有効活用を行うには、負荷分散以外の機能についても理解しておくことが重要です。
■ 負荷分散
ロードバランサの負荷分散には、Round Robin(ラウンドロビン)と最小コネクションの2種類の方式があります。
「Round Robin」は順繰りという意味があり、複数のサーバに対して順繰りにアクセスを振り分けていくというシンプルな方式です。「最小コネクション」は最小接続数コネクションの状況を見ながら、コネクション数が最も少ないサーバに対して振り分けていきます。
■ セッション維持
同一利用者からのアクセスをIPアドレスで判断し、同一サーバに振り分ける機能です。例えば、ECサイトでは、買い物から決済処理までの一連の流れが途切れないように同じサーバに接続させておく必要がありますので、この機能が有効に働きます。
■ 障害監視
サーバの稼働状態を常にモニタリングし、サーバの障害を検知すると、当該サーバへのアクセスを止め、他のサーバにアクセスを切り替える機能です。これにより、1つのサーバで障害が発生してもサービスを継続させることができます。
■ メンテナンス時の無停止
サーバのメンテナンス時に、メンテナンスを行うサーバへのアクセスを遮断し、メンテナンスを行うことが可能です。メンテナンス中は他のサーバでサービスの提供を行いますので、ユーザへの影響はありません。
AWS ELBの概要
AWS ELBはAWSが提供するロードバランシングサービスの総称であり、ELBには4つの種類があります。利用する目的に応じたサービスの選択が求められます。
【参考】:特徴 - Elastic Load Balancing | AWS
ALB(Application Load Balancer )
ALBは、アプリケーション層(レイヤ7のHTTPプロトコル)への対応を強化した単一のロードバランサです。URLごとにサーバへの通信トラフィックをを振り分けることが可能で、旧来のCLBと 比較して、よりキメの細かい設定を行うことができます。
ALBはアベイラビリティゾーンにまたがって対応することができ、高いレベルの耐障害性を担保しています。しかもALB自体のスケーラビリティは優れており、キャパシティを自動的に増減する機能が備わり、可用性の面においても優れています。WebサービスではALBが最も多く利用されています。
【参考】:Application Load Balancer とは? | Elastic Load Balancing
NLB(Network Load Balancer)
NLBはトランスポート層のレイヤ4で機能します。TCPやUDP、TLSなどのトラフィックを負荷分散し、高パフォーマンスでローレイテンシ(低遅延)の維持が可能です。アクセス数が大きなサービスやアプリケーションではNLBの利用を推奨します。
【参考】:Network Load Balancer とは?| Elastic Load Balancing
GLB(Gateway Load Balancer)
AWS ELBの比較的新しいサービスで、2021年にリリースされました。GLBはALBやNLBはサーバやアプリケーション用のロードバランシング機能ですが、GLBは機能が異なり、AWS上のファイアウォールなど、仮想アプライアンス製品のデプロイやスケーリング、管理を行うサービスです。
対象となるVPCにGLBエンドポイントを設置することで、GLBにトラフィックを経由させることが可能で、セキュリティアプライアンスを新たに導入する場合でも、高可用性と拡張性が確保されます。
【参考】:AWS Gateway Load Balancer のご紹介 |パートナーアプライアンスの簡単なデプロイ、スケーラビリティ、高可用性 | Amazon Web Services ブログ
CLB(Classic Load Balancer)
CLBはAWS ELBの前身となるサービスです。CLBは複雑な設定は行えない、シンプルな旧式のロードバランサです。まだ利用中のユーザのために、サービスとして残されていましたが、EC2-Classic ネットワークの廃止に伴い、EC2-Classic ネットワークの利用者はALBもしくはNLBへの移行が求められていました。
【参考】:Classic Load Balancer の移行 | Elastic Load Balancing
AWS ELBのメリット
AWS ELBを利用することで、様々なメリットが期待できます。ここでは、AWS ELBのメリットについて挙げていきます。
負荷分散による可用性、信頼性向上
AWS ELBにより自動的にトラフィックの負荷分散が行われ、システムの可用性や信頼性が向上します。またELB自体のキャパシティも負荷によって自動的に増減するため、利用者側では ELBの増減やスペックを気にする必要はありません。
問題点の早期発見と早期対処
AWS ELBはリアルタイムでサーバやアプリケーションをモニタリングしています。これにより、処理状況やパフォーマンスを即時に把握でき、問題点の早期発見と早期対処が行えます。
柔軟性の確保
AWS ELBではトラフィック量の増減に合わせて自動的にスケーリングが行われます。シーズンや時間、イベントなどによるトラフィックの急増にも自動的に対処されるため、手動でのELB追加設定などは不要です。さらにAWS Auto Scalingと組み合わせることで、サーバ自体の増減も可能です。
【参考】:AWS Auto Scaling(需要に合わせて複数のリソースをスケール)| AWS
高セキュリティの確保
AWS ELBは元々セキュリティ面で優れたAWS VPC(Visual Private Cloud)の中にあり、不要なトラフィックは排除されます。またELBではSSLの設定が行えます。無料のSSL証明書を利用することで、より強固なセキュリティ環境の実現が行えます。
高いコストパフォーマンス
AWS ELBは利用量に応じた従量制課金です。初期投資は不要、初期のトラフィックが少ない段階では課金は低く抑えられます。またハードウェアのロードバランサでは設置場所が必要で、維持管理に関わるコスト、減価償却費なども掛かりますが、ELBではこうしたコストが不要です。
また、EBSはオンプレミスを含めた範囲まで適用が可能なため、余分な投資が不要となる点も見逃せないポイントです。このように全体としてコストパフォーマンスの高いサービスとなっています。
AWS ELBの料金
AWS ELBは利用目的によって、利用するサービスは異なりますが、各サービスの基本は利用実績に応じた従量制課金です。無料利用枠を用いて試用することもできます。料金シミュレーションもできますので、しっかりシミュレーションを行ってから利用するようにしましょう。
AWS ELBの料金体系
AWS ELB はサービスの種類によっても利用料金が異なります。ALB、NLB、GLBの料金体系を比較しておきます。
【参考】:料金 - Elastic Load Balancing | AWS
【参照】:AWS 料金見積りツール
■ LCU(Load Balancer Capacity Units)とは
AWS ALBでは最も多く使われるALBの使用量の単位のことです。NLBではNLCU、GLBではGLCUを課金単位として用います。
■ AWS 無料利用枠
AWS ELBはAWSの無料利用枠を利用できます。ALBの場合、新規の AWSユーザは月間 750時間、15 LCUが無償で提供されます。
■ 1:ALBの利用料金
AWS ALBの利用料金は「実行時間」と「時間ごとのLCU(ロードバランサキャパシティ)によって課金されます。
▪実行時間:1時間単位、ただし1時間未満は1時間としてカウントされます。
『料金の計算例』(料金計算ツール)
・10 新しい接続数/秒 / 25 LCU あたりの新しい接続数/秒 = 0.40 新しい接続の LCU
・10 新しい接続数/秒 x 1 秒 = 10 アクティブ接続
・10 アクティブ接続 / 3000 LCU あたりの接続数 = 0.0033333333333333335 アクティブ接続の LCU
・Max (0 USD, 0 USD) = 0.00 1 リクエストあたりの有料ルール
・Max (0 処理されたバイト数の LCU, 0.4 新しい接続の LCU, 0.0033333333333333335 アクティブ接続の ・LCU, 0 ルール評価の LCU) = 0.40 最大 LCU
・1 ロードバランサー x 0.40 LCU x 0.008 LCU 料金/時間 x 730 時間/月 = 2.34 USD
・Application Load Balancer LCU の使用料金 (毎月): 2.34 USD
・Application Load Balancer の固定時間料金 (毎月): 17.74 USD
・月間合計:20.08 USD
■ 2:NLBの利用料金
▪AWS NLBの利用料金は「実行時間」と「時間ごとのNLCU(ネットワークロードバランサキャパシティ)によって課金されます。
▪実行時間:1時間単位、ただし1時間未満は1時間としてカウントされます。
■ 3:GLBの利用料金
▪AWS NLBの利用料金は「実行時間」と「時間ごとのGLCU(ゲートウェイロードバランサキャパシティ)によって課金されます。
▪実行時間:1時間単位、ただし1時間未満は1時間としてカウントされます。
AWS ELBを有効に活用しよう
この記事では、ロードバランサの機能、AWS ELBの概要、メリットや料金について解説しました。AWS ELBはトラフィックの増大により処理遅延やサーバダウンを防ぎ、サービスの安定供給を行うためには必須の機能だと分かりました。
またELBの1サービスである、GLBを利用することで、セキュリティアプライアンスの導入を容易に行えることも理解できたと思います。AWS ELBから自社に適したサービスを選択し、自社のシステムやサービスの品質向上にぜひ役立ててみましょう。