オートスケーリングとALBによるAWS構築と運用、ユースケースの紹介

動画配信やキャンペーン運用のシステムでは、短期間の集中的なアクセスを回避する安定性と高可用性が求められます。したがって、トラフィックの負荷分散のためにロードバランサーは必須の機能です。

この記事では、AWSのロードバランサーのひとつであるALBを取り上げ、オートスケーリングの重要性を解説するとともに、デジタルギフトのシステム構築と運用に関するユースケースを紹介します。

1. ALBとは? 

オートスケーリングとALBによるAWS構築と運用、ユースケースの紹介
オートスケーリングとALBによるAWS構築と運用、ユースケースの紹介

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 ScalingAmazon 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によって自動的にアラートを発行、不正を監視します。

デジタルギフトサービスにおける負荷分散(ONETECH)
デジタルギフトサービスにおける負荷分散 (ONETECH)

効果としては広告代理店、販売代理店、販売店それぞれの業務効率化に貢献しました。システムを拡張するアイディアも生まれています。

4. おわりに

利用者に遅延や障害がない高可用性の環境提供をめざすことは、同時にサービスの提供者そして管理者の負荷軽減にもつながります。DevOpsの考え方を基盤に、開発と運用保守を連携を検討することも大切です。

AWSのベストプラクティスから負荷分散のシステムを構築しましたが、同様の仕組みはポイント管理システムなどに応用できます。

無料相談・お問い合わせ
ご相談やお見積もりは全て 無料 で対応いたします。

    「個人情報保護方針」をお読みいただき同意いただける場合は「この内容を送信する」ボタンを押して下さい。
    入力していただいたメールアドレス宛に自動返信メールを送信していますので、お手数ですがそちらをご確認ください。
    無料相談・お問い合わせ
    ご相談やお見積もりは全て 無料 で対応いたします。

      「個人情報保護方針」をお読みいただき同意いただける場合は「この内容を送信する」ボタンを押して下さい。
      入力していただいたメールアドレス宛に自動返信メールを送信していますので、お手数ですがそちらをご確認ください。
      無料相談
      お問い合わせ