動画配信やキャンペーン運用のシステムでは、短期間の集中的なアクセスを回避する安定性と高可用性が求められます。したがって、トラフィックの負荷分散のためにロードバランサーは必須の機能です。
この記事では、AWSのロードバランサーのひとつであるALBを取り上げ、オートスケーリングの重要性を解説するとともに、デジタルギフトのシステム構築と運用に関するユースケースを紹介します。
1. ALBとは?
ALBは「Application Load Balancer」の略であり、トラフィック負荷を分散させるために提供されているAWSのサービスです。AWSで提供されているロードバランサーの全体像を踏まえた上で特長とメリットを整理します。
1-1. AWSが提供するロードバランサー
AWSには、負荷分散サービスの総称としてELB(Elastic Load Balancing)があります。ELBは現在、CLB(Classic Load Balancer)、NLB(Network Load Balancer)、GWLB(Gateway Load Balancer)、そしてALBの4つのサービスで構成されています。
CLBはAWSの汎用型ロードバランサーです。HTTP/HTTPSおよび TCP/SSLのプロトコルに対応し、トランスポートレイヤー(以下、L4)とアプリケーションレイヤー(以下、L7)を対象に負荷分散を行います。AWSのサービスが提供された当初から備わっていた機能であり、かつてCLBがELBと呼ばれていました。複雑な設定には向かないデメリットがあります。
NLBは高速処理向けのロードバランサーです。L4に対応し、インスタンスからクライアントマシンへの帰りのレスポンス処理はロードバランサーを介さずに行います。一秒間に数百万件ものリクエストを処理する高スループット、低遅延を実現します。
GWLBは2021年5月に東京リージョンの対応が追加されたロードバランサーで、セキュリティ強化に役立ちます。不正なネットワークトラフィックの検査やブロックを行うサービスです。サードパーティのセキュリティ製品を連携する場合にシンプルなスケーリングと可用性を実現します。
ALBは、L7のHTTP/HTTPS プロトコル対応を強化した汎用型ロードバランサーです。URLごとにサーバーに対するリクエストを振り分ける設定が可能で、AWSではWebアプリケーションの負荷分散に最も利用されています。
1-2. ALBの特長
ALBの大きな特長は、アプリケーションのトラフィック負荷分散に特化していることです。既に解説したように旧型のCLBはL4とL7の両方を対象としていますが、ALBはL7に特化した詳細な設定を備えています。
アプリケーションに特化していることから、マイクロサービスやコンテナなどを対象とした設定が可能になります。ターゲットグループによって別々のサーバーを紐付けることにより、アプリケーションごとのロードバランサーが不要になります。
また、ホワイトリストを使って特定のIPアドレスを許可することも可能です。セキュリティ機能も充実しています。
1-3.ヘルスチェック
AWSのELBには、ヘルスチェックという機能があります。登録したターゲットに定期的にテストのためのリクエストを送信、エラーコードから原因を特定します。パフォーマンスの改善と、正常なターゲットに限定したルーティングを可能にします。ALBにもヘルスチェックを適用できます。
2. オートスケーリングとは
トラフィックの増減に合わせて自動的に最適化するロードバランサーの機能をオートスケーリングといいます。
2-1. 自動化するメリット
負荷分散を自動化するメリットは、運用リスクの軽減とコスト削減の2つがあります。
運用リスクは、急増したアクセスによって生じます。たとえばECサイトでは、セール期間中に過剰な負荷がかかってサーバーがダウンしたりアクセスが遮断されたりすると、大きなビジネス機会の損失になります。
コストに関しては、インフラストラクチャーの費用と管理者の人件費があります。最大のトラフィックを想定して環境を構築した場合、通常の状態では不要なコストが計上され続けます。
自動的にシステムの環境を切り替えることによって、パフォーマンスを最適化し、管理者の作業も含めたコスト削減ができます。
2-2. AWSの自動化機能
AWSには、AWS Auto ScalingとAmazon EC2 Auto Scalingがあります。
AWS Auto Scalingは、複数のサービスで複数のリソースに対して管理する場合に用います。事前に定義されたスケーリングポリシーを用いて戦略的なスケーリングを実現します。
Amazon EC2 Auto Scalingは、EC2を利用しているときにインスタンスを自動的に追加または削除できる機能です。インスタンスの状態を管理して障害があった場合は自動的に置き換えるフリート管理を備えています。スケジュールに基づいてスケーリングを行うとともに、ポリシーに基づいた動的な負荷分散、予測に基づいた負荷分散が可能です。
3. デジタルギフトサービスにおける負荷分散のユースケース
AWSの負荷分散を行ったユースケースとして、広告代理店のデジタルギフトシステムの構築と運用を紹介します。
3-1. デジタルギフトとは
従来、新商品やサービスのプロモーションや来店促進のインセンティブは、物理的なノベルティや紙のギフト券の提供によって行われてきました。しかし、ECサイトの利用拡大やキャッシュレス決済の進展により、Amazonギフト、楽天ポイント、LINEギフトなど、デジタルの金券に置き換わりつつあります。
このように、SNSのメッセージやメールにURLを送信することで商品に引き換えられるキャンペーン方法を、デジタルギフトと呼びます。
オンラインと親和性が高く、ノベルティの配送費用や人件費が不要のために、大幅なコスト削減を実現します。
3-2. 課題と要件定義
開発前の課題を整理すると、まずノベルティの発送業務に手間がかかることがありました。また、棚卸しの総計から費用対効果を測定していましたが、時間がかかるとともに発送数と在庫数が合わない問題が生じていました。
一方、デジタルギフトでは、販促費用を1件あたり100円に抑えられます。ランディングページの訪問や成約の行動を追跡し、結果のログは店舗や地域で集計して分析が可能になるため、費用対効果の測定では精度をあげながら効率化できます。
デジタルギフト発行システムの開発にあたって、Webシステムの同時アクセス数としては1,000件/秒、ギフトページには1,000件/秒と定めました、
セキュリティ要件として、地域別のIP、営業時間内のアクセス、端末、ギフト交換の数量と金額で制限することにしました。さらに管理機能として、クライアント、複数の店舗を統括する代理店、店舗、マネージャー、ユーザーなど役割による権限を設定しました。
3-3. システム構築のポイントと効果
インターネットゲートウェイに対して、デジタルギフト用のランディングページおよびデジタルギフト発行のWebサイトのコンテンツの2箇所にロードバランサーを設置、それぞれオートスケーリングでEC2のインスタンスを制御しています。
ランディングページ、デジタルギフト発行のWebサイトともに制御のポリシーを定め、Amazon CloudWatchによって自動的にアラートを発行、不正を監視します。
効果としては広告代理店、販売代理店、販売店それぞれの業務効率化に貢献しました。システムを拡張するアイディアも生まれています。
4. おわりに
利用者に遅延や障害がない高可用性の環境提供をめざすことは、同時にサービスの提供者そして管理者の負荷軽減にもつながります。DevOpsの考え方を基盤に、開発と運用保守を連携を検討することも大切です。
AWSのベストプラクティスから負荷分散のシステムを構築しましたが、同様の仕組みはポイント管理システムなどに応用できます。
ベトナムオフショア開発会社 ONETECHはAWSセレクトティアパートナー
もし、AWSについてプロのアドバイスが欲しいのなら、ぜひONETECHにご相談ください。
ONETECHはオフショア開発会社として100社以上との取引実績を誇ります。
ONETECHではAWS資格保有のエキスパートがお客様の課題をカタチにします。
- インターネットサービスの企画はあるがどうしたら良いか
- どのようにクラウドを利用したら良いかわからない
- クラウドを利用するためのコストやポイントを知りたい
- 保守運用まで考慮した設計をしたい
Lambdaを含むAWSのコンサルティングサービスを提供しています。気になること、不安なことをお気軽にご相談ください。
AWS導入について相談する