SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
AWS運用監視ノウハウ 
CloudWatch 
〜作ってからが本番です!〜 
JAWS Festa Tohoku 2014
はじめまして!(じゃない方はこんにちは!) 
Masashi Terui 
照井 将士 
! 
https://www.facebook.com/marcy.terui 
https://twitter.com/FumblePerson 
! 
          (株)アグレックス 札幌事業所 システム部 
          AWS Consulting Partner New!! 
          AWSチーム技術リーダー(的な立ち位置) 
! 
JAWS-UG札幌下っ端メンバー 
Chef Meetup Sapporo主催 New!! 
! 
東京生まれ札幌育ち 
1987年 東京都大田区に生まれる 
1992年 札幌へ移住 
! 
好きなAWSサービス:AWSドキュメント(サービスじゃないけど)
Agenda 
CloudWatchって何? 
なんでCloudWatch? 
基本操作とカスタムメトリクス(デモ) 
CloudWatchの基本概念 
CloudWatchの良い所 
CloudWatchの足りない所 
もっと便利に 
新機能CloudWatch Logs 
まとめ 
この辺りは独自の解釈が含まれており、 
AWSの公式情報ではない部分も多いです。
CloudWatchって何? 
AWSのリソースをモニタリングするためのWebサービス 
CloudWatchの特徴 
EC2インスタンスや各サービスのモニタリング 
利用料金の取得も可能 
その他、カスタムメトリクスとして、 
任意のデータも保存可能 
メトリクスをベースにアラームを設定できる 
アラームからAuto Scaling Policy実行、SNSで通知
なんでCloudWatch? 
その疑問は正しいです 
数あるサービスの中でも地味 
ぶっちゃけイケてない所もある(良い所もいっぱいありますよ!) 
Zabbix,NagiosとかNew Relic,Mackerelとかの方が良い所あるよ? 
だがしかし!AWSを便利に使いたいなら必須! 
RDSとかELBとかそもそも独自の内部監視(Agent等)を入れられない 
特にELBは埋もらせておくには惜しい情報が多い 
AutoScalingやる時に使う 
どうせ使わないといけないなら上手く使いたい 
運用監視大事! 
派手な構築の話だけでは実際のシステムは成り立たない 
わがまま言ってごめんなさい(to 関係者)
CloudWatchの基本概念 
CloudWatchは必ずしも監視サービスではないかも? 
フルマネージドな時系列データストア+アプリケーション 
メトリクスのグラフGUIが付いてる 
閾値を指定してトリガーを登録できる 
組み合わせることで監視サービスになる 
トリガーにSNSを登録してプッシュ通知 
E-mail 
HTTP Request → 自動リアルタイム処理(すぐにアクション) 
SQS → 自動バッチ処理(時間がかかる、確実に処理したい) 
他サービス同様、APIで情報取得・コントロールができる 
独自の監視の仕組みが作れる 
監視以外にも使える 
少なくともAutoScalingは監視じゃない 
AutoScalingや各種自動化等の運用支援サービスと言えるかも
CloudWatchの基本概念(図にすると)
CloudWatchの基本概念(図にすると) 
全ての中心にある大事なサービス 
…っぽく見える(見せ方の問題?w)
基本操作とカスタムメトリクス(デモ) 
この後色々話しますが、基本は簡単です。 
というのをデモで感じてもらえれば…
基本操作とカスタムメトリクス(デモ) 
実際の手順 
SNSトピックを登録 
メール通知 
Subscribe(通知受信許可) 
IAM Role作成 
cloudwatch:putMetricData(メトリクス送信) 
ec2:describeInstances(自身のデータを取得) 
EC2起動 
UserData(cloud-init)で諸々設定 
Apache HTTP Serverインストール 
定期的にhttpdプロセス数のカスタムメトリクスを送信する設定 
アラーム設定 
httpdプロセス数のカスタムメトリクス 
Apache Benchでプロセス数を上げてみる 
メール通知が飛んだら成功! 
時間の都合上この方法ですが、先に作成してからSSHで流す、 
Chefレシピやスクリプト実行等、方法は色々あります。
基本操作とカスタムメトリクス(デモ) 
IAM Roleの内容 
{ 
"Version": "2012-10-17", 
"Statement": [ 
{ 
"Effect": "Allow", 
"Action": [ 
"ec2:DescribeInstances", 
"cloudwatch:PutMetricData" 
], 
"Resource": [ 
"*" 
] 
} 
] 
}
基本操作とカスタムメトリクス(デモ) 
UserDataのシェル内容 
#!/bin/sh 
REGION=`curl http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/.$//g'` 
ENDPOINT=http://monitoring.$REGION.amazonaws.com 
INSTANCE_ID=`curl http://169.254.169.254/latest/meta-data/instance-id` 
INSTANCE_NAME=$(aws ec2 describe-instances --region ${REGION} --instance-ids ${INSTANCE_ID} --query 
'Reservations[].Instances[].Tags[?Key==`Name`].Value' --output text) 
( 
cat <<-EOP 
#!/bin/sh 
PROC=`ps -ef | grep "httpd" | grep -v "grep" | wc -l` 
NOW=`date --iso-8601=seconds` 
aws cloudwatch --region=$REGION --endpoint-url=$ENDPOINT put-metric-data --namespace "System/Linux" --metric-data "[{"Dimensions": 
[{"Name":"Instance","Value":"$INSTANCE_NAME($INSTANCE_ID)"}],"Timestamp":"$NOW","Value":$PROC.0,"Unit":"Count", 
"MetricName":"Process-httpd"}]" 
EOP 
) > /usr/local/cloudwatch.sh 
chmod 755 /usr/local/cloudwatch.sh 
( 
cat <<-EOP 
* * * * * /usr/local/cloudwatch.sh > /dev/null 2>&1 
EOP 
) > /usr/local/.crontab 
crontab /usr/local/.crontab 
yum -y install httpd php 
( 
cat <<-EOP 
<?php sleep(1); ?> 
JAWS Festa 2014!!<br/> 
$INSTANCE_NAME($INSTANCE_ID) 
EOP 
) > /var/www/html/index.html 
/etc/init.d/httpd start
CloudWatchの良い所 
安い(2014.09.06現在、月当たり) 
無料枠 
標準提供のメトリクス 
10カスタムメトリクス、10アラーム、100万APIリクエスト 
料金設定 
$0.50 / カスタムメトリクス 
$0.10 / アラーム 
$0.01 / 1,000 API リクエスト 
監視用にサーバ立てるよりも遥かに安いと思われる 
サーバ/システム保守コストも考えよう 
もちろん使い方による
CloudWatchの良い所 
スケーラブル 
何百台でも何千台でも 
何項目(カスタムメトリクス)でも 
カスタムメトリクスでなんでも突っ込める 
メトリクスの取得APIもシステム負荷を気にせずにいつでもどこでも 
保存容量無制限(ただし、保存期間は2週間) 
フルマネージドで運用要らず(↓自前運用時の例) 
メトリクスデータストア(DBサーバ) 
APIエンドポイント(Web/APサーバ) 
Web GUI(Web/APサーバ) 
通知システム(メールサーバ等)
CloudWatchの良い所 
他サービスとの連携 
AutoScaling 
SNSによる多彩な通知方法 
人に通知(メール) 
システムに通知(HTTP、SQS) 
IAMによる認証機構 
IAM Role 
Credentialキー 
二段階認証 
目的別に権限指定できる(↓例) 
監視対象にはメトリクス登録権限だけ与える 
メトリクス取得だけできる外部監視システム連携用 
グラフを見るだけの監視員ユーザ
CloudWatchの足りない所 
2週間しか保存できない 
メトリクスの間隔は最短1分 
秒単位のリアルタイム監視ができない 
ただし、1分間(以上も可)の集計値を入れることもできる 
Max,Min,Total,SampleCountの項目がある 
単純に一つの瞬間値だけ入れることも可能 
通知内容のフォーマットが変えられない 
SNS側の制限でもある 
メッセージタイトルがどうなるか考えて名前とか付ける必要が… 
メッセージ文面が分かりづらい(もちろん英語…) 
システム通知のフォーマット変わると困るけど
CloudWatchの足りない所 
最近はだいぶ良くなったけど、まだGUIが微妙…     ※個人的見解 
メトリクスのデータ構造が独自でちょっとわかりにくい ※個人的見解 
Namespace ≒ 監視グループ(標準ではサービス毎) 
MetricName ≒ 監視項目 
Dimensions ≒ 監視対象の情報(e.g. AZ, Instance[Name,Id]) 
ここから先は個人的願望ですw 
メトリクスにタグつけたい 
アラームにタグつけたい 
Dimensionsだとメトリクスデータの持ち方が変わってしまうので
もっと便利に 
別のデータストアに連携する 
2週間より長く保持したい 
見ることをとりあえず考えないならS3 
すぐに or 定期的に見たいなら(+もっと見やすく!) 
GrowthForecast(主にMySQL)→ シンプル! 
http://kazeburo.github.io/GrowthForecast/index.ja.html 
Zabbix(主にMySQL)→ 多機能なので見るだけだと勿体無い 
http://www.zabbix.com/jp/ 
Grafana (Graphite or InfluxDB) → オススメ! 
http://grafana.org/ 
その他にも色々あります 
視覚化目的の場合、CloudWatchを一時保管用・予備GUIと捉えると良い 
2週間以前が失われても仕方ないと割り切る 
データストアの可用性担保や障害復旧にゆとりができる 
長期保存要件があるならついでにS3に入れておく
もっと便利に 
参考までに弊社の監視ダッシュボード(by Grafana)です。 
ほとんどの情報をCloudWatchから取得している。 
一部例外有(Response TimeやSlow Query等) 
! 
請求情報やインスタンス数とかも見れたり… 
※部外者に見せたら怒られるので載せてませんがw
もっと便利に 
メール以外の通知方法を作る 
IRC 
チャットサービス(HipChatやSlack等) 
Twitter 
SNSのHTTP通知やSQS通知 
HTTP通知をどこかのサーバで受ける 
SQSをどこかのサーバがポーリング 
受け取ったメッセージを解析し、対象のAPI等へ送信 
中継だけじゃなく、システム内で閉じた自動対応の仕組みも作れる 
そこまではやってないですが…いずれやりたい
もっと便利に 
参考までに弊社のHipChat通知 
通知された内容だけだと、 
その時何が起きているのか把握しにくいので、 
全体の状態を取得した上で出したりしている 
状態が変化したら再度通知 
平常時の監視運用業務から煩雑なメールを撤廃 
モバイルクライアントもあるので外出先からも見られる 
※見たく無いですけどね!w
もっと便利に 
別の監視システムと統合する 
一つであらゆる問題に対応できるものは無い(当然CloudWatchも) 
既に確立された監視の仕組みを持っている場合 
EC2はそれをそのまま使っても良い 
その他サービスはAPIでデータを抜いて集約する方法もある 
ZabbixとかSensuとかだとWeb上に色々情報がある 
おググりください 
誰かが作ったPluginが既に公開されている場合も 
https://github.com/sensu/sensu-community-plugins 
逆に、別のシステムで取ったデータをCloudWatchに集約しても良い 
カスタムメトリクスは何でもあり(形式さえ合わせられれば) 
別の監視ツールなら簡単に取れて有用な指標もある 
全く別々に扱うと運用に困るかも… 
集約する or 役割分担をハッキリしておく
もっと便利に 
参考までにCloudWatch→Graphite(Grafana)のデータ連携を行うスクリプト(PHP) 
都合上、実際に使用している 
ものではありませんが、 
全体でたったの60行未満。 
※ウンコードなのはご勘弁w 
! 
これを定期的(cron)に実行。 
! 
大体こんなレベルで大抵は 
実現できたりします。
新機能CloudWatch Logs 
新機能!(2014.07 AWS Summit NYCで発表された) 
ログの監視と集約のための機能 
無料枠が大きい! 
モニタリング用5GB(期間指定) 
アーカイブ用5GB(指定期間後自動でアーカイブ) 
現状はUS Eastのみのサポート 
とりあえず貯めるだけなら別にUSでも良いかも 
バックエンドはKinesisらしい 
Kinesisは東京来てるから時間の問題?
新機能CloudWatch Logs 
転送エージェントを利用してアップロード 
AWS純正エージェント 
fluent-plugin-cloudwatch-logs 
もちろんAPIからのアップロードも可能 
ただし、欠損等のケアは自分でやらないといけない 
ログの保管形式 
Log Event ≒ ログレコード 
Log Stream ≒ 発生元毎のログシーケンス 
Log Group ≒ ログ種別 
フィルターを設定する 
該当した数がCloudWatchメトリクスとして登録される 
モニタリング 
アラーム設定して通知 
It’s me!! ※他Pluginの機能を移植しただけw
新機能CloudWatch Logs 
新機能で使い倒してないので所感レベルですいません 
安い 
大きな無料枠 
モニタリング対象は月当たり$0.5/GB 
長期保存アーカイブは≒S3の保存料金っぽい 
アーカイブ時にさらに圧縮されて保存されるらしい 
とりあえずでS3に入れて塩漬けになっているようであれば乗り換え対象 
他のログ管理サービスと比べると物足りない感がある? 
リアルタイムモニタリングできない 
検索できない 
目指している方向が違う気もしている 
現状はフィルター(からのメトリクス)監視に特化 
CloudWatchと同じで、物足りない部分は他と連携して解決するものっぽい 
一時集約用+長期保存アーカイブ 
何か(例えばFluentd Plugin)で吸い上げて分析用データストアへ…とか? 
今後、機能は増えるはずなのであくまで現状
まとめ 
作ってからが本番です! 
AWSを使う上で、CloudWatchは避けて通ることはできない 
シンプルにも使えるし、色々組み合わせて便利にも使える 
便利な機能がたくさんあるが、物足りない部分もある 
利点は活用し、欠点は何かで補って使おう 
他ツール連携やAPIインテグレーションは実は簡単 
あなたの運用監視スタイルを確立しよう! 
上手に使って良い運用監視ライフを!
Thank you!!

