
AWS入門 初心者が覚えておくべきAWSの基本
AWSでは、AWS ELBというロードバランサーが提供されています。ロードバランサーは集中するトラフィックを分散し、サービスの稼働を安定させるものです。ロードバランサーにより、クラウドサービスの特徴である柔軟性や高可用性をより高いレベルで実現できます。ここでは、AWS ELBの機能や種類について説明します。
AWS ELBはAWS Elastic Load Balancingの略で、ほかのサービスへのトラフィックを、仮想サーバーなどの、複数のターゲットに自動的に分散し、安定稼働をサポートするサービスです。複数のサーバーへの負荷を均一化し、障害に対する耐性を高めます。
AWS ELBには、次のような機能があります。
AWS ELBで複数のサーバーにアクセストラフィックを分散させることで、アクセス集中によるサーバーダウンを防ぎます。それによって、処理速度の向上や、高い可用性の維持が期待できます。
メンテナンスや障害発生時の前に、AWS ELBの設定を行うことにより、メンテナンス対象や障害が発生しているサーバーへのリクエストのみを停止することができ、サービスの全停止を回避することも可能です。(ただし、サーバー構成・サーバー上の適切なアプリケーションの配置や実装が前提です。)これにより対象サーバーはリクエストが無い状態ですので、メンテナンスや障害対応に集中した作業ができます。
AWS ELBは、常にリクエストをトレースし、接続しているサーバーをモニタリングしています。それによって、リアルタイムにアプリケーションのヘルスチェックが可能です。異常な動作を検知した場合は、そのサーバーを切り離し、トラフィックをほかのサーバーに分散するので、アプリケーションの安定稼働が維持されます。
AWS ELBでは、ロードバランサーと関連するセキュリティグループを作成して、セキュリティを強化できます。これには、Amazon Virtual Private Cloud(Amazon VPC)が必要です。またSSLの証明書や設定も集中管理しています。
AWS ELBには、3種類のロードバランサーがあります。目的に応じて最適なロードバランサーを選びましょう。
AWS ELBのうち、最新で最も高機能なロードバランサーです。基本的には、Application Load Balancerを使用することが推奨されています。
HTTPトラフィックおよびHTTPSトラフィックの負荷分散、柔軟なアプリケーション管理が必要な場合に向いているロードバランサーです。
リクエストレベル(レイヤー7)で動作しており、マイクロサービスやコンテナなど、最新のアプリケーションアーキテクチャにも対応しています。
毎秒数百万のリクエスト処理が可能で、高度なパフォーマンスが必要な場合に使用します。突発的なトラフィックや急激に変化するトラフィックにも対応可能です。
静的IPがアプリケーションで必要な場合にも、Network Load Balancerを使用しましょう。
接続レベル(レイヤー4)で動作しており、TCP/UDP/TLSのトラフィックの負荷分散にも向いています。
複数のAmazon EC2インスタンスにおける基本的な負荷分散を行う、基本的なロードバランサーです。EC2 Classicネットワーク内で構築された既存のアプリケーションがある場合は、Classic Load Balancerを使用しなくてはなりません。
リクエストレベル(レイヤー7)と接続レベル(レイヤー4)の両方で動作しています。Amazon VPCを使用する場合は、Application Load BalancerもしくはNetwork Load Balancer を使用しましょう。
AWS ELBの料金は従量制で、使用した分のみ支払います。最低料金や初期費用は不要です。無料利用枠もありません。料金は、使用するロードバランサー、およびリージョンにより異なるので、注意が必要です。
料金が発生するものは次の2つです。
AWS ELBを使用するために必要な設定について見ていきましょう。
通常は、AWS ELBを設定する前に、分散アクセスを前提としたサーバー(複数台)構成を用意しておきます。ただし、例えばアプリケーションサーバーが1台の場合でも、メンテナンスやヘルスチェック、SSL証明書導入などの面でメリットがあります。詳細は後述いたします。
AWS Command Line Interface(CLI)か、またはAWSマネジメントコンソールからロードバランサーを作成します。
ロードバランサーの名前とネットワーク、ヘルスチェックのパスや動作などを設定します。
ロードバランサーにターゲットを登録します。
方法のひとつは、アプリケーションサーバーをターゲットグループに手動で登録してターゲットグループをロードバランサーに登録することです。もうひとつ、すでにターゲットグループに登録されているオートスケーリンググループにロードバランサーを関連付ける方法があります。
ヘルスチェックでロードバランサーの動作確認を行います。
AWS ELBは、さまざまなAWSのサービスと連携して、より高度な機能を実現できます。特に、次のようなサービスとよく連携しています。
Amazon CloudWatchは、AWSのリソースや、そこで実行されているアプリケーションをリアルタイムに監視するサービスです。Amazon CloudWatchでELBの動作をモニタリングし、システムが正常に稼働しているか確認できます。
Amazon Route53はDNSサービスです。AWS ELBは、Network Load Balancer以外ではグローバルIPアドレスを使用できません。しかし、Amazon Route53と組み合わせ、AWS ELBを指定するエイリアスを作成することで、独自ドメインでもAWS ELBを使うことができます。
AWS Auto Scalingは、複数のサービスを自動的にスケーリングする機能です。AWS ELBと組み合わせることで、負荷に応じて自動的にAmazon EC2の台数を増減できます。
AWS ELBのメリットとデメリットについて解説します。
AWS ELBを導入することで、次のようなメリットがあります。
AWS ELBは、トラフィックを複数のターゲットに分散することで、負荷を分散し、システムとしての可用性、耐障害性、信頼性などを高めます。クラウドだけでなく、オンプレミスサーバー上のAWSリソースの負荷分散を実行するハイブリッド負荷分散も可能です。
AWS ELBは、常にアプリケーションをモニタリングしています。リアルタイムでモニタリングすることで、パフォーマンスを詳細に把握し、問題を早期に発見して対処することが可能です。また、正常稼働しているターゲットだけでトラフィックを分散することができます。
AWS ELBは、トラフィックの増加に応じて自動的にスケーリングし、トラフィックの急激な増大にも耐えられます。トラフィックの量に合わせて、手動でAWS ELBの追加設定の必要はありません。キャンペーンやイベントなどで急激なトラフィック増加が見込まれる場合、AWS Auto Scalingと組み合わせれば、トラフィックに合わせてサーバーの増減も可能です。
AWS ELBを使うと、SSLを設定してSSL証明書や設定を集中管理してセキュリティを強化できます。SSL証明書は無料で利用可能です。また、DDoS攻撃に備えたAWS Shield Standardも用意されています。
AWS ELBの機能はすべてAWS マネジメントコンソールの画面から一括して管理可能で、運用が容易です。
AWS ELBのDNSには、独自ドメインを設定可能です。ただし固定IPアドレスを使う場合には、AWSのDNSサービスであるAmazon Route 53が必要です。
AWS ELBの料金は、利用した分だけ支払う従量制です。初期費用や最低料金などはかからず、必要な分だけ利用できます。そのため、ハードウェアのロードバランサーや月額料金で計算されるタイプのロードバランサーよりも低コストで利用できる場合も多いです。さらに、ハードウェアのロードバランサーのような維持管理のコストや人手は不要です。
AWS ELBを導入した場合のデメリットも把握しておきましょう。
ただし、利用量の制限はElastic Load Balancing 制限フォームから引き上げのリクエストが可能です。
サーバーが1台しかなくても、AWS ELBを使用することができます。AWS ELBの利用には、いくつものメリットがあります。
メンテナンスや障害対応を行う場合、インスタンスを操作しやすくなります。あらかじめAmazon Machine Image(AMI)で別なインスタンスを用意し、ロードバランサーで切り替えておけば、ユーザーに影響を与えずにメンテナンスが可能です。
AWS ELBは常にサーバーのモニタリングを行っているので、トラブルや障害があったときにも早期に発見できます。
AWS ELBを導入すれば、SSL証明書を無料で利用でき、Webサイトのセキュリティを強化できます。
ロードバランサーといえば「膨大なアクセスのある大きなWebサービスが利用するもの」とイメージされるかもしれません。しかし、AWSでWebサービスを提供するときにはAWS ELBを使用すれば低コストで高機能なロードバランサーを実装できます。AWSを使ってビジネス用途で安定したWebサービスを提供するなら、AWS ELBの導入を検討してみてはいかがでしょうか。
クラウド上のトラフィック最適化と
よく一緒に検討されるクラウドへの接続方法についてはこちら。
クラウド運用に興味がある人に読んで欲しいコラム: