飲食店を1,000店舗以上運営する企業のポータルサイト構築事例をご紹介します。店舗の席に置いてあるタブレット端末で表示するこのポータルサイトは、位置情報に基づいた情報配信を行っています。徐々に店舗への設置台数を増やしており、負荷状況に応じてサーバーの台数や性能を増強可能なAWSで構築しました。
導入前の課題
サービスインの当初は数店舗でスタートし、利用状況を見ながら徐々に導入店舗を増やしていくストーリーがありました。コストを抑えつつ、負荷状況に応じてスムーズに対応が可能な構成が必要でした。また、店舗でお客様が閲覧される端末のためシステムのダウンが発生しない状況とすることも課題でした。
ご提案内容
データベースの利用はありませんが、位置情報に応じて情報を動的に変更する仕組みが必要なためEC2をフロントに用意しました。店舗でのタブレット端末利用に限定した使い方のため、突発的にアクセスが集中することは見込まれません。導入店舗数の増加に応じて、徐々にサーバー台数を増やしていく構成をご提案しました。
構成
ALB(ロードバランサ)
インターネットからのアクセスをALB(Application Load Balancer)で2台のEC2インスタンス(Webサーバー)へ振り分けます。Webサーバーの役割は閲覧者向けにホームページを表示することに特化しており、特殊な振り分けルールなどはありません。HTTPSでのアクセスのため、SSL証明書を組み込んでいます。
EC2(公開用Webサーバー)
Webサーバー2台構成です。どちらがメインサーバー・サブサーバーなどの分類はありません。ポータルサイトのコンテンツが配置してあります。また、Availability Zoneというデータセンターの所在を別々に分けることで片方のデータセンター自体に何かがあっても動作し続けることが可能な構成としました。
以前利用していたドメインのリダイレクト処理を行いたい要件があり、EC2自体にもSSL証明書を組み込んでいます。
導入の効果
サーバーダウンが発生していない
サーバーを冗長化することで万が一サーバーに障害が発生した際も、サービスの停止が発生しません。セキュリティパッチ適用などのやむを得ないメンテナンスの際も、一台ずつメンテナンスをすることでユーザーに影響を与えることがありません。
柔軟なスペック増強
店舗に設置する端末の増加にともない、アクセス数が増加することが予想できているため、EC2を追加するだけで増強可能な仕組みとしました。既存のEC2インスタンスを複製して、配置することですぐに増強が可能です。
コスト削減
1,000台以上の端末を想定した構成を最初から構築すると、当初はアクセス数が少ないにも関わらず、大きなサーバーコスト、維持費用がかかってしまいます。現在のプロジェクトの状況に応じた適切な規模でサーバーを準備し、必要なタイミングで徐々にスペックを上げていくことでコスト削減ができています。
おわりに
Webサーバー2台というシンプルな構成ですが、徐々に規模を増やしていくというプロジェクトにクラウドは適しています。今後、アクセスが増加した際は、(1)サーバーのスペックを上げる(2)サーバーの台数を横に増やす、の2つの選択肢が考えられます。
メンテナンスの手間を考えるとサーバーのスペック増強が望ましいです。一方、同時接続により応答が遅くなってしまったり、コストメリットが出るケースではサーバーの台数を増やすことも考えられます。状況をふまえ、それぞれのメリットを理解した上で構成を決定すると、より良い結果が得られます。
少し先の運用まで視野に入れてインフラ構築を行った事例でした。
AWSやAzureへの移行作業を無料で
無料ではじめるAWS/Azure管理
クロジカガイドブック
- クラウド構築・運用の課題を解決
- クロジカAWS/Azure管理の主な機能
- 導入事例
- 導入までの流れ