Weitere ähnliche Inhalte

Was ist angesagt?

AWS運用における最適パターンの徹底活用
AWS運用における最適パターンの徹底活用AWS運用における最適パターンの徹底活用
AWS運用における最適パターンの徹底活用JustSystems Corporation
 
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編Amazon Web Services Japan
 
ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後Recruit Technologies
 
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ  Amazon CloudWatch & Auto ScalingAWS Black Belt Techシリーズ  Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto ScalingAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Amazon S3 バックアップ~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Amazon S3 バックアップ~AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Amazon S3 バックアップ~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Amazon S3 バックアップ~Amazon Web Services Japan
 
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全てAWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全てHinemos
 
AWS Black Belt Techシリーズ AWS CloudFormation
AWS Black Belt Techシリーズ  AWS CloudFormationAWS Black Belt Techシリーズ  AWS CloudFormation
AWS Black Belt Techシリーズ AWS CloudFormationAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターンAWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターンAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAmazon Web Services Japan
 
[AWSマイスターシリーズ] Instance Store & Elastic Block Store
[AWSマイスターシリーズ] Instance Store & Elastic Block Store[AWSマイスターシリーズ] Instance Store & Elastic Block Store
[AWSマイスターシリーズ] Instance Store & Elastic Block StoreAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~Amazon Web Services Japan
 
