0
AWSマイスターシリーズ
Elastic Load Balancing
2013.6.12
アマゾンデータサービスジャパン株式会社
ソリューション アーキテクト
舟崎 健治

平山 毅

安川 健太

© 2012 Amazon.com, In...
Agenda
1. ELB基本編
2. ELB各種機能詳細とTips

3. ELBと各種サービスの連携
4. ELB負荷試験時のTips
5. まとめ

2
© 2012 Amazon.com, Inc. and its affiliates...
1. ELB基本編

3
© 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed i...
ELB: Elastic Load Balancingとは?
AWSクラウド上のロードバランシングサービス
ELBの特徴






負荷分散 : リクエストを複数のバックエンドのサーバーに分散
スケーラブル: ELB自体が負荷に応じ...
ELBの概念図
ユーザー

開発者

クライアント
HTTP / HTTPS /
TCP / SSL

ELB

EC2
AZ a

HTTP / HTTPS /
TCP / SSL

Web
コンソール

EC2
AZ b

5
© 2012...
ELBによる負荷分散
バックエンドのEC2インスタンスのリクエスト数や
コネクション数を基に負荷分散
コネクション数・リクエスト数
が均等になるよう割り振る

サポートしているプロトコル
(L7)HTTP, HTTPS
(L4)TCP, S...
ELBのスケーリング
ELBは負荷の増減に応じて自動でスケール
(キャパシティを自動で増加する)

注:ELBがスケールするときには、IPアドレスが変化
• ELBへアクセスするときには必ずDNS名で!
• 独自ドメインに割り当てる際はCNAM...
複数AZ利用による高い可用性
2段階で負荷分散
• DNSラウンドロビンによるAZ間振り分け
• AZ内ではコネクション数などを見ながら負荷分散

AZ A

Internet

Internet
Gateway

AZ B

DNS
ラウンド...
バックエンドのヘルスチェック
ELBは指定した設定に基づき、バックエンドのインスタンス
のヘルスチェックを行う
• Pingプロトコル:例:HTTP
• Pingポート:例 80番
• Pingパス(HTTP利用時)
:例 /index.htm...
使いやすくて安価な従量課金
2013年6月12日現在

時間当たりの利用料は、複数AZ配置構成でも同一
ELBにリザーブドプランはなし
50K
処理量は右図の通り
50K

50K

⇒100K
50K

10
© 2012 Amazon.co...
2. ELBの各種機能詳細とTips

11
© 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or dis...
ELBの各種機能詳細とTips
ELB利用時のTips
•
•
•
•

AZとバックエンドキャパシティの関係
独自ドメインでの利用
クライアントのIPアドレス取得
ELBとバックエンドのコネクション

SSLサポート
VPCでの利用
ELBと...
ELBの各種機能詳細とTips
ELB利用時のTips
•
•
•
•

AZとバックエンドキャパシティの関係
独自ドメインでの利用
クライアントのIPアドレス取得
ELBとバックエンドのコネクション

SSLサポート
VPCでの利用
ELBと...
ELBとアベイラビリティゾーン(AZ)と
リージョン
リージョン内の複数のAZに負荷分散可能
• リージョンを越えたトラフィック分散は行わない

規模を問わず複数AZの利用を推奨
myLB-xxx.elb.amazonaws.com

Avai...
ELBとAZ内キャパシティの関係
ELBで有効になっているAZ間で均等に負荷分散される
良くない例:AZ間でキャパシティが不均等

良い例:AZ間でキャパシティが均等
myLBxxx.elb.amazonaws.com

myLBxxx.elb...
独自ドメインの利用
CNAMEを利用
• ドメインのDNSサーバに設定を投入すれば完了
www.foo.example.com CNAME myLB-xxxx.ap-northeast-1.elb.amazonaws.com

• Zone A...
クライアントのIPアドレス取得
バックエンドサーバのアクセスログにはELBのIPアドレ
スのみが含まれる
• クライアントELB, ELBバックエンドのコネクションは
それぞれ独立しているため

