AWS

mon-put-dataを使う際のcredentialの設定

mon-put-dataでcustom metrics送信したかったけどcredential情報の設定で少しハマったのでメモ。

結論

AWSAccessKeyIdやAWSSecretKeyを直接exportするのではなく、ファイルに記述した上で、そのファイルPATHをAWS_CREDENTIAL_FILEとして設定する必要があるようです。

インストール時のメッセージに環境変数にexport AWSAccessKeyId=...しろ的なコメントが出るので別にファイルに設定する必要は無いのかな?と思い、しばらくハマりました。

ファイルの作成と設定の記述

適当な場所に設定ファイルを作成します。

cd
vi aws_credential

KeyとかSecretと記述します。

AWSAccessKeyId=xxxxxxxxxx
AWSSecretKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

credentialファイルの位置をexportしてやります。

export AWS_CREDENTIAL_FILE=/path/to/aws_credential

うまく動けば.bash_profileとかに書いておけばいいでしょう。

mon-put-data

Amazon Linux

始めからはいっていますが、上記の設定をする必要があるようです。

Mac

下記でインストール可能です。

brew install aws-mon

CentOS

sudo yum install aws-apitools-mon

Ubuntu

sudo apt-get aws-mon

利用

まあ、おおよそ下記な感じ。

mon-put-data --metric-name "test metrics-001" --namespace "TestMetrics" --dimensions "InstanceId=xxxxxxx" --value 100 --unit "Count" --region ap-northeast-1

regionつけないと、バージニアに飛ぶようです。。。
あと、Metricsは明示的に削除できないようなので、作成するときには名前とか注意した方がいいですね。

InstanceIdの取得

EC2からだと下記で取得可能。動的にやるなり静的にやるなり。

curl -s http://169.254.169.254/latest/meta-data/instance-id

参考