AWS初心者向けWebinar これで完璧、AWSの運用監視
AWS初心者向けWebinar これで完璧、AWSの運用監視AWS初心者向けWebinar これで完璧、AWSの運用監視
AWS初心者向けWebinar これで完璧、AWSの運用監視Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 EC2 Windows
AWS Black Belt Online Seminar 2017 EC2 WindowsAWS Black Belt Online Seminar 2017 EC2 Windows
AWS Black Belt Online Seminar 2017 EC2 WindowsAmazon Web Services Japan
 
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編Amazon Web Services Japan
 
初心者向けWebinar AWSでDRを構築しよう
初心者向けWebinar AWSでDRを構築しよう初心者向けWebinar AWSでDRを構築しよう
初心者向けWebinar AWSでDRを構築しようAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門Amazon Web Services Japan
 
Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124satoshi
 

Was ist angesagt? (20)

AWS運用における最適パターンの徹底活用
AWS運用における最適パターンの徹底活用AWS運用における最適パターンの徹底活用
AWS運用における最適パターンの徹底活用
 
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
 
ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後
 
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ  Amazon CloudWatch & Auto ScalingAWS Black Belt Techシリーズ  Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
 
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Amazon S3 バックアップ~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Amazon S3 バックアップ~AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Amazon S3 バックアップ~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Amazon S3 バックアップ~
 
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全てAWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
 