HTTPならX-Forwarded-Fo...
ELBとTCPコネクション
クライアント  ELB のコネクション
• アイドル状態が60秒続くとそのコネクションを切断する

ELB バックエンドインスタンスのコネクション
• Keepaliveの設定を推奨
• コネクションタイムア...
ELBの各種機能詳細とTips
ELB利用時のTips
•
•
•
•

AZとバックエンドキャパシティの関係
独自ドメインでの利用
クライアントのIPアドレス取得
ELBとバックエンドのコネクション

SSLサポート
VPCでの利用
ELBと...
SSL Termination
ELBでSSL Terminationも可能
1. ELBでSSL Terminationし、バックエンドとはSSLなし
2. ELBでSSL Terminationし、バックエンドと別途SSL
3. SSLをバ...
SSL Termination時のサーバ証明書
ELBにSSL証明書をアップロード
SSL証明書

• バックエンドとの通信にSSLを用いないなら証明書の管理が容易
• マネージメントコンソール or IAM APIで設定

21

(*)証明...
ELBへのSSL証明書の設定
ELBでのSSL証明書の管理
SSLを用いる場合、
ウィザードの中で
SSLの選択/インポー
ト画面が出てくる

© 2012 Amazon.com, Inc. and its affiliates. All ri...
ELBへのSSL証明書の設定
~API編~
IAMのAPIを利用
iam-servercertupload -b public_key_certificate_file -c
certificate_chain_file -k privatek...
バックエンドインスタンスの認証
ELBとバックエンドインスタンス間でHTTPS/SSL使用
時に、オプションでバックエンドの認証を利用可能

24
© 2012 Amazon.com, Inc. and its affiliates. All ...
ELBの各種機能詳細とTips
ELB利用時のTips
•
•
•
•

AZとバックエンドキャパシティの関係
独自ドメインでの利用
クライアントのIPアドレス取得
ELBとバックエンドのコネクション

SSLサポート
VPCでの利用
ELBと...
VPC内での利用
VPCとELBは同一Region内にAZを超えて作成
(※SubnetはAZをまたいだ構成ができない)
VPC by default後、ELBはVPC内に配置が基本

AZ
:a

Internet

Internet
Gat...
VPC対応概要
ELB inside VPCの機能
 ELBのトラフィックをサブネッ
トをまたいで分散も可能
 ELBにセキュリティグループが
設定可能

ELB inside VPCの制約
(2013年6月時点)

 IPv6サポート現...
VPC内のELB配置設定方法
Public Subnet(Internet GatewayがアタッチされたSubnet)
を作成(アタッチされていないとエラー)
作成済のVPC一覧が表示
されるため、ELBを配置
するVPCを選択

28
© ...
ELBを配置するVPC内Subnetの指定
EC2-Classicの場合と違いVPC内に配置する場合は
ELBを配置するVPC Subnetを明示的に各AZにつき1つ指定

ELBを配置するSubnetを
指定
(注意)/27よ
り小さな
Su...
Internal ELB
プライベートIPアドレスのみを持つELB
 グローバルIPアドレスを持たないこと以外は
“VPC内ELBと同機能”
 VPC内のみで利用可
(EC2-Classicでは不可)
 Internet Gatewayが...
ELBの各種機能詳細とTips
ELB利用時のTips
•
•
•
•

AZとバックエンドキャパシティの関係
独自ドメインでの利用
クライアントのIPアドレス取得
ELBとバックエンドのコネクション

SSLサポート
VPCでの利用
ELBと...
ELBのSecurity Group
バックエンドはELBからのみ
リクエストを受け付ける設定
を推奨

80
80

443

80
80
22

EC2-ClassicではELBは全て
“amazon-elb/amazon-elb-sg”
...
ELBのSecurity Group
VPCではELBに任意のSecurity Groupを設定可能
• VPC Security Groupとして編集可
• Outbound設定についてはELB自身が能動的に外部と通信を確立すること
はないた...
ELBの各種機能詳細とTips
ELB利用時のTips
•
•
•
•

