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