AWS Black Belt Techシリーズ AWS Lambda
AWS Black Belt Techシリーズ AWS LambdaAWS Black Belt Techシリーズ AWS Lambda
AWS Black Belt Techシリーズ AWS Lambda
 
AWS Black Belt Techシリーズ AWS CloudFormation
AWS Black Belt Techシリーズ  AWS CloudFormationAWS Black Belt Techシリーズ  AWS CloudFormation
AWS Black Belt Techシリーズ AWS CloudFormation
 
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターンAWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
 
AWS Black Belt Online Seminar Antipattern
AWS Black Belt Online Seminar AntipatternAWS Black Belt Online Seminar Antipattern
AWS Black Belt Online Seminar Antipattern
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon Athena
 
[AWSマイスターシリーズ] Instance Store & Elastic Block Store
[AWSマイスターシリーズ] Instance Store & Elastic Block Store[AWSマイスターシリーズ] Instance Store & Elastic Block Store
[AWSマイスターシリーズ] Instance Store & Elastic Block Store
 
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
 
AWS初心者向けWebinar これで完璧、AWSの運用監視
AWS初心者向けWebinar これで完璧、AWSの運用監視AWS初心者向けWebinar これで完璧、AWSの運用監視
AWS初心者向けWebinar これで完璧、AWSの運用監視
 
AWS Black Belt Online Seminar 2017 EC2 Windows
AWS Black Belt Online Seminar 2017 EC2 WindowsAWS Black Belt Online Seminar 2017 EC2 Windows
AWS Black Belt Online Seminar 2017 EC2 Windows
 
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
 
初心者向けWebinar AWSでDRを構築しよう
初心者向けWebinar AWSでDRを構築しよう初心者向けWebinar AWSでDRを構築しよう
初心者向けWebinar AWSでDRを構築しよう
 
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
 
Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124
 

Ähnlich wie AWS運用監視ノウハウ CloudWatch 〜作ってからが本番です!〜

AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~Daisuke Ikeda
 
Cloud Automator構成レビューを支える技術
Cloud Automator構成レビューを支える技術Cloud Automator構成レビューを支える技術
Cloud Automator構成レビューを支える技術hideaki yanase
 
インフラ系自主トレするならAWS
インフラ系自主トレするならAWSインフラ系自主トレするならAWS
インフラ系自主トレするならAWSYasuhiro Araki, Ph.D
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Takuro Sasaki
 
20140508_JAWS-UG岩手#1
20140508_JAWS-UG岩手#120140508_JAWS-UG岩手#1
20140508_JAWS-UG岩手#1Tomoya Ishida
 
20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublicjunkoy66
 
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスScraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスTakuro Sasaki
 
Aws summits2014 ガリバーインターナショナル社内システムのaws化
Aws summits2014 ガリバーインターナショナル社内システムのaws化Aws summits2014 ガリバーインターナショナル社内システムのaws化
Aws summits2014 ガリバーインターナショナル社内システムのaws化Boss4434
 
AWS 0からはじめるハンズオン
AWS 0からはじめるハンズオンAWS 0からはじめるハンズオン
AWS 0からはじめるハンズオンgu4
 
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたいはじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたいKazumi IWANAGA
 