AZとバックエンドキャパシティの関係
独自ドメインでの利用
クライアントのIPアドレス取得
ELBとバックエンドのコネクション

SSLサポート
VPCでの利用
ELBと...
ELBのスケーリング詳細
ELBは負荷に応じてスケールする
但し、以下のような場合にELBがHTTP 503を返す
• ELBへの接続・リクエストが瞬間的に急増したために、ELBのス
ケーリングが間に合わない場合
• TVやメディアによるサービ...
ELBの暖気運転(Pre-Warming)
Business/Enterpriseサポートに加入者様向けにELBを
事前にスケールさせておく操作
急激なトラフィックの増加が予想される場合に有効
• メディアで自社サイトが紹介される、等

ELB...
ELBの各種機能詳細とTips
ELB利用時のTips
•
•
•
•

AZとバックエンドキャパシティの関係
独自ドメインでの利用
クライアントのIPアドレス取得
ELBとバックエンドのコネクション

SSLサポート
VPCでの利用
ELBと...
Stickyセッション
Stickyセッションを使うと、同じユーザから来たリクエ
ストを全て同じインスタンスに送信可能
Stickyセッションの種類は以下2パターン
• Application Genereated Cookie Stickin...
Application Generated
Cookie Stickiness
アプリケーション固有のセッション維持を行う
アプリケーションに独自のセッションCookieがある場合
等に利用
例:Webサービスへのユーザーログ
イン時にCook...
Load Balancer
Generated Cookie Stickiness
期間ベースのセッション維持を行う
アプリケーションに独自のセッションCookieがない場合、
ELB側でセッション維持を管理したい場合に利用

ELB側で期限付...
3. ELBと各種サービスの連携

41
© 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distr...
CloudWatchとの連携
CloudWatchによりELBの以下を監視可能
•
•
•
•
•
•

遅延時間
リクエスト数
健全なホスト数
不健全なホスト数
バックエンドの2xx-5xxレスポンス数
ELBの4xxと5xxのレスポンス数
...
Auto Scalingとの連携
Auto Scalingによるインスタンス増減時にELBへのアタッ
チ・デタッチが可能
ELBのヘルスチェックの結果をAuto Scalingに反映可能
利用例:
• 一定間隔でレスポンスをチェックし、遅延が増...
Route53 DNSフェイルオーバ対応
Route53のヘルスチェック機能と連携
•

例:アプリケーション障害時にSorryペー
ジヘ誘導
正常時

3. ELB可に健全なイ
ンスタンスなし
2. AppサーバのELB
ヘルスチェック失敗
...
Route53 DNSフェイルオーバ対応
設定方法
• Alias Target にELBを指定し、
Routing Policyに「Failover」を選択

Evaluate Target
Health:
[Yes]

「Associate...
OpsWorksのELB対応
OpsWorksでELBをLBレイヤーに利用可能に
①スタックの作成
②レイヤーの作成
③レシピの作成・設定
(ビルトイン
レシピ利用可)

スタック

LBとしてELBが選択可能に

Load Balancerレ...
4ELB負荷テストに関するTips

47
© 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or dist...
ELBを負荷テストする必要性について
ELBのいくつかの特長がテストシナリオに影響を与える
可能性がある。
•
•
•
•
•

ELBのスケーリング
ELBの初期キャパシティ
アイドルコネクションタイムアウト
バックエンドインスタンスのヘルス...
ELBの負荷テスト方法の種類
シングルクライアントテスト

負荷生成
クライアント

バックエンドイン
スタンス

• 例:Apache Bench(ab)

マルチクライアントテスト
• 例:curl-loader

