Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

CloudWatchの使い方

52 699 vues

Publié le

Publié dans : Technologie, Business
  • Dating for everyone is here: ❤❤❤ http://bit.ly/369VOVb ❤❤❤
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Dating direct: ❤❤❤ http://bit.ly/369VOVb ❤❤❤
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Hi there! Get Your Professional Job-Winning Resume Here - Check our website! http://bit.ly/resumpro
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

CloudWatchの使い方

  1. 1. CloudWatchの使い方 CM re:Growth Developers.IO Meetup 01 横田慎介 2013/12/10 classmethod.jp 2
  2. 2. CloudWatchとは classmethod.jp 3
  3. 3. CloudWatchとは AWSの各種サービスのリソース状況を監視 するサービス classmethod.jp 4
  4. 4. CloudWatchとは AWSサービスのリソース状況は CloudWatchでしか監視できない 結果の解釈が難しいことがある classmethod.jp 5
  5. 5. CloudWatchとは CloudWatchは監視データ(データポイント) の倉庫。 EC2などのAWSサービスはデータポイン トをCloudWatchに登録 ユーザはデータの統計情報を取得 データポイントそのものではない classmethod.jp 6
  6. 6. CloudWatchとは classmethod.jp 7
  7. 7. 用語 classmethod.jp 8
  8. 8. メトリクス データポイントの入れ物 データポイントは時系列データとして各 メトリック単位にまとめられる メトリックは メトリック名 ネームスペース ディメンジョン (ユニット) で一意に定まる classmethod.jp 9
  9. 9. メトリクス classmethod.jp 10
  10. 10. 6 10,960 32.8 classmethod.jp 24.5 85.2 34,012 6 77.5 11
  11. 11. メトリック名 メトリックの内容を表す CPUUtilization HealthyHostCount DiskReadBytes classmethod.jp 12
  12. 12. メトリック名 CPUUtilization HealtyHostC ount 6 24.5 85.2 6 DiskReadBytes 34,012 10,960 classmethod.jp 13 77.5 32.8
  13. 13. ネームスペース メトリックをまとめるもの AWSではサービスごとのネームスペース AWS/EC2 AWS/RDS AWS/ELB 同じメトリック名であってもネームス ペースが異なれば違うものとして扱われる classmethod.jp 14
  14. 14. ネームスペース AWS/ELB 6 AWS/EC2 24.5 32.8 CPUUtilization 6 34,012 10,960 classmethod.jp 15 AWS/RDS 77.5 85.2 CPUUtilization
  15. 15. ディメンジョン メトリックを何らかの特徴でカテゴライ ズするもの InstanceId(AWS/EC2) AutoScalingGroupName(AWS/EC2) classmethod.jp 16
  16. 16. ディメンジョン AWS/EC2 24.5 34,012 InstanceId=xxx InstanceId=xxx 10,960 32.8 InstanceId=yyy InstanceId=yyy CPUUtilization classmethod.jp DiskReadBytes 17
  17. 17. メトリック メトリックは ネームスペース メトリック名 ディメンジョン で指定する。 例: EC2のCPU使用率(インスタンスIDはxxx) classmethod.jp 18
  18. 18. データの登録と取得 classmethod.jp 19
  19. 19. 登録 メトリック ネームスペース メトリック名 ディメンジョン(任意) タイムスタンプ 値 単一値: 79.3 統計値: SampleCount=5, Sum=500, Minimum=50, Maximum=150 classmethod.jp 20
  20. 20. 登録 リソース② リソース① 20 80 5 / 300 / 10 / 150 5 / 500 / 50 / 150 メトリック 12:00 classmethod.jp 12:01 12:03 21 12:04 12:05
  21. 21. 登録 mon-put-data --namespace DEVELOPERSIO --metric-name test --value 20 --timestamp 2013-12-09T12:00:00Z classmethod.jp 22
  22. 22. 登録 mon-put-data --namespace DEVELOPERSIO --metric-name test --statisticValues "SampleCount=5, Sum=500, Minimum=50, Maximum=150" --timestamp 2013-12-09T12:00:00Z classmethod.jp 23
  23. 23. 取得 メトリック ネームスペース メトリック名 ディメンジョン 開始日時、終了日時 統計 方法:サンプル数、合計、平均 最大値、最小値 周期:60秒~2週間 classmethod.jp 24
  24. 24. 取得 周期60秒で平均を取得する場合 メトリック 20 80 5 / 300 / 10 / 150 5 / 500 / 50 / 150 12:00 12:01 86.66… =(20+500)/(1+5) classmethod.jp 12:03 12:04 63.33… NA =(80+300)/(1+5) 25 12:05 NA
  25. 25. 取得 mon-get-stats --namespace DEVELOPERSIO --metric-name test --statistics “Average" --period 60 --start-time 2013-12-09T12:00:00Z --end-time 2013-12-09T12:10:00Z --headers classmethod.jp 26
  26. 26. 取得 Time : 2013-12-09 12:00:00 Average : 86.66666666666667 Unit : None Time : 2013-12-09 12:03:00 Average : 63.333333333333336 Unit : None classmethod.jp 27
  27. 27. 取得 周期300秒で最小値を取得する場合 メトリック 20 80 5 / 300 / 10 / 150 5 / 500 / 50 / 150 12:00 12:01 12:03 10 classmethod.jp 28 12:04 12:05
  28. 28. 取得 mon-get-stats --namespace DEVELOPERSIO --metric-name test --statistics "Minimum" –-period 300 --start-time 2013-12-09T12:00:00Z --end-time 2013-12-09T12:10:00Z --headers classmethod.jp 29
  29. 29. 取得 Time : 2013-12-09 12:00:00 Minimum : 10.0 Unit : None classmethod.jp 30
  30. 30. AWSメトリクス classmethod.jp 31
  31. 31. AWS/EC2 CPUUtilization DiskReadOps DiskWriteOps DiskReadBytes DiskWriteBytes NetworkIn NetworkOut StatusCheckFailed StatusCheckFailed_Instance StatusCheckFailed_System classmethod.jp 32
  32. 32. AWS/EC2 CPUUtilization DiskReadOps DiskWriteOps DiskReadBytes DiskWriteBytes NetworkIn NetworkOut StatusCheckFailed StatusCheckFailed_Instance StatusCheckFailed_System classmethod.jp 33
  33. 33. AWS/EC2 CPUUtilization OS内部からtopコマンド等で見るCPU使用 率は不正確 http://www.axibase.com/cloud/2010/07/22/ ec2-monitoring-the-case-of-stolen-cpu/ classmethod.jp 34
  34. 34. AWS/EC2 例 CPUUtilization Basicモニタリング 監視間隔:5分 Dimension InstanceID=i-xxxxxxx classmethod.jp 35
  35. 35. AWS/EC2 CPUUtilization 統計値:平均 周期:5分 classmethod.jp 36
  36. 36. AWS/EC2 CPUUtilization 統計値:最大 周期:5分 classmethod.jp 37
  37. 37. AWS/EC2 CPUUtilization 統計値:サンプル数 周期:5分 classmethod.jp 38
  38. 38. AWS/EC2 5分に一回の監視じゃないの? classmethod.jp 39
  39. 39. AWS/EC2 CPUUtilization [ec2-user@zabbix-server ~]$ mon-get-stats > --namespace AWS/EC2 > --metric-name CPUUtilization > --dimensions "InstanceId=i-1c46481e" > --statistics "SampleCount,Average,Sum,Maximum,Minimum" > --period 300 > --start-time 2013-12-09T10:10:00.000Z > --end-time 2013-12-09T10:30:00.000Z > --region ap-northeast-1 > --aws-credential-file /opt/aws/credential-file > --headers Time SampleCount Average Sum Minimum Maximum Unit 2013-12-09 10:10:00 5.0 96.704 483.52 91.8 100.0 Percent 2013-12-09 10:15:00 5.0 96.338 481.69 95.0 100.0 Percent 2013-12-09 10:20:00 5.0 97.682 488.41 93.44 100.0 Percent 2013-12-09 10:25:00 5.0 97.688 488.44 95.08 100.0 Percent classmethod.jp 40
  40. 40. AWS/EC2 CPUUtilization Time : 2013-12-09 10:10:00 SampleCount : 5.0 Average : 96.704 Sum : 483.52 Minimum : 91.8 Maximum :100 Unit : percent classmethod.jp 41
  41. 41. AWS/EC2 i-xxxxx 5 / 480 / 95 / 100 CPUUtilization(InstanceId=i-xxxxx) 12:00 classmethod.jp 12:05 12:10 42 12:15 12:20
  42. 42. AWS/EC2 CPUUtilization [ec2-user@zabbix-server ~]$ mon-get-stats > --namespace AWS/EC2 > --metric-name CPUUtilization > --dimensions "InstanceId=i-1c46481e" > --statistics "SampleCount,Average,Sum,Maximum,Minimum" > --period 60 > --start-time 2013-12-09T10:10:00.000Z > --end-time 2013-12-09T10:30:00.000Z > --region ap-northeast-1 > --aws-credential-file /opt/aws/credential-file > --headers Time SampleCount Average Sum Minimum Maximum Unit 2013-12-09 10:14:00 5.0 96.704 483.52 91.8 100.0 Percent 2013-12-09 10:19:00 5.0 96.338 481.69 95.0 100.0 Percent 2013-12-09 10:24:00 5.0 97.682 488.41 93.44 100.0 Percent 2013-12-09 10:29:00 5.0 97.688 488.44 95.08 100.0 Percent classmethod.jp 43
  43. 43. AWS/EC2 CPUUtilization Time : 2013-12-09 10:14:00 SampleCount : 5.0 Average : 96.704 Sum : 483.52 Minimum : 91.8 Maximum :100 Unit : percent classmethod.jp 44
  44. 44. AWS/EC2 CPUUtilization 統計値:平均 周期:1分 classmethod.jp 45
  45. 45. AWS/EC2 CPUUtilization 統計値:平均 周期:5分 classmethod.jp 46
  46. 46. AWS/EC2 周期を1分にしても、1分毎の平均ではな く、5分毎の平均がプロットされる サンプル数の場合も、1分間ではなく5分 間のサンプル数がプロットされる classmethod.jp 47
  47. 47. AWS/EC2 紛らわしいので、周期は監視間隔より大き い値を指定する 監視間隔は下記URLで確認 http://aws.amazon.com/jp/cloudwatch/ classmethod.jp 48
  48. 48. AWS/EC2 詳細モニタリング 監視間隔:1分 $3.675/月 classmethod.jp 49
  49. 49. AWS/EC2 classmethod.jp 50
  50. 50. AWS/EC2 CPUUtilization [ec2-user@zabbix-server ~]$ mon-get-stats ¥ --namespace AWS/EC2 ¥ --metric-name CPUUtilization ¥ --dimensions "InstanceId=i-1c46481e" ¥ --statistics "SampleCount,Average,Sum,Maximum,Minimum" ¥ --period 60 ¥ --start-time 2013-12-10T00:00:00.000Z ¥ --end-time 2013-12-10T00:05:00.000Z ¥ --region ap-northeast-1 ¥ --aws-credential-file /opt/aws/credential-file ¥ --headers Time SampleCount Average Sum Minimum Maximum Unit 2013-12-10 00:00:00 1.0 32.43 32.43 32.43 32.43 Percent 2013-12-10 00:01:00 1.0 96.72 96.72 96.72 96.72 Percent 2013-12-10 00:02:00 1.0 100.0 100.0 100.0 100.0 Percent 2013-12-10 00:03:00 1.0 91.8 91.8 91.8 91.8 Percent 2013-12-10 00:04:00 1.0 95.0 95.0 95.0 95.0 Percent classmethod.jp 51
  51. 51. AWS/EC2 CPUUtilization Time : 2013-12-10 00:00:00 SampleCount : 1.0 Average : 96.72 Sum : 96.72 Minimum : 96.72 Maximum : 96.72 Unit : Percent classmethod.jp 52
  52. 52. AWS/EC2 i-xxxxx 95 CPUUtilization(InstanceId=i-xxxxx) 12:00 classmethod.jp 12:01 12:02 12:03 12:04 12:05 53 12:06 12:07
  53. 53. AWS/EC2 Basic監視も詳細監視も1分に1回の監視 を行っている 違いは監視結果をデータポイントとして CloudWatchに登録する頻度 classmethod.jp 54
  54. 54. AWS/EC2 CPUUtilization [ec2-user@zabbix-server ~]$ mon-get-stats ¥ --namespace AWS/EC2 ¥ --metric-name CPUUtilization ¥ --dimensions "InstanceId=i-1c46481e" ¥ --statistics "SampleCount,Average,Sum,Maximum,Minimum" ¥ --period 300 ¥ --start-time 2013-12-10T00:00:00.000Z ¥ --end-time 2013-12-10T00:10:00.000Z ¥ --region ap-northeast-1 ¥ --aws-credential-file /opt/aws/credential-file ¥ --headers Time SampleCount Average Sum Minimum Maximum Unit 2013-12-10 00:00:00 5.0 83.19 415.95 32.43 100.0 Percent 2013-12-10 00:05:00 5.0 96.662 483.31 95.0 100.0 Percent classmethod.jp 55
  55. 55. AWS/EC2 CPUUtilization Time : 2013-12-10 00:00:00 SampleCount : 5.0 Average : 83.19 Sum : 415.95 Minimum : 32.43 Maximum : 100.0 Unit : Percent classmethod.jp 56
  56. 56. AWS/EC2 NetworkIn NetworkOut 1分間のネットワーク転送量(バイト) classmethod.jp 57
  57. 57. AWS/EC2 NetworkIn [ec2-user@zabbix-server ~]$ mon-get-stats > --namespace AWS/EC2 > --metric-name NetworkIn > --dimensions "InstanceId=i-43523f46" > --statistics "SampleCount,Average,Sum,Maximum,Minimum" > --period 300 > --start-time 2013-12-09T16:10:00.000Z > --region ap-northeast-1 > --aws-credential-file /opt/aws/credential-file > --headers Time SampleCount Average Sum Minimum Maximum Unit 2013-12-09 16:10:00 5.0 154.0 770.0 42.0 444.0 Bytes 2013-12-09 16:15:00 5.0 122.4 612.0 42.0 264.0 Bytes 2013-12-09 16:20:00 5.0 3224.0 16120.0 132.0 9184.0 Bytes 2013-12-09 16:25:00 5.0 29705.4 148527.0 306.0 135225.0 Bytes 2013-12-09 16:30:00 5.0 868.0 4340.0 306.0 1568.0 Bytes classmethod.jp 58
  58. 58. AWS/EC2 DiskReadOps DiskWriteOps DiskReadBytes DiskWriteBytes エフェメラルディスク(ローカルディスク) の監視結果 EBSを使っている場合はAWS/EBSのメト リクスを参照する classmethod.jp 59
  59. 59. AWS/EC2 Disk* classmethod.jp 60
  60. 60. AWS/EBS VolumeRead/Write 5分間の読み込み・書き込み回数(回) classmethod.jp 61
  61. 61. AWS/ELB ロードバランシングサービス 『ELBの挙動とCloudWatchメトリクスの 読み方を徹底的に理解する』 http://dev.classmethod.jp/cloud/aws/elband-cloudwatch-metrics-in-depth/ http://docs.aws.amazon.com/ElasticLoad Balancing/latest/DeveloperGuide/US_Moni toringLoadBalancerWithCW.html classmethod.jp 62
  62. 62. AWS/ELB ELBは分散システム = classmethod.jp 63
  63. 63. AWS/ELB ELBは分散システム 台数はNetwork Interfacesで確認 高負荷時には数十台まで増える 各ノードがデータポイントを登録する classmethod.jp 64
  64. 64. AWS/ELB CPUUtilization(InstanceId=i-xxxxx) 12:00 classmethod.jp 12:01 12:02 12:03 12:04 12:05 65 12:06 12:07
  65. 65. AWS/ELB {Healthy,Unhealty}HostCount RequestCount Latency HTTPCode_ELB_{4,5}XX HTTPCode_Backend_{2,3,4,5}XX BackendConnectionErrors SurgeQueueLength SpilloverCount classmethod.jp 66
  66. 66. AWS/ELB {Healthy,Unhealty}HostCount ノードと同じアベイラビリティゾーン にあるEC2インスタンスのうち {Healty,Unhealty}なものの数 classmethod.jp 67
  67. 67. AWS/ELB 2 Availability Zone classmethod.jp 4 Availability Zone 68
  68. 68. AWS/ELB {Healthy,Unhealty}HostCount ノードと同じアベイラビリティゾーン にあるEC2インスタンスのうち {Healty,Unhealty}なものの数 ディメンジョン LoadBalancerName=TestELB AvailabilityZone=ap-northeast-1c 統計値:平均 マルチAZ構成の場合は、合計する classmethod.jp 69
  69. 69. AWS/ELB RequestCount バックエンドのインスタンスからレス ポンスが返ってきた数 ディメンジョン LoadBalancerName=TestELB 統計値:合計 classmethod.jp 70
  70. 70. AWS/ELB HTTPCode_ELB_{4,5}XX HTTPCode_Backend_{2,3,4,5}XX BackendConnectionErrors ディメンジョン LoadBalancerName=TestELB 統計値:合計 classmethod.jp 71
  71. 71. AWS/ELB Latency EBLからバックエンドのインスタン スにリクエストが送信されてから、 レスポンスが戻るまでの時間 ディメンジョン LoadBalancerName=TestELB 統計値:平均、最大値 classmethod.jp 72
  72. 72. AWS/ELB SurgeQueueLength バックエンドへのリクエスト待ち キューの長さ ディメンジョン LoadBalancerName=TestELB 統計値:最大値 平均値、最小値 classmethod.jp 73
  73. 73. AWS/ELB SpilloverCount キューがあふれて、 HTTPCode_ELB_500エラーが返った数 ディメンジョン LoadBalancerName=TestELB 統計値:合計 classmethod.jp 74
  74. 74. まとめ 期待しているものと違う値をとっている 可能性がある 主要なメトリクスはドキュメントで確認 メトリクスの値があらわすもの メトリクスに適した統計値 監視間隔 http://docs.aws.amazon.com/AmazonClou dWatch/latest/DeveloperGuide/CW_Suppo rt_For_AWS.html classmethod.jp 75

×