プレイヤーズ・ハイ

 雑多な日記

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=テーブル名" \ が分からなくて少しハマりました。