OpsWorksのInstanceIdとEc2InstanceId

表題についての単なるメモ。

■ 環境

  • awscli 1.11.2
  • OpsWorks
  • AmazonWebServices
  • Mac OSX El Capitan

■ OpsWorks

現在の職場ではOpsWorksを使用している。`awscli`, `aws-sdk`でOpsWorksから起動しているインスタンス情報を下記のように取得した。

$ aws opsworks describe-instances --stack-id XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

この中から、インスタンスが起動された時間を取得したかったのであるが、”CreatedAt“しか取得できない。これは最初にインスタンスを作成した日時であって`stop`→`start`しても変化は無い。よってインスタンスIDを元にEC2のAPIを再度叩けば取得できるかな、と試してみようとしたのだが、”InstanceId“が見慣れない文字列になっている…。

当初はこの見慣れない文字列でEC2のAPIを叩いてみたのだが、もちろん失敗する。再度`opsworks describe-instances`で出力された内容を見ていると…”Ec2InstanceId“というのがあった。こちらは見慣れた文字列である。これを元にEC2のAPIを叩くことで、”LaunchTime“で起動時間を取得することができた。

$ aws ec2 describe-instances --instance-ids i-XXXXXXXXXXXXXXXX

以上。