Contenu connexe
Similaire à ELB & CloudWatch & AutoScaling - AWSマイスターシリーズ
Similaire à ELB & CloudWatch & AutoScaling - AWSマイスターシリーズ (20)
Plus de Amazon Web Services Japan
Plus de Amazon Web Services Japan (20)
ELB & CloudWatch & AutoScaling - AWSマイスターシリーズ
- 4. Agenda
ELBの詳細
基本説明&デモ
応用編
利用上のTIPS/制約
AutoScalingの詳細
CloudWatchの詳細
まとめ
- 5. ELB: Elastic Load Balancing
AWSが提供するロードバランサーのクラウドサービス
ELBの特徴
管理が容易:運用、スケーリングの手間を楽に
負荷分散: 複数EC2サーバーのみならず、異なるデータセンター(AZ:
アベイラビリティゾーン)を跨って、トラフィックを負荷分散
高い可用性: ELBそのものが分散システム、監視され耐障害性高い。
複数サーバ/AZに負荷分散でシステムの耐障害性を高める。
スケーラブル: ELB自体がトラフィックに応じてキャパシティを増減。
負荷にあわせてバックのサーバーを増減させる自動設定可能。
ヘルスチェック機能: ヘルシーなEC2にのみ、トラフィックを分配
安価な従量課金: 初期費用無の従量課金で利用可能
- 6. ELBの概念図
ユーザー
開発者
クライアント
HTTP / HTTPS /
TCP / SSL
HTTP / HTTPS /
ELB TCP / SSL Web
コンソール
EC2 EC2
ゾーンA ゾーンB
東京リージョン
- 7. ELBの基本
サポートしているプロトコル
HTTP、HTTPS、SSL、TCP
ELBはトラフィックにあわせ、自動的にキャパシティを増減する
→数も増減するので、IPアドレスはそれに伴い変わる
(重要) ELBを使用するときには、DNS名を用いる
例: hanako-12345678.ap-northeast-1.elb.amazonaws.com
独自ドメイン名には、名前解決にCNAMEを用いる
AWSマネージメントコンソール(Webコンソール)、API、コマンドラインツ
ール、SDKでELBをコントロールできる
- 11. デモ:ヘルスチェックの設定
ヘルスチェックに使う、
ファイルとして、この例
は、index.htmlだが、
ファイル名は独自のも
のを使うことを推奨
- 16. Agenda
ELBの詳細
基本説明&デモ
応用編
利用上のTIPS/制約
AutoScalingの詳細
CloudWatchの詳細
- 17. ELBの応用編
ELBのSSLサポート
Zone Apexのサポート
Session Stickiness
VPCの中のELBサポート
IPv4とIPv6のサポート (東京リージョンもサポート)
ELBのDNS名に対する複数IPアドレスサポート
- 18. ELBのSSLのサポート
ELBでSSL Terminationが可能
①ELBでSSL Terminationし、バックに復号したものを送信
②ELBでSSL Terminationし、バックに別途暗号化して送る
③SSLをバイパスしてバックにTCPで送信
SSL証明書をELBで一元管理できる
証明書のアップロード/編集は、Webコンソール/IAMのAPI
受け入れるCipher(暗号化プロトコル)の選択も可能
- 19. ELBでのSSLサポート
SSLのサポート
①ELBでSSL Terminationし、バックに復号したものを送信
②ELBでSSL Terminationし、バックに別途暗号化して送る
③SSLをバイパスしてバックにTCPで送信
- 23. 前回セミナーからの新機能!
マネージメントコンソールにて、 マネージメントコンソールから、
後からリスナーの追加が可能 後から、SSL証明書やCipher
に! の変更が可能に!
http://aws.typepad.com/aws_japan/2012/05/elastic-load-balancer-console-
updates-and-ipv6-support-for-2-additional-regions.html
- 24. Zone Apexのサポート
Zone Apex(ゾーン頂点)はDNSの仕様上CNAMEでサポートできない
例) × example.com
○ www.example.com
-> hanako-12345678.ap-northeast-1.elb.amazonaws.com
Route 53は独自機能でこれをサポート!-> Route 53のAliasレコード
http://docs.amazonwebservices.c
om/Route53/latest/DeveloperGuid
e/index.html?CreatingAliasRRSets
.html
- 26. (参考資料) Amazon VPCとは?
AWSクラウド上にプライベートクラウドを構築
①社内からVPN接続して閉域網でAWS利用
②仮想ネットワーキング
オンプレミスとのハイブリッドが簡単に実現
AWSが社内インフラの一部に見える
社内システム、ソフトウェアの移行がより容易に
例:業務システム、バッチ処理、ファイルサーバ
より細やかにネットワークがコントロール可能
2011年8月から全リージョンで利用可能に
Copyright © 2012 Amazon Web Services 26
- 27. お客様のインフラをAWS上に延長する
リージョン EC2内に分離し
VPN たサブネットを
EC2
接続 自由に作成
インターネット
イントラ VPC ゲート
ウェイ
プライベート パブリック
サブネット サブネット
NAT
Copyright © 2012 Amazon Web Services
- 28. VPC内のELBサポート
ELB on VPCの機能
パブリックのELB同機能
ELBのトラフィックをサブネット
をまたいで分散
ELBセキュリティグループで、
より細かくコントロール可能
ELB on VPCの制約
IPv6サポート現状なし
Dedicatedインスタンスはサ
ポートせず
/25 CIDRブロック以上のIP
アドレスが必要
ELB配下でのAuto
Balancingは現時点で未サポ
ート
- 32. Agenda
ELBの詳細
基本説明&デモ
応用編
利用上のTIPS/制約
AutoScalingの詳細
CloudWatchの詳細
- 33. ELBの利用上のTIPS
ELBのIPアドレスを直接用いない(Aレコード、ダメ!絶対!)
IPアドレスは変更する可能性があるのでCNAMEを用いる
高い耐障害性を求めるサイト構築の際は、複数AZを用いて
負荷分散することを推奨
ELBは、マルチAZの負荷分散に追加料金もかからない
ELBの負荷分散の性質(現時点)に注意
ELB は、各 AZ に均等に負荷を割り振る
→各AZに均等、同じインスタンスタイプの利用を推奨
負荷の少ないインスタンスにリクエストを割り振る
- 34. ELBの利用上のTIPS
ヘルスチェックが利用するファイルへのアクセス権に注意
バックエンドのサーバーで認証などを行っている際に、ヘルスチェック
で設定したファイルが、「HTTPのステータスコードで200番を返さない
と」、ヘルスチェックに失敗する
• 対処例: Apache httpdのディレクティブにて:
<Files health_check_file.txt>
Satisfy Any
Allow from all
</Files>
- 35. ELBの利用上のTIPS
ヘルスチェックするページの指定
“軽いページ”を指定する
Webサーバーが返答するかどうか?
“重いページ”を指定する
Web Appサーバ、DBサーバーも含め、
すべてのパーツが動いているかチェック
(参照) CDPのDeep Health Checkパターン
http://aws.clouddesignpattern.org/
- 37. ELBの利用上のTIPS
DNSキャッシングに注意
TTL(60 秒)より長くキャッシュを保持するゲートウェイ、プラットフォー
ムを経由した場合、間違ったDNS設定と似たような状況を引き起こす
可能性がある
ELBでは最低60分間はIPアドレスの再利用はしないが、それ以上に
渡ってキャッシュされる場合、問題が起こる可能性がある
→ 営業/プレミアムサポートにご相談ください
- 38. ELBの利用上のTIPS
SSL証明書のライセンス
技術的には1つの証明書をELBにインストールして、それをバックエン
ドの複数のEC2インスタンスで利用可能。ライセンスに関しては、ドメ
イン単位/サーバー単位で発行など、ベンダーによって異なり注意要
ELBのTCPコネクションは60秒後にTerminateされる
60秒以上の待ち時間が発生する場合は、
アプリケーション側で非同期プロセスをするなど工夫が必要
ELBの負荷テストは要注意。例えば、下記を参照
Best Practices in Evaluating Elastic Load Balancing
http://aws.amazon.com/articles/1636185810492479
参考和訳:
http://understeer.hatenablog.com/entry/2012/02/29/175334
- 40. Agenda
ELBの詳細
基本説明&デモ
応用編
利用上のTIPS/制約
AutoScalingの詳細
CloudWatchの詳細
- 41. Elastic Load ロードバランサ
Balancing
EC2
EC2サーバを
増減する モニタリング
メカニズム ゾーンA ゾーンB サービス
CPU利用率
Auto Scaling CloudWatch
アラーム
- 43. AS: AutoScaling
定義しておいた設定にあわせて、EC2の台数を増減させるメカニズム
サーバーを不要時は落とし、必要時は増加させ、コスト効率を改善
運用を簡易化、自動化する
典型的なユースケース
ピーク対応: リクエストにあわせてキャパシティを増減させる
規模を固定して管理: 不健全なサーバーを除き、数を一定に保つ
ELBとの連携: ELBと連携し、配下のEC2インスタンスを増減させる
スケールさせるためのメカニズム
マニュアル – コマンドラインツール/APIで変更を指定
スケジュール – 希望時刻にあわせてスケールさせる
ポリシーベース-ポリシーを設定しておき、そのポリシーを
CloudWatchのアラーム等で起動する
- 44. AS: AutoScaling
Auto Scalingのその他特徴
通知機能: SNSを利用してアクション実行時に通知送信
ヘルスチェック機能: EC2の状態をチェックする
AutoScalingの設定そのもののコストはかからない
現時点で、AWSマネージメントコンソールの設定はない
コマンドラインツール、もしくはAPIで設定必要
(AWS Elastic Beanstalkはコンソールで可能)
- 45. Auto Scalingが実行するタスク
下記のタスクを実行できる
Launch: インスタンスの起動を行う
Terminate: インスタンスを終了する
HealthCheck: 各インスタンスのヘルスチェックを行う
ReplaceUnhealthy: 不健全なインスタンスを入れ替える
AddToLoadBalancer: 指定したELBにインスタンスを追加する
AZRebalance: AZ間のインスタンスのバランスをとる
AlarmNotification: 起動/終了の通知を送る
ScheduledActions: スケジュールしていたアクションを実行する
- 47. Auto Scalingの3つの基本設定
“Launch Configuration”
起動したいインスタンスのパラメータ設定を行う
どのAMI?、セキュリティグループ?
“Auto Scaling Group”
Auto Scalingさせるグループの設定
どのELBに?どのAZに?サーバMin/Max台数?
どのLaunch Configで?
“Scaling Policy”
アラームが発令されたときのスケーリング量の指定
いくつのインスタンス数を増やす?
- 49. Auto Scaling Groupの作成
Auto Scalingさせるグループの設定
設定内容
特定の“Launch Configuration”の指定
Minimum/Maximum/Desired(初期希望値)のインスタンス数
アベイラビリティゾーンの指定(複数可能)
(ELBを使う場合) ELBの指定
インスタンスのヘルスチェックにELBのヘルスチェックを使うかどうか
インスタンスが起動してヘルスチェックをはじめるまでの待ち時間
(Grace period)
(VPCを使う場合)サブネット
as-create-auto-scaling-groupコマンドを用いる
- 50. Auto Scalingのデモ
サーバー台数を常に2台に保つ設定のデモ
事前準備
ELBの作成
EC2のAMIを作成しておく
(例: Apacheが自動的に起動するもの)
Auto Scaling設定
Launch Configurationを上記AMIを指定して作成
Auto Scaling Groupを、上記のリソースで作成
実験
キャパシティを変更して実験してみる
• EC2をわざと落として自動的に起動するか?
• Desired capacityを増やして、その振る舞いを観察
終了時: リソース消去の順番に注意
- 52. デモ: Auto Scalingの設定
as-create-auto-scaling-group MyAutoScalingGroup --launch-
configuration MyLC --availability-zones=ap-northeast-1a, ap-
northeast-1b --load-balancers MyLoadBalancer --max-size 1 --min-
size 1 --region ap-northeast-1
(事前に、ロードバランサーをゾーン1a,1bで動作させておくことに注意)
- 55. デモ: Auto Scalingの設定
順番に、消去していくことに注意。
as-update-auto-scaling-group
MyAutoScalingGroup --min-size 0 --region ap-
northeast-1
as-delete-auto-scaling-group
MyAutoScalingGroup --region ap-northeast-1
as-delete-launch-config MyLC --region ap-
northeast-1
- 56. Auto Scaling Policyの作成
CloudWatchのアラームが発令されたときのスケーリング量の指
定
設定内容:
増減するインスタンスを数で指定 / 現在のキャパの%指定 / 特定
の数への指定
as-put-scaling-policyコマンドを用いる
- 58. Auto Scalingのスケジューリング
PutScheduledUpdateGroupActionを用いる
AutoScalingGroupName、StartTime、DesiredCapacity、
MaxSize、MinSizeを指定できる
http://docs.amazonwebservices.com/AutoScali
ng/latest/APIReference/index.html?API_PutSc
heduledUpdateGroupAction.html
CDP
Scheduled Auto Scaling パターン
Scheduled Scale Outパターン
- 59. Auto Scaling利用時のTIPS
インスタンスが起動しないときのチェック項目
設定が間違っている(設定したリソースがおかしい。ELB名?)
制限を超えている(インスタンス数の20の初期リミット等)
原因を確かめるために、as-describe-scaling-activities
を用いよう
なぜ、勝手にインスタンスが終了するの??
ヘルスチェック
リバランス
こちらも、原因を確かめるために、as-describe-scaling-activities
を用いよう
- 60. Auto Scaling利用時のTIPS(続き)
インスタンスがトラフィックを受け付けない
ELBのAZ設定が、Auto ScalingのAZ設定と異なっている
→同じである必要がある
Auto Scaling配下のEC2インスタンスのTerminateされる順序
は、指定できない
現時点では、Terminateの順番は指定できません。基本的には、一
番古い起動コンフィグで立ち上がった、課金タイミングの終わりに近
いものが terminate されます
- 61. Auto Scalingの制約
Auto Scalingのリミット
100 Launch Configurations
20 Auto Scaling Groups
125 Actions
50 Policies
20 SNS Topics
→ 営業問い合わせ/プレミアムサポートにご相談ください
- 62. Agenda
ELBの詳細
基本説明&デモ
応用編
利用上のTIPS/制約
AutoScalingの詳細
CloudWatchの詳細
- 63. Elastic Load ロードバランサ
Balancing
EC2
EC2サーバを
増減する モニタリング
メカニズム ゾーンA ゾーンB サービス
CPU利用率
Auto Scaling CloudWatch
アラーム
- 72. CloudWatchのデモ
事前準備
Auto Scalingのポリシーの設定まで済んでいる
(Auto Scalingのデモ時)
CloudWatchのAlarm作成
SNSで通知の設定
Alarm起動時に、Auto Scalingのポリシーを起動する設定
- 79. Agenda
ELBの詳細
基本説明&デモ
応用編
利用上のTIPS/制約
AutoScalingの詳細
CloudWatchの詳細
まとめ
- 81. ELB使用料金の見積もり例
構成例
ELB1台 + バックエンドにEC2 10インスタンス、1TB転送料
見積もり例
Elastic Load Balancing
• 30日間のELB利用料金 = $18
• 1000GBのELBデータ転送 = $8.00 ($0.008/GB)
(オプション)CloudWatchの詳細監視
10インスタンス x 30日間 = $36.75
見積もりツール
http://calculator.s3.amazonaws.com/calc5.html?lng=ja_JP
©2011 Amazon Web Services May not be reused or redistributed without permission
- 82. 請求通知機能(ビリングアラート)
AWSクラウドの利用料金を監視・通知できるように
SNSトピック名、メアド、サー
ビス対象(各サービス/合計)、
金額、通知名を入力すれば、
簡単にアラーム作成可能。
メールが飛んでくるので
Confirmが必要。
US EastでしかAlarmが作
れないが、全リージョンの
合計金額で監視可能
©2011 Amazon Web Services May not be reused or redistributed without permission
- 83. 請求通知機能(ビリングアラート)
$400の利用料金を超えるとこんな通知メールがきます
©2011 Amazon Web Services May not be reused or redistributed without permission
- 84. AWSプレミアムサポート
アーキテクチャ設計に関するガイダンス、ベストプラクティス
も日本語でご案内できます
aws.amazon.com/jp/premiumsupport/
ブロンズ シルバー ゴールド プラチナ
初回応答時間 12時間 4時間 1時間 15分
サポート連絡先 1人 2人 3人 無制限
24/365対応 なし なし あり あり
TEL可能 不可 不可 可能 可能
専任スタッフ なし なし なし あり
特別サポート なし なし なし あり
AWS利用総額の
AWS利用総額の
$0~$10K: 10%
AWS利用総額の 10%
料金 $49
5%
$10K~$80K: 7%
$80K~: 5%
(最低$15K)
(最低$400)
Copyright © 2011 Amazon Web Services
- 86. Webセミナー
ほぼ週刊AWSマイスターシリーズ Reloaded!
ほぼ週刊AWSマイスターシリーズ
5/21 ELB & CloudWatch & Auto Scaling
5/28 AWS SDK for Java/ AWS Toolkit for Eclipse
さらに続々と!
申し込みサイト http://aws.amazon.com/jp/event_schedule/
昨年の資料集 http://aws.amazon.com/jp/aws-meister/