20140329 JAWS-UG和歌山
20140329 JAWS-UG和歌山20140329 JAWS-UG和歌山
20140329 JAWS-UG和歌山Tomoya Ishida
 
エンジニア向け初めてのAWS (2015年1月6日)
エンジニア向け初めてのAWS (2015年1月6日)エンジニア向け初めてのAWS (2015年1月6日)
エンジニア向け初めてのAWS (2015年1月6日)Koichiro Nishijima
 
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013Takashi Someda
 
リクルートの利用事例から考える AWSの各サービスとセキュリティ
リクルートの利用事例から考える AWSの各サービスとセキュリティリクルートの利用事例から考える AWSの各サービスとセキュリティ
リクルートの利用事例から考える AWSの各サービスとセキュリティRecruit Technologies
 

Ähnlich wie AWS運用監視ノウハウ CloudWatch 〜作ってからが本番です!〜 (20)

AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
 
Aws cloud watch
Aws cloud watchAws cloud watch
Aws cloud watch
 
Aws説明資料
Aws説明資料Aws説明資料
Aws説明資料
 
Cloud Automator構成レビューを支える技術
Cloud Automator構成レビューを支える技術Cloud Automator構成レビューを支える技術
Cloud Automator構成レビューを支える技術
 
インフラ系自主トレするならAWS
インフラ系自主トレするならAWSインフラ系自主トレするならAWS
インフラ系自主トレするならAWS
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
 
20140508_JAWS-UG岩手#1
20140508_JAWS-UG岩手#120140508_JAWS-UG岩手#1
20140508_JAWS-UG岩手#1
 
OpsJAWS 20160128
OpsJAWS 20160128OpsJAWS 20160128
OpsJAWS 20160128
 
20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic
 
Ops jaws meetup#3
Ops jaws meetup#3Ops jaws meetup#3
Ops jaws meetup#3
 
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスScraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
 
Aws summits2014 ガリバーインターナショナル社内システムのaws化
Aws summits2014 ガリバーインターナショナル社内システムのaws化Aws summits2014 ガリバーインターナショナル社内システムのaws化
Aws summits2014 ガリバーインターナショナル社内システムのaws化
 
AWS 0からはじめるハンズオン
AWS 0からはじめるハンズオンAWS 0からはじめるハンズオン
AWS 0からはじめるハンズオン
 
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたいはじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
 
JAWS DAYS 2015
JAWS DAYS 2015JAWS DAYS 2015
JAWS DAYS 2015
 
20130326 aws meister-reloaded-windows
20130326 aws meister-reloaded-windows20130326 aws meister-reloaded-windows
20130326 aws meister-reloaded-windows
 
20140329 JAWS-UG和歌山
20140329 JAWS-UG和歌山20140329 JAWS-UG和歌山
20140329 JAWS-UG和歌山
 
エンジニア向け初めてのAWS (2015年1月6日)
エンジニア向け初めてのAWS (2015年1月6日)エンジニア向け初めてのAWS (2015年1月6日)
エンジニア向け初めてのAWS (2015年1月6日)
 
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
 
リクルートの利用事例から考える AWSの各サービスとセキュリティ
リクルートの利用事例から考える AWSの各サービスとセキュリティリクルートの利用事例から考える AWSの各サービスとセキュリティ
リクルートの利用事例から考える AWSの各サービスとセキュリティ
 

Mehr von Terui Masashi

Reliability Engineering for Enterprise Serverless
 Reliability Engineering  for Enterprise Serverless Reliability Engineering  for Enterprise Serverless
Reliability Engineering for Enterprise ServerlessTerui Masashi
 
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことTerui Masashi
 
クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)
クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)
クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)Terui Masashi
 
The Internal of Serverless Plugins
The Internal of Serverless PluginsThe Internal of Serverless Plugins
The Internal of Serverless PluginsTerui Masashi
 
Unlimited Frameworks
Unlimited FrameworksUnlimited Frameworks
Unlimited FrameworksTerui Masashi
 
Cloud Vsion APIによるGUIの検証自動化
Cloud Vsion APIによるGUIの検証自動化Cloud Vsion APIによるGUIの検証自動化
Cloud Vsion APIによるGUIの検証自動化Terui Masashi
 
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜Terui Masashi
 
Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?Terui Masashi
 
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜Terui Masashi
 
R○Sに学ぶイマドキのMySQL構築運用
���������������������������������������R○Sに学ぶイマドキのMySQL構築運用���������������������������������������R○Sに学ぶイマドキのMySQL構築運用
R○Sに学ぶイマドキのMySQL構築運用Terui Masashi
 
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニングクラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニングTerui Masashi
 
マルチクラウド #とは
マルチクラウド #とはマルチクラウド #とは
マルチクラウド #とはTerui Masashi
 
Lambda(Python)のデプロイについて考えたというか作った
Lambda(Python)のデプロイについて考えたというか作ったLambda(Python)のデプロイについて考えたというか作った
Lambda(Python)のデプロイについて考えたというか作ったTerui Masashi
 
