20150207 elastic loadbalancer

31
Elastic Load Balancing

Transcript of 20150207 elastic loadbalancer

Elastic Load Balancing

森 大樹 (もり だいき)業務系エンジニア 大阪生まれ大阪育ちの浪速っ子 今、AWSを利用したシステムの 開発と運用をやってます !facebook : /areaz.daiki twitter : @areaz_ slideshare: http://www.slideshare.net/areazdaiki/ !hobby:スノボ(アルペンボーダー)    お酒(毎日コンビニで購入)      →C3(Can Convinience Club)会長

Who am I ?

ハッシュタグ#jawsug #fullmanaged

JAWS-UG KANSAI特別編 「AWSを使い倒せ。 AWSのフルマネージドサービス活用 によるネイティブクラウドシステム への誘い」

Elastic Load Balancing

今回のテーマ

○EC2やAurora以外のRDSなどはあえて除外 !○AWSによるネイティブクラウド移行の為の  AWSのフルマネージドサービスの話をメイン !○実際に導入したケースやサービスの紹介

今回のテーマ

○EC2やAurora以外のRDSなどはあえて除外 !○AWSによるネイティブクラウド移行の為の  AWSのフルマネージドサービスの話をメイン !○実際に導入したケースやサービスの紹介

今回のテーマ

○EC2やAurora以外のRDSなどはあえて除外 !○AWSによるネイティブクラウド移行の為の  AWSのフルマネージドサービスの話をメイン !○実際に導入したケースやサービスの紹介

こんなんじゃ、しゃべれません

EC2は除外

Amazon Elastic Compute Cloud (Amazon EC2)

!

Elastic Load Balancing

EC2は除外

ということで、無視します。

トラフィックをクラウド内の 複数の Amazon EC2 インスタンスに自動的に分散します。

これはアプリケーションの高いレベルの 耐障害性の実現を可能にし、

アプリケーショントラフィックの分散に 必要な負荷分散容量をシームレスに提供します。

!

Elastic Load Balancing

EC2へのアクセスが多い 👇

ELBがうまいこと通信を分散 👇

ユーザはいい感じにアクセス

!

Elastic Load Balancing

Elastic Load Balancing でできること

複数のインスタンスに通信を分散

インスタンスの状態を監視

トラフィックの暗号化をサポート

スティッキーセッション機能あり

アクセスログをS3に保管

複数のインスタンスに通信を分散

Elastic Load Balancing でできること

普通に通信を分散

webweb

web

複数のインスタンスに通信を分散

Elastic Load Balancing でできること

Route53を使って、 Multi-AZな感じに。

webweb

web

webweb

web

複数のインスタンスに通信を分散

Elastic Load Balancing でできること

Public Subnet Private Subnet

Internal ELBVPC内のみ通信

web

web

Application

Application

複数のインスタンスに通信を分散

Elastic Load Balancing でできること

Public Subnet Private Subnet

Internal ELBVPC内のみ通信

Application Control

Web Application

Web Application

Elastic Load Balancing でできること

インスタンスの状態を監視

①HealthCheck

②Instanceの状態Check

③呼び出し

④Instanceの状態Check

⑤接続確認

HTTP Status Code : 200

HTTPステータスコードが200なので、 ELBは「InService」のままに。

HealthCheck用ツールHealthCheck用ツール

web Application

Elastic Load Balancing でできること

インスタンスの状態を監視

①HealthCheck

②Instanceの状態Check

HTTP Status Code : 500

HTTPステータスコードが200でなく、500なので、 ELBは「OutOfService」に。

web Application

Elastic Load Balancing でできること

インスタンスの状態を監視

①HealthCheck

②Instanceの状態Check

③呼び出し

④Instanceの状態Check

⑤接続確認

HTTP Status Code : 200

web-A Application

web-B

HTTP Status Code : 500

Instance Statusが 1 / 2となり、

Web-Aのみに通信

Elastic Load Balancing でできること

トラフィックの暗号化をサポートUpload

TLS 1.2 / TLS 1.1 / TLS 1.0 / SSL 3.0 / SSL 2.0サポートしているSSLプロトコル

バックエンドインスタンスのサーバ証明書認証

webHTTPS HTTP / HTTPS

Elastic Load Balancing でできること

スティッキーセッション機能あり

○デフォルトは無効→有効に ○HTTP / HTTPSのみ

Aさん

Bさん

web - A

web - B

Elastic Load Balancing でできること

アクセスログをS3に保管

接続元IPアドレスや HTTPステータスコード

X-Forwarded-For を設定しても 同じような結果

Elastic Load Balancing 運用的に

OutOfService

発見!!Ruby

インスタンスを切り離し +

インスタンスを紐付けRuby

Elastic Load Balancing 定説

[OutOfService]になったら、一度 切り離して、再接続

急にMulti-AZにすると追加したAZの接続に時間がかかる

Scalingが間に合わない場合は、 暖気運転の申請をしておく

※Business もしくは Enterpriseのサポートが必要

Elastic Load Balancing 自分的な希望

なにげに、TagNameがつけれるようになった。これがやりたかった。

X-FORWARED-FOR:を使わないと ミドルウェアのログでFromの生IPが分からない

Elastic Load Balancing 自分的な希望

個人的には、Route53みたいに、 加重ラウンドロビンで分散したい

OutOfServiceになってもHealthCheckですぐに再開できるようなモードが欲しい

なんとなく 理解できましたか?

教えてもらうより、 まずは使ってみよう!!

新たな世界へ!!

ご清聴 有り難う御座いました。