LoginSignup
5
4

More than 3 years have passed since last update.

[503を許すな]ELB知らない人は,本当に危険!!

Last updated at Posted at 2019-12-03

ELBについて解説

elb_instances_1.png

こんばんわ.
運用経験のある方ならわかると思うのですが

ELBってめっちゃ大事です.
ECサイトやネイティブアプリケーションの運用でかかせません.
大事な勝負日に503エラーなんてしてられないですよね?

EC2,S3,Lambda,cloud9あたりはみなさんよく使うと思います.

僕もその辺しか最初は知りませんでした.

S3なんかは覚えたての頃はかなり感動しました.
SNS作るときなんか,オブジェクトURLで保存すれば,DB容量の節約になりますからね.

その辺は使っていて直感的に覚えるのがベストでしょう.

さて,本題.
ELBって知ってますか?
マネジメントコンソールに書いてありますが,よくわからず,煙たがっていました.

しかし,クラウド運用する方は必須.
また,ソリューションアーキテクトアソシエイトを取るには不可避です.
みなさん嫌いなセキュリティですね.

基礎となるVPCに関してはこちら

ELBのド基礎

ELBとは,
仮想ロードバランスサービス
です.

なにそれ?

ですよね.

まずはロードバランサーについて,
オンプレでロードバランサーとは,
web鯖やapp鯖など,複数ある場合に通信負荷を軽減するために,通信を分散させる事です.

つまり,クラウド版の通信分散をさせる為の割り当て役
とでも定義しておきましょう.
これがオーバーした時に503エラーが返されるのですね.

前の記事でも書きましたが,おさらい.
AWSでは,VPCを設定して仮想ネットワークを制御します.

ELBはVPC上に位置付けされます.
VPCが正常に動くように,割り当てやヘルスチェックをするものです!!

ちなみにヘルスチェックで異常を発見しても
インスタンスへのトラフィック送信を停止するのみです.

ELBの種類とその特性

ELBは3種類のロードバランサーが提供されています.
それぞれ特性が違うので,最適な種類を選べるようになりましょう.

1.ALB
Application Load Balancer
HTTP,HTTPSをサポートしています.
パスやホストのルーティングサポートをしています.
基本的にこいつ

2.NLB
Network load Balancer
TCP,TLSのサポートです.
固定IPアドレスを設定できます.
例えば,クライアントが
「ドメインじゃなくてIPでアクセスしたい」
なんて言ってきたらこいつの出番.

3.CLB
Classic Load Balancer
古いです.いりません.
簡単に説明すると,ALBの旧ver .
VPCの前の仮想ネットワークはEC2 Classicってやつでした.
なので,古参のEC2 Classicで構築されている場合はこいつ.
まあ,見ないので,気にしなくていいです.

ELBのお仕事

※🔽このページがエラーというわけじゃ無いですのでご安心を.
503error1.png

負荷が増減すると,
負荷に応じて自動でスケールします.
スケーリングが間に合わないとき503エラーをクライアントに返します.

だんだん見えてきました?

でも,例えば
アプリのメンテ明け.
ECサイトでの新商品発売日
なんて日は,トラフィックがかなり増えます.
結果的にサーバー負荷が大きくなるでしょう.

そんな時は,
Pre-Warmingです.
上記のように,多くの負荷が予測できる場合,
AWSに申請することが出来ます.
事前にスケーリングさせます.

ちなみにAWSコンソールではなく,
AWSサポートに申請が必要です.

SSL Termination

ssl.png

外部公開ではSSLはもはや必須です.
公開鍵暗号設定でセキュリティを強化してくれる仕組みですね.
オンプレでも簡単にポチッと押せばssl化してくれます.

ELBの"SSL Termination"では,
クライアント,ELB間をhttps通信
ロードバランサーとインスタンス間をhttp通信してくれます.
通信処理の負荷が軽減出来ます

ただ,利用する時は,ロードバランサーにSSL証明書を構成する必要があります.

スティッキーセッション

cookie.jpeg
セッションを引き継いで,cookieに設定した値を利用しながら動作する時.
例)会員制のサイトなど
ELBによって,毎回reqを同一のインスタンスに送信したいですよね?

まさしくそれを可能にするのがスティッキーセッションです.
こちらの実装方法は2つ

1.任意の有効期限の間は,同じインスタンスを使用するよ
2.アプリのCookieに従うよ

Cookieを使うアプリなら2でいいです.

この辺覚えてないと,AWSデプロイ後には苦しむかも.
1度ぶち当たると,ELBはめちゃめちゃ大切なことに気付かされた.

仮想ネットワークから復習したい方は下の記事も読んでください
[必須]プライベートな仮想ネットワークを制御する

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4