LoginSignup
12
3

More than 5 years have passed since last update.

AWSコマンドが突然うごかなくなるケースに遭遇

Last updated at Posted at 2017-02-01

現象

エラー

ある日突然以下のエラーを出し、AWS CLIコマンドが動かなくなる。

An error occurred (AuthFailure) when calling the DescribeInstances operation: AWS was not able to validate the provided access credentials

原因

インスタンスのClockがずれた。

応急処置

次のコマンドを実行する

sudo ntpdate ntp.jst.mfeed.ad.jp

恒久対応

NTPなど時刻の同期をちゃんと設定する。

詳しく

AWSサーバのインスタンス情報などを取得するためのコマンド、たとえば以下のようなもの

export EC2_INSTANCE_ID=`wget -q -O - http://instance-data/latest/meta-data/instance-id 2> /dev/null`
aws ec2 describe-instances --filters Name=instance-id,Values="$EC2_INSTANCE_ID"

これを使う際には以下のようなAWS CLIを使うための認証用の環境変数を設定しないと、今回のようなAuthエラーがでて使えないのはよく知られているし、普通にドキュメントに書いてある。

export avail_zone=`wget -q -O - http://instance-data/latest/meta-data/placement/availability-zone`
export AWS_DEFAULT_REGION=`echo -n ${avail_zone}|sed -e 's/[a-z]$//'`
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXX

これを設定しておけば通常は認証はOKだ。

だが、認証が失敗するケースはこれだけではない。

インスタンスのOSのClockがズレている場合も認証エラーになるのだ。

問題が起きたのは次のイメージから作ったインスタンス。

ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-20160114.5 (ami-9abea4fb)

このイメージのデフォルトではNTPの設定がされていないため、負荷をかけると時刻がずれていくのであるらしい。

それで、ある日突然AWS CLIが動かなくなり、それを利用していたCronなどがエラーを吐くようになった。

AWSでUbuntuのイメージを使ってインスタンスを作っている人はOSのクロックが同期しているか確認した方がいい。

12
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
3