こんばんわ.
運用経験のある方ならわかると思うのですが
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のお仕事
※🔽このページがエラーというわけじゃ無いですのでご安心を.
負荷が増減すると,
負荷に応じて自動でスケールします.
スケーリングが間に合わないとき503エラーをクライアントに返します.
だんだん見えてきました?
でも,例えば
アプリのメンテ明け.
ECサイトでの新商品発売日
なんて日は,トラフィックがかなり増えます.
結果的にサーバー負荷が大きくなるでしょう.
そんな時は,
Pre-Warmingです.
上記のように,多くの負荷が予測できる場合,
AWSに申請することが出来ます.
事前にスケーリングさせます.
ちなみにAWSコンソールではなく,
AWSサポートに申請が必要です.
外部公開ではSSLはもはや必須です.
公開鍵暗号設定でセキュリティを強化してくれる仕組みですね.
オンプレでも簡単にポチッと押せばssl化してくれます.
ELBの"SSL Termination"では,
クライアント,ELB間をhttps通信
ロードバランサーとインスタンス間をhttp通信してくれます.
通信処理の負荷が軽減出来ます
ただ,利用する時は,ロードバランサーにSSL証明書を構成する必要があります.
##スティッキーセッション
セッションを引き継いで,cookieに設定した値を利用しながら動作する時.
例)会員制のサイトなど
ELBによって,毎回reqを同一のインスタンスに送信したいですよね?
まさしくそれを可能にするのがスティッキーセッションです.
こちらの実装方法は2つ
1.任意の有効期限の間は,同じインスタンスを使用するよ
2.アプリのCookieに従うよ
Cookieを使うアプリなら2でいいです.
この辺覚えてないと,AWSデプロイ後には苦しむかも.
1度ぶち当たると,ELBはめちゃめちゃ大切なことに気付かされた.
仮想ネットワークから復習したい方は下の記事も読んでください
[必須]プライベートな仮想ネットワークを制御する