小規模サービスでもクラウドロードバランサーを使用する5つの理由

シンプルなサービスやアクセス頻度が高くないサービスでは、よく1台のECSサーバーで運用される場合が多いですね。「負荷懸念がないからロードバランサーが不要」と思っている人が少なくないて思いますが、実はWebサーバーの前段にSLB (Server Load Balancer) を置くメリットが多いです。この記事では、このメリットについてまとめたいと思います。

一台のECSでもSLBを使うメリット

Blue – Greenデプロイができる

同じインスタンス上でアプリケーションのバージョンを更新。バージョン2がバージョン1を上書き

サービス開始の後、アプリケーションの更新が発生すると思います。ECSサーバー単体で運用する場合、既存のインスタンスにアプリケーションを上書きすることでデプロイを実現できます。しかし、デプロイ済みのプログラムにバグを発見し、前のバージョンへ戻したい時は、再度アプリケーションをデプロイする必要があり、長い切り戻し時間によりサービスへの影響が発生してしまいます。

Blue-screenデプロイメント。新しいインスタンスを構築し、SLBの向き先を変更。問題が発生した場合、迅速にロールバックできます

一方、ECSインスタンスの前段にSLBを置けば、Blue/Greenデプロイを実現できます。アプリケーションの新バージョンを別のインスタンスへデプロイしておき、更新時にSLBの向き先を変更するだけでデプロイ作業が終わります。バグが発生したら、SLBで向き先を元のインスタンスへ切り替えすれば良い。これで切り替え時間が短く、サービス影響なしで無停止でデプロイを実現できます。

スケールの選択肢が増える

システムの負荷が高くなったときに、スケールアウトまたはスケールアップを行わなければなりません。SLBを利用していないECS (1台)の構成だった場合、無停止でスケール (アウト / アップ)がなかなか実現できません。SLBを前段に置く構成の場合、稼働中のインスタンスの隣に、高スペックインスタンス (スケールアップの場合) もしくは数インスタンス (スケールアウトの場合) を構築しておき、SLBのサーバーグループへ追加するだけでシステムを簡単に拡張できます。

そして、SLBを利用することでスケールアウトコストの最適化ができます。高負荷時に追加したサーバーを不要となったときにSLBから外して削除すればその分のサーバーコストがかかりません。ECS 1台 (もしくはSLB使用しないで複数台) だとどうしてもサーバー台数を維持しなければいけず、コスト最適化ができません。

(負荷の変動に応じて自動的にスケールアウトを行いたい方は是非 AutoScalingサービスをご覧ください)

SLBを利用するとスケールアウト・スケールアップが容易にできます。スケールしたい時は、新しいインスタンス (緑色)を構築し、SLBへ追加すれば終わります。

セキュリティの向上

1 ECSインスタンス上で複数なミドルウェアがインストールされる場合が多いですね。ミドルウェアの中では、外部からアクセスを許可するミドルウェアもあるし、内部からしかアクセス許可しないミドルウェアもあります。セキュリティーグループやファイアワォールの設定が徹底にしないと、無許可に外部からアクセスができてしまうセキュリティーホールが出てしまいます

SLBを使用すると、基本的に設定した「リスナー」しかアクセスができません。新しいミドルウェアをインストールされても、不注意で外部からアクセスされてしまうことがなくセキュリティーが向上されます。

ウェブ特有なモニタリングができる

SLBはウェブの特有なモニタリング機能があります。SLBインスタンスを通過したHTTPリクエストのステータスコードやアクセスのトラフィックスを自動的に集計しグラフ化をしてくれます。1台のECSインスタンスを運用する場合、このような数値を集計するためには、ログを解析するスクリプトを開発しないといけず手間がかかります。

そして、Cloud Monitorと連携して様々な監視やアラートの通知ができます。例えば、HTTPコードが「5xx」(エラーが起きている) 多発する場合に、携帯電話へ通知するとかは簡単に設定できます。ECS だけ運用すると、こういうような高度な監視・通知は簡単に実現できません。

SLBはウェブ特化な監視がサポートされている

低コストでSLBを導入可能

「1台のECSでサービスを運用しても、ECSの前段にSLBを置けばセキュリティー向上はもちろん、サービスが拡張しやすくなる様々なメリットがわかったが、SLBを追加すると運用コストが発生するのでは」と心配している方がいるかと思います。実はSLBの料金ページを見ると、1時間 0.90円 (月 648円) + 転送料 (SLBを使用すれば ECS転送料がかからなくなる) というすごく低コストからSLB使用できるため、追加コストより得るメリットのほうが大きいかと思っています。

おわりに

オンプレミス時代ならロードバランサー値段が高くこういう使い方がないと思いますが、クラウドの時代なら安易に低コストでロードバランサーを追加できるので、ECS単体で運用ではなく1台のECSサーバーでもSLBを使いましょう

さいごに

クラウド環境を使った構築の提案、ベストプラクティスの作成、新クラウドプロダクトの評価をするクラウドアーキテクトを募集しています

 

この記事をシェアする