(都度DNS解決を行うツ...
想定する最大負荷のテスト
通常のトラフィック時のテスト

負荷

推奨テストアプローチ

• トラフィックの多い時
時間
• トラフィックの少ない時
• トラフィックの傾向に変化がある時(朝や昼の時間帯など)

短い時間でトラフィックが大きく変...
負荷テストの注意事項
ELBの初期スケールに注意
• スケールするまでに、HTTP 503レスポンスを返す期間があり得る
• 回避策:
• ELBの暖気運転( Pre-Warming)申請をする
• 5分間隔で50%以上のトラフィック増加をしな...
5.まとめ

52
© 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in w...
まとめ
ELBはAWSが提供するロードバランシングサービス
• 運用管理コストを抑えながらスケーラブルで高可用なインフラ
を構築可能

• 各種サービスとの連携もスムーズ&随時拡充
• 負荷試験時はその特性を理解した上で
• 急激な負荷の増大が...
日本語Link
(クラウドサービス活用集に掲載)
VPC内ELB配置設計指針
ロードバランサとSocket接続を使用したイベント通知
サーバの負荷分散

Elastic Load Balancing開発者ガイド
• http://docs.aw...
英語Link(最新版)
参考資料
• Amazon Elastic Load Balancing Developer Guide

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/D...
Upcoming SlideShare
Loading in...5
×

test

681

Published on

test

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
681
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "test"

  1. 1. AWSマイスターシリーズ Elastic Load Balancing 2013.6.12 アマゾンデータサービスジャパン株式会社 ソリューション アーキテクト 舟崎 健治 平山 毅 安川 健太 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  2. 2. Agenda 1. ELB基本編 2. ELB各種機能詳細とTips 3. ELBと各種サービスの連携 4. ELB負荷試験時のTips 5. まとめ 2 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  3. 3. 1. ELB基本編 3 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  4. 4. ELB: Elastic Load Balancingとは? AWSクラウド上のロードバランシングサービス ELBの特徴      負荷分散 : リクエストを複数のバックエンドのサーバーに分散 スケーラブル: ELB自体が負荷に応じてキャパシティを増減 高い可用性: 複数のAvailability Zoneに跨がるトラフィック分配 ヘルスチェック機能: 健全なEC2にのみトラフィックを分配 安価な従量課金: 従量課金で利用可能 AWS Management Console、API、コマンドラインツール、SDKで コントロール可 4 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  5. 5. ELBの概念図 ユーザー 開発者 クライアント HTTP / HTTPS / TCP / SSL ELB EC2 AZ a HTTP / HTTPS / TCP / SSL Web コンソール EC2 AZ b 5 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  6. 6. ELBによる負荷分散 バックエンドのEC2インスタンスのリクエスト数や コネクション数を基に負荷分散 コネクション数・リクエスト数 が均等になるよう割り振る サポートしているプロトコル (L7)HTTP, HTTPS (L4)TCP, SSL 6 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  7. 7. ELBのスケーリング ELBは負荷の増減に応じて自動でスケール (キャパシティを自動で増加する) 注:ELBがスケールするときには、IPアドレスが変化 • ELBへアクセスするときには必ずDNS名で! • 独自ドメインに割り当てる際はCNAMEにて 7 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  8. 8. 複数AZ利用による高い可用性 2段階で負荷分散 • DNSラウンドロビンによるAZ間振り分け • AZ内ではコネクション数などを見ながら負荷分散 AZ A Internet Internet Gateway AZ B DNS ラウンド ロビン ELB エンド ポイント ELBによる 負荷分散 ELBによる 負荷分散 AZ配下の EC2台数はAZ 間で均等化を 推奨 8 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  9. 9. バックエンドのヘルスチェック ELBは指定した設定に基づき、バックエンドのインスタンス のヘルスチェックを行う • Pingプロトコル:例:HTTP • Pingポート:例 80番 • Pingパス(HTTP利用時) :例 /index.html • ヘルスチェック間隔:例 12分 健全/不健全を判定するまでの ヘルスチェックの成功・失敗回数 は指定可能 ヘルスチェックを意図的に失敗させることで特定のインスタ ンスへのリクエスト振り分けを止めることも可 9 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  10. 10. 使いやすくて安価な従量課金 2013年6月12日現在 時間当たりの利用料は、複数AZ配置構成でも同一 ELBにリザーブドプランはなし 50K 処理量は右図の通り 50K 50K ⇒100K 50K 10 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  11. 11. 2. ELBの各種機能詳細とTips 11 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  12. 12. ELBの各種機能詳細とTips ELB利用時のTips • • • • AZとバックエンドキャパシティの関係 独自ドメインでの利用 クライアントのIPアドレス取得 ELBとバックエンドのコネクション SSLサポート VPCでの利用 ELBとSecurity Group ELBのスケーリング Stickyセッション 12 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  13. 13. ELBの各種機能詳細とTips ELB利用時のTips • • • • AZとバックエンドキャパシティの関係 独自ドメインでの利用 クライアントのIPアドレス取得 ELBとバックエンドのコネクション SSLサポート VPCでの利用 ELBとSecurity Group ELBのスケーリング Stickyセッション 13 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  14. 14. ELBとアベイラビリティゾーン(AZ)と リージョン リージョン内の複数のAZに負荷分散可能 • リージョンを越えたトラフィック分散は行わない 規模を問わず複数AZの利用を推奨 myLB-xxx.elb.amazonaws.com Availability Zone Availability Zone 14 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  15. 15. ELBとAZ内キャパシティの関係 ELBで有効になっているAZ間で均等に負荷分散される 良くない例:AZ間でキャパシティが不均等 良い例:AZ間でキャパシティが均等 myLBxxx.elb.amazonaws.com myLBxxx.elb.amazonaws.com 2 Availability Zone 10 Availability Zone 6 Availability Zone 6 Availability Zone 15 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  16. 16. 独自ドメインの利用 CNAMEを利用 • ドメインのDNSサーバに設定を投入すれば完了 www.foo.example.com CNAME myLB-xxxx.ap-northeast-1.elb.amazonaws.com • Zone Apexの場合 • 通常のDNSサーバではCNAME設定不可  Route 53のエイリアスレコードを使うことで対応可能 16 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  17. 17. クライアントのIPアドレス取得 バックエンドサーバのアクセスログにはELBのIPアドレ スのみが含まれる • クライアントELB, ELBバックエンドのコネクションは それぞれ独立しているため HTTPならX-Forwarded-Forリクエストヘッダで参照可 • 例: 送信元 経由するルート X-Forwarded-For: 203.0.113.7, 10.12.33.44, 10.12.23.88 Client IP address 17 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  18. 18. ELBとTCPコネクション クライアント  ELB のコネクション • アイドル状態が60秒続くとそのコネクションを切断する ELB バックエンドインスタンスのコネクション • Keepaliveの設定を推奨 • コネクションタイムアウト値を60秒以上に設定することを推奨 • 60秒以下の場合、ELBがそのEC2インスタンスを不健全と判定し、 トラフィックを送らなくなることがあるので注意 18 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  19. 19. ELBの各種機能詳細とTips ELB利用時のTips • • • • AZとバックエンドキャパシティの関係 独自ドメインでの利用 クライアントのIPアドレス取得 ELBとバックエンドのコネクション SSLサポート VPCでの利用 ELBとSecurity Group ELBのスケーリング Stickyセッション 19 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  20. 20. SSL Termination ELBでSSL Terminationも可能 1. ELBでSSL Terminationし、バックエンドとはSSLなし 2. ELBでSSL Terminationし、バックエンドと別途SSL 3. SSLをバイパスしてバックエンドにTCPで送信 HTTP or HTTPS HTTP or HTTPS • 1, 2の場合、SSL証明書をELBで一元管理可能 • Cipherの選択も可能 20 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  21. 21. SSL Termination時のサーバ証明書 ELBにSSL証明書をアップロード SSL証明書 • バックエンドとの通信にSSLを用いないなら証明書の管理が容易 • マネージメントコンソール or IAM APIで設定 21 (*)証明書のライセンスに関しては、ドメイン単位/サーバ単位 で発行などそれぞれ異なるので発行元に問い合わせの事 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  22. 22. ELBへのSSL証明書の設定 ELBでのSSL証明書の管理 SSLを用いる場合、 ウィザードの中で SSLの選択/インポー ト画面が出てくる © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  23. 23. ELBへのSSL証明書の設定 ~API編~ IAMのAPIを利用 iam-servercertupload -b public_key_certificate_file -c certificate_chain_file -k privatekey.pem -s certificate_object_name http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallC ert.html 23 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  24. 24. バックエンドインスタンスの認証 ELBとバックエンドインスタンス間でHTTPS/SSL使用 時に、オプションでバックエンドの認証を利用可能 24 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  25. 25. ELBの各種機能詳細とTips ELB利用時のTips • • • • AZとバックエンドキャパシティの関係 独自ドメインでの利用 クライアントのIPアドレス取得 ELBとバックエンドのコネクション SSLサポート VPCでの利用 ELBとSecurity Group ELBのスケーリング Stickyセッション 25 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  26. 26. VPC内での利用 VPCとELBは同一Region内にAZを超えて作成 (※SubnetはAZをまたいだ構成ができない) VPC by default後、ELBはVPC内に配置が基本 AZ :a Internet Internet Gateway AZ :b Subnet : a1 DNS ラウンド ロビン ELB エンド ポイント Subnet : a2 ELBによる 負荷分散 ELBによる 負荷分散 AZ配下の EC2台数はAZ 間で均等化を 推奨 Subnet : b1 26 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  27. 27. VPC対応概要 ELB inside VPCの機能  ELBのトラフィックをサブネッ トをまたいで分散も可能  ELBにセキュリティグループが 設定可能 ELB inside VPCの制約 (2013年6月時点)  IPv6サポート現状なし  Dedicatedインスタンスは サポートせず  /27 CIDRブロック以上の Subnetが必要 27 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  28. 28. VPC内のELB配置設定方法 Public Subnet(Internet GatewayがアタッチされたSubnet) を作成(アタッチされていないとエラー) 作成済のVPC一覧が表示 されるため、ELBを配置 するVPCを選択 28 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  29. 29. ELBを配置するVPC内Subnetの指定 EC2-Classicの場合と違いVPC内に配置する場合は ELBを配置するVPC Subnetを明示的に各AZにつき1つ指定 ELBを配置するSubnetを 指定 (注意)/27よ り小さな Subnetを選択 するとエラー 複数AZ構成の場合各AZ に1つSubnetを指定 29 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  30. 30. Internal ELB プライベートIPアドレスのみを持つELB  グローバルIPアドレスを持たないこと以外は “VPC内ELBと同機能”  VPC内のみで利用可 (EC2-Classicでは不可)  Internet Gatewayが アタッチされていないVPCにも配置可 Internal ELBの制約  VPC外では作成不可  VPC内ELBと同様 30 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  31. 31. ELBの各種機能詳細とTips ELB利用時のTips • • • • AZとバックエンドキャパシティの関係 独自ドメインでの利用 クライアントのIPアドレス取得 ELBとバックエンドのコネクション SSLサポート VPCでの利用 ELBとSecurity Group ELBのスケーリング Stickyセッション 31 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  32. 32. ELBのSecurity Group バックエンドはELBからのみ リクエストを受け付ける設定 を推奨 80 80 443 80 80 22 EC2-ClassicではELBは全て “amazon-elb/amazon-elb-sg” に属する 32 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  33. 33. ELBのSecurity Group VPCではELBに任意のSecurity Groupを設定可能 • VPC Security Groupとして編集可 • Outbound設定についてはELB自身が能動的に外部と通信を確立すること はないため特に設定不要 CIDR : 10.0.0.0/24 80 既存のVPC内のセ キュリティグルー プの選択も可能 80 443 80 80 22 33 sg-ELB 443: 0.0.0.0/0 sg-EC2 80:sg-ELB 22:10.0.0.0/24 新規作成も可能 (この際は Inboundのみ) © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  34. 34. ELBの各種機能詳細とTips ELB利用時のTips • • • • AZとバックエンドキャパシティの関係 独自ドメインでの利用 クライアントのIPアドレス取得 ELBとバックエンドのコネクション SSLサポート VPCでの利用 ELBとSecurity Group ELBのスケーリング Stickyセッション 34 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  35. 35. ELBのスケーリング詳細 ELBは負荷に応じてスケールする 但し、以下のような場合にELBがHTTP 503を返す • ELBへの接続・リクエストが瞬間的に急増したために、ELBのス ケーリングが間に合わない場合 • TVやメディアによるサービス紹介、等 回避方法 • 事前にELBをスケールさせておく • 負荷をかける • Pre-Warming(暖気運転)の申請を行う 35 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  36. 36. ELBの暖気運転(Pre-Warming) Business/Enterpriseサポートに加入者様向けにELBを 事前にスケールさせておく操作 急激なトラフィックの増加が予想される場合に有効 • メディアで自社サイトが紹介される、等 ELBの負荷テストで、段階的にスケールさせることが出 来ない場合にも有効 36 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  37. 37. ELBの各種機能詳細とTips ELB利用時のTips • • • • AZとバックエンドキャパシティの関係 独自ドメインでの利用 クライアントのIPアドレス取得 ELBとバックエンドのコネクション SSLサポート VPCでの利用 ELBとSecurity Group ELBのスケーリング Stickyセッション 37 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  38. 38. Stickyセッション Stickyセッションを使うと、同じユーザから来たリクエ ストを全て同じインスタンスに送信可能 Stickyセッションの種類は以下2パターン • Application Genereated Cookie Stickiness • Load Balancer Generated Cookie Stickiness ELBがどのくらいの期間同じインスタンスにルーティン グし続けさせるかを決めることが重要 38 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  39. 39. Application Generated Cookie Stickiness アプリケーション固有のセッション維持を行う アプリケーションに独自のセッションCookieがある場合 等に利用 例:Webサービスへのユーザーログ イン時にCookieを生成。ログアウト 時にCookie削除 39 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  40. 40. Load Balancer Generated Cookie Stickiness 期間ベースのセッション維持を行う アプリケーションに独自のセッションCookieがない場合、 ELB側でセッション維持を管理したい場合に利用 ELB側で期限付きCookieを生成 40 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  41. 41. 3. ELBと各種サービスの連携 41 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  42. 42. CloudWatchとの連携 CloudWatchによりELBの以下を監視可能 • • • • • • 遅延時間 リクエスト数 健全なホスト数 不健全なホスト数 バックエンドの2xx-5xxレスポンス数 ELBの4xxと5xxのレスポンス数 監視 42 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  43. 43. Auto Scalingとの連携 Auto Scalingによるインスタンス増減時にELBへのアタッ チ・デタッチが可能 ELBのヘルスチェックの結果をAuto Scalingに反映可能 利用例: • 一定間隔でレスポンスをチェックし、遅延が増加したらインスタ ンスを自動追加 • ELBのヘルスチェックが成功したEC2インスタンスを常にX台以上 増減 Auto scaling Group 43 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  44. 44. Route53 DNSフェイルオーバ対応 Route53のヘルスチェック機能と連携 • 例:アプリケーション障害時にSorryペー ジヘ誘導 正常時 3. ELB可に健全なイ ンスタンスなし 2. AppサーバのELB ヘルスチェック失敗 フェイルオーバ時 5. Sorry ページ 4. フェイルオーバ S3 Bucket 1. DBに問題発生 44 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  45. 45. Route53 DNSフェイルオーバ対応 設定方法 • Alias Target にELBを指定し、 Routing Policyに「Failover」を選択 Evaluate Target Health: [Yes] 「Associate with Health Check」: 既存のヘルスチェッ クとの関連付け。 「ELB」の場合は原 則「No」を選択 45 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  46. 46. OpsWorksのELB対応 OpsWorksでELBをLBレイヤーに利用可能に ①スタックの作成 ②レイヤーの作成 ③レシピの作成・設定 (ビルトイン レシピ利用可) スタック LBとしてELBが選択可能に Load Balancerレイヤー ④レイヤーにインスタ ンス追加・起動 App Serverレイヤー レシピ ⑤レシピによって パッケージインス トール、設定 Databaseレイヤー レシピ User 46 LB レシピ Web /App Web /App DB AWS Management Console © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  47. 47. 4ELB負荷テストに関するTips 47 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  48. 48. ELBを負荷テストする必要性について ELBのいくつかの特長がテストシナリオに影響を与える 可能性がある。 • • • • • ELBのスケーリング ELBの初期キャパシティ アイドルコネクションタイムアウト バックエンドインスタンスのヘルスチェック Stickyセッション、等 ご利用内容に合わせたシナリオでテストが必要 48 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  49. 49. ELBの負荷テスト方法の種類 シングルクライアントテスト 負荷生成 クライアント バックエンドイン スタンス • 例:Apache Bench(ab) マルチクライアントテスト • 例:curl-loader (都度DNS解決を行うツールが望ましい) 分散テスト • 例:Fabricフレームワーク、 BeesWithMachineGuns ※いずれのテストにおいても、クライアントの負荷が足り ない場合はクライアント数を増やす等で対応可 49 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  50. 50. 想定する最大負荷のテスト 通常のトラフィック時のテスト 負荷 推奨テストアプローチ • トラフィックの多い時 時間 • トラフィックの少ない時 • トラフィックの傾向に変化がある時(朝や昼の時間帯など) 短い時間でトラフィックが大きく変化する場合のテスト ※ELB以外にも負荷生成クライアント、バックエンドEC2 インスタンスも監視すべき • アプリケーション内部の動作も要確認 50 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  51. 51. 負荷テストの注意事項 ELBの初期スケールに注意 • スケールするまでに、HTTP 503レスポンスを返す期間があり得る • 回避策: • ELBの暖気運転( Pre-Warming)申請をする • 5分間隔で50%以上のトラフィック増加をしないよう負荷テストを設定 DNSクエリの仕方に注意 • テストクライアント側で少なくとも1分に1回DNSの再解決をする スティッキーセッション利用時の割り振り方 • 同じCookieでリクエストを続けた場合などは振り分けに偏りが バックエンドインスタンスのアイドルタイムアウト • 60秒以上に設定しないとELBが誤って不健全なホストと見なす可能性あり 51 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  52. 52. 5.まとめ 52 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  53. 53. まとめ ELBはAWSが提供するロードバランシングサービス • 運用管理コストを抑えながらスケーラブルで高可用なインフラ を構築可能 • 各種サービスとの連携もスムーズ&随時拡充 • 負荷試験時はその特性を理解した上で • 急激な負荷の増大が想定される場合には、サポート加入の上で 暖気申請(Pre-Warming)を 53 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  54. 54. 日本語Link (クラウドサービス活用集に掲載) VPC内ELB配置設計指針 ロードバランサとSocket接続を使用したイベント通知 サーバの負荷分散 Elastic Load Balancing開発者ガイド • http://docs.aws.amazon.com/ja_jp/ElasticLoadBalancing/lat est/DeveloperGuide/Welcome.html Elasitc Load Balancingを評価するためのベストプラク ティス • http://d36cz9buwru1tt.cloudfront.net/jp/documentation/Be stPracticesInEvaluatingELB-ja-final.pdf 54 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  55. 55. 英語Link(最新版) 参考資料 • Amazon Elastic Load Balancing Developer Guide http://docs.aws.amazon.com/ElasticLoadBalancing/latest/Devel operGuide/Welcome.html • Best Practices in Evaluating Elastic Load Balancing http://aws.amazon.com/articles/1636185810492479 • Amazon ELB FAQ http://aws.amazon.com/ec2/faqs/ Elastic Load Balancing の箇所 • AWS re: Invent CPN 205: Zero to Millions of Requests https://www.youtube.com/watch?v=xKF-Aawz9oc 55 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×