2014 年 7 月 4 日の小ネタ
ELB 名 (LoadBalancerName) 一覧を取得
かなりムリクリというかダサいやり方ですが…。
Mac OS X に aws-cli と jq がインストールされていることが前提です。
$ aws elb describe-load-balancers | jq '.LoadBalancerDescriptions[]' | grep LoadBalancerName > elb.list; while read LINE; do echo $LINE | cut -b 22- | sed -e 's/",//'; done < elb.list; rm -f elb.list
てか jq いらんねコレ…。
DynamoDB の WriteThrottleEvents を監視する CloudWatch アラームを作成するコマンド
Dynamic DynamoDB を使用していると,ひょっとしてスケールアウトが間に合わずに ThrottleEvents が発生しているんじゃないかと気になります。
(dry run 的に,事前に Dynamic DyanmoDB のログで確認することはできますが,それでもスパイキーなシステムだと,どれだけ事前検証をしても気になるものです)
そこで CloudWatch アラームの登場です。
月毎に名前が変わるテーブルがありまして,月が変わったらすぐに新しいテーブルを監視するアラームを自動的に作成したい。
そこで以下のコマンドを実行しました。
ほとんど私的メモですが共有させていただきます…。
YEAR_MONTH=`/bin/date "+%Y-%m"`; mon-put-metric-alarm \ "テーブル名_${YEAR_MONTH}_WriteThrottle_Alarm" \ --alarm-description "テーブル名_${YEAR_MONTH}_WriteThrottle_Alarm" \ --alarm-actions arn:aws:sns:うんたらかんたら \ --namespace AWS/DynamoDB \ --dimensions "TableName=テーブル名_${YEAR_MONTH}" \ --metric-name WriteThrottleEvents \ --statistic SampleCount \ --period 300 \ --threshold 0 \ --evaluation-periods 1 \ --comparison-operator GreaterThanThreshold \ --region ap-northeast-1 \ -I アクセスキー ID \ -S シークレットキー
--dimensions "TableName=テーブル名" \
が分からなくて少しハマりました。