Google App Engine for PHPとそのローカル開発環境について
Google App Engine for PHPとそのローカル開発環境についてGoogle App Engine for PHPとそのローカル開発環境について
Google App Engine for PHPとそのローカル開発環境についてTerui Masashi
 
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」Terui Masashi
 
ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!Terui Masashi
 
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)Terui Masashi
 
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話Terui Masashi
 
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話Terui Masashi
 

Mehr von Terui Masashi (20)

Reliability Engineering for Enterprise Serverless
 Reliability Engineering  for Enterprise Serverless Reliability Engineering  for Enterprise Serverless
Reliability Engineering for Enterprise Serverless
 
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
 
What is Serverless?
What is Serverless?What is Serverless?
What is Serverless?
 
クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)
クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)
クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)
 
The Internal of Serverless Plugins
The Internal of Serverless PluginsThe Internal of Serverless Plugins
The Internal of Serverless Plugins
 
Unlimited Frameworks
Unlimited FrameworksUnlimited Frameworks
Unlimited Frameworks
 
Cloud Vsion APIによるGUIの検証自動化
Cloud Vsion APIによるGUIの検証自動化Cloud Vsion APIによるGUIの検証自動化
Cloud Vsion APIによるGUIの検証自動化
 
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
 
Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?
 
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
 
R○Sに学ぶイマドキのMySQL構築運用
���������������������������������������R○Sに学ぶイマドキのMySQL構築運用���������������������������������������R○Sに学ぶイマドキのMySQL構築運用
R○Sに学ぶイマドキのMySQL構築運用
 
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニングクラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
 
マルチクラウド #とは
マルチクラウド #とはマルチクラウド #とは
マルチクラウド #とは
 
Lambda(Python)のデプロイについて考えたというか作った
Lambda(Python)のデプロイについて考えたというか作ったLambda(Python)のデプロイについて考えたというか作った
Lambda(Python)のデプロイについて考えたというか作った
 
Google App Engine for PHPとそのローカル開発環境について
Google App Engine for PHPとそのローカル開発環境についてGoogle App Engine for PHPとそのローカル開発環境について
Google App Engine for PHPとそのローカル開発環境について
 
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
 
ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!
 
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
 
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
 
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
 

AWS運用監視ノウハウ CloudWatch 〜作ってからが本番です!〜

  • 2. はじめまして!(じゃない方はこんにちは!) Masashi Terui 照井 将士 ! https://www.facebook.com/marcy.terui https://twitter.com/FumblePerson !           (株)アグレックス 札幌事業所 システム部           AWS Consulting Partner New!!           AWSチーム技術リーダー(的な立ち位置) ! JAWS-UG札幌下っ端メンバー Chef Meetup Sapporo主催 New!! ! 東京生まれ札幌育ち 1987年 東京都大田区に生まれる 1992年 札幌へ移住 ! 好きなAWSサービス:AWSドキュメント(サービスじゃないけど)
  • 3. Agenda CloudWatchって何? なんでCloudWatch? 基本操作とカスタムメトリクス(デモ) CloudWatchの基本概念 CloudWatchの良い所 CloudWatchの足りない所 もっと便利に 新機能CloudWatch Logs まとめ この辺りは独自の解釈が含まれており、 AWSの公式情報ではない部分も多いです。
  • 4. CloudWatchって何? AWSのリソースをモニタリングするためのWebサービス CloudWatchの特徴 EC2インスタンスや各サービスのモニタリング 利用料金の取得も可能 その他、カスタムメトリクスとして、 任意のデータも保存可能 メトリクスをベースにアラームを設定できる アラームからAuto Scaling Policy実行、SNSで通知
  • 5. なんでCloudWatch? その疑問は正しいです 数あるサービスの中でも地味 ぶっちゃけイケてない所もある(良い所もいっぱいありますよ!) Zabbix,NagiosとかNew Relic,Mackerelとかの方が良い所あるよ? だがしかし!AWSを便利に使いたいなら必須! RDSとかELBとかそもそも独自の内部監視(Agent等)を入れられない 特にELBは埋もらせておくには惜しい情報が多い AutoScalingやる時に使う どうせ使わないといけないなら上手く使いたい 運用監視大事! 派手な構築の話だけでは実際のシステムは成り立たない わがまま言ってごめんなさい(to 関係者)
  • 6. CloudWatchの基本概念 CloudWatchは必ずしも監視サービスではないかも? フルマネージドな時系列データストア+アプリケーション メトリクスのグラフGUIが付いてる 閾値を指定してトリガーを登録できる 組み合わせることで監視サービスになる トリガーにSNSを登録してプッシュ通知 E-mail HTTP Request → 自動リアルタイム処理(すぐにアクション) SQS → 自動バッチ処理(時間がかかる、確実に処理したい) 他サービス同様、APIで情報取得・コントロールができる 独自の監視の仕組みが作れる 監視以外にも使える 少なくともAutoScalingは監視じゃない AutoScalingや各種自動化等の運用支援サービスと言えるかも
  • 10. 基本操作とカスタムメトリクス(デモ) 実際の手順 SNSトピックを登録 メール通知 Subscribe(通知受信許可) IAM Role作成 cloudwatch:putMetricData(メトリクス送信) ec2:describeInstances(自身のデータを取得) EC2起動 UserData(cloud-init)で諸々設定 Apache HTTP Serverインストール 定期的にhttpdプロセス数のカスタムメトリクスを送信する設定 アラーム設定 httpdプロセス数のカスタムメトリクス Apache Benchでプロセス数を上げてみる メール通知が飛んだら成功! 時間の都合上この方法ですが、先に作成してからSSHで流す、 Chefレシピやスクリプト実行等、方法は色々あります。
  • 11. 基本操作とカスタムメトリクス(デモ) IAM Roleの内容 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "cloudwatch:PutMetricData" ], "Resource": [ "*" ] } ] }
  • 12. 基本操作とカスタムメトリクス(デモ) UserDataのシェル内容 #!/bin/sh REGION=`curl http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/.$//g'` ENDPOINT=http://monitoring.$REGION.amazonaws.com INSTANCE_ID=`curl http://169.254.169.254/latest/meta-data/instance-id` INSTANCE_NAME=$(aws ec2 describe-instances --region ${REGION} --instance-ids ${INSTANCE_ID} --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value' --output text) ( cat <<-EOP #!/bin/sh PROC=`ps -ef | grep "httpd" | grep -v "grep" | wc -l` NOW=`date --iso-8601=seconds` aws cloudwatch --region=$REGION --endpoint-url=$ENDPOINT put-metric-data --namespace "System/Linux" --metric-data "[{"Dimensions": [{"Name":"Instance","Value":"$INSTANCE_NAME($INSTANCE_ID)"}],"Timestamp":"$NOW","Value":$PROC.0,"Unit":"Count", "MetricName":"Process-httpd"}]" EOP ) > /usr/local/cloudwatch.sh chmod 755 /usr/local/cloudwatch.sh ( cat <<-EOP * * * * * /usr/local/cloudwatch.sh > /dev/null 2>&1 EOP ) > /usr/local/.crontab crontab /usr/local/.crontab yum -y install httpd php ( cat <<-EOP <?php sleep(1); ?> JAWS Festa 2014!!<br/> $INSTANCE_NAME($INSTANCE_ID) EOP ) > /var/www/html/index.html /etc/init.d/httpd start
  • 13. CloudWatchの良い所 安い(2014.09.06現在、月当たり) 無料枠 標準提供のメトリクス 10カスタムメトリクス、10アラーム、100万APIリクエスト 料金設定 $0.50 / カスタムメトリクス $0.10 / アラーム $0.01 / 1,000 API リクエスト 監視用にサーバ立てるよりも遥かに安いと思われる サーバ/システム保守コストも考えよう もちろん使い方による
  • 14. CloudWatchの良い所 スケーラブル 何百台でも何千台でも 何項目(カスタムメトリクス)でも カスタムメトリクスでなんでも突っ込める メトリクスの取得APIもシステム負荷を気にせずにいつでもどこでも 保存容量無制限(ただし、保存期間は2週間) フルマネージドで運用要らず(↓自前運用時の例) メトリクスデータストア(DBサーバ) APIエンドポイント(Web/APサーバ) Web GUI(Web/APサーバ) 通知システム(メールサーバ等)
  • 15. CloudWatchの良い所 他サービスとの連携 AutoScaling SNSによる多彩な通知方法 人に通知(メール) システムに通知(HTTP、SQS) IAMによる認証機構 IAM Role Credentialキー 二段階認証 目的別に権限指定できる(↓例) 監視対象にはメトリクス登録権限だけ与える メトリクス取得だけできる外部監視システム連携用 グラフを見るだけの監視員ユーザ
  • 16. CloudWatchの足りない所 2週間しか保存できない メトリクスの間隔は最短1分 秒単位のリアルタイム監視ができない ただし、1分間(以上も可)の集計値を入れることもできる Max,Min,Total,SampleCountの項目がある 単純に一つの瞬間値だけ入れることも可能 通知内容のフォーマットが変えられない SNS側の制限でもある メッセージタイトルがどうなるか考えて名前とか付ける必要が… メッセージ文面が分かりづらい(もちろん英語…) システム通知のフォーマット変わると困るけど
  • 17. CloudWatchの足りない所 最近はだいぶ良くなったけど、まだGUIが微妙…     ※個人的見解 メトリクスのデータ構造が独自でちょっとわかりにくい ※個人的見解 Namespace ≒ 監視グループ(標準ではサービス毎) MetricName ≒ 監視項目 Dimensions ≒ 監視対象の情報(e.g. AZ, Instance[Name,Id]) ここから先は個人的願望ですw メトリクスにタグつけたい アラームにタグつけたい Dimensionsだとメトリクスデータの持ち方が変わってしまうので
  • 18. もっと便利に 別のデータストアに連携する 2週間より長く保持したい 見ることをとりあえず考えないならS3 すぐに or 定期的に見たいなら(+もっと見やすく!) GrowthForecast(主にMySQL)→ シンプル! http://kazeburo.github.io/GrowthForecast/index.ja.html Zabbix(主にMySQL)→ 多機能なので見るだけだと勿体無い http://www.zabbix.com/jp/ Grafana (Graphite or InfluxDB) → オススメ! http://grafana.org/ その他にも色々あります 視覚化目的の場合、CloudWatchを一時保管用・予備GUIと捉えると良い 2週間以前が失われても仕方ないと割り切る データストアの可用性担保や障害復旧にゆとりができる 長期保存要件があるならついでにS3に入れておく
  • 19. もっと便利に 参考までに弊社の監視ダッシュボード(by Grafana)です。 ほとんどの情報をCloudWatchから取得している。 一部例外有(Response TimeやSlow Query等) ! 請求情報やインスタンス数とかも見れたり… ※部外者に見せたら怒られるので載せてませんがw
  • 20. もっと便利に メール以外の通知方法を作る IRC チャットサービス(HipChatやSlack等) Twitter SNSのHTTP通知やSQS通知 HTTP通知をどこかのサーバで受ける SQSをどこかのサーバがポーリング 受け取ったメッセージを解析し、対象のAPI等へ送信 中継だけじゃなく、システム内で閉じた自動対応の仕組みも作れる そこまではやってないですが…いずれやりたい
  • 21. もっと便利に 参考までに弊社のHipChat通知 通知された内容だけだと、 その時何が起きているのか把握しにくいので、 全体の状態を取得した上で出したりしている 状態が変化したら再度通知 平常時の監視運用業務から煩雑なメールを撤廃 モバイルクライアントもあるので外出先からも見られる ※見たく無いですけどね!w
  • 22. もっと便利に 別の監視システムと統合する 一つであらゆる問題に対応できるものは無い(当然CloudWatchも) 既に確立された監視の仕組みを持っている場合 EC2はそれをそのまま使っても良い その他サービスはAPIでデータを抜いて集約する方法もある ZabbixとかSensuとかだとWeb上に色々情報がある おググりください 誰かが作ったPluginが既に公開されている場合も https://github.com/sensu/sensu-community-plugins 逆に、別のシステムで取ったデータをCloudWatchに集約しても良い カスタムメトリクスは何でもあり(形式さえ合わせられれば) 別の監視ツールなら簡単に取れて有用な指標もある 全く別々に扱うと運用に困るかも… 集約する or 役割分担をハッキリしておく
  • 23. もっと便利に 参考までにCloudWatch→Graphite(Grafana)のデータ連携を行うスクリプト(PHP) 都合上、実際に使用している ものではありませんが、 全体でたったの60行未満。 ※ウンコードなのはご勘弁w ! これを定期的(cron)に実行。 ! 大体こんなレベルで大抵は 実現できたりします。
  • 24. 新機能CloudWatch Logs 新機能!(2014.07 AWS Summit NYCで発表された) ログの監視と集約のための機能 無料枠が大きい! モニタリング用5GB(期間指定) アーカイブ用5GB(指定期間後自動でアーカイブ) 現状はUS Eastのみのサポート とりあえず貯めるだけなら別にUSでも良いかも バックエンドはKinesisらしい Kinesisは東京来てるから時間の問題?
  • 25. 新機能CloudWatch Logs 転送エージェントを利用してアップロード AWS純正エージェント fluent-plugin-cloudwatch-logs もちろんAPIからのアップロードも可能 ただし、欠損等のケアは自分でやらないといけない ログの保管形式 Log Event ≒ ログレコード Log Stream ≒ 発生元毎のログシーケンス Log Group ≒ ログ種別 フィルターを設定する 該当した数がCloudWatchメトリクスとして登録される モニタリング アラーム設定して通知 It’s me!! ※他Pluginの機能を移植しただけw
  • 26. 新機能CloudWatch Logs 新機能で使い倒してないので所感レベルですいません 安い 大きな無料枠 モニタリング対象は月当たり$0.5/GB 長期保存アーカイブは≒S3の保存料金っぽい アーカイブ時にさらに圧縮されて保存されるらしい とりあえずでS3に入れて塩漬けになっているようであれば乗り換え対象 他のログ管理サービスと比べると物足りない感がある? リアルタイムモニタリングできない 検索できない 目指している方向が違う気もしている 現状はフィルター(からのメトリクス)監視に特化 CloudWatchと同じで、物足りない部分は他と連携して解決するものっぽい 一時集約用+長期保存アーカイブ 何か(例えばFluentd Plugin)で吸い上げて分析用データストアへ…とか? 今後、機能は増えるはずなのであくまで現状
  • 27. まとめ 作ってからが本番です! AWSを使う上で、CloudWatchは避けて通ることはできない シンプルにも使えるし、色々組み合わせて便利にも使える 便利な機能がたくさんあるが、物足りない部分もある 利点は活用し、欠点は何かで補って使おう 他ツール連携やAPIインテグレーションは実は簡単 あなたの運用監視スタイルを確立しよう! 上手に使って良い運用監視ライフを!