AWS CLI を使って EC2 リザーブドインスタンスを一覧にします。
aws ec2 describe-reserved-instances --filter Name=state,Values=active | \
jq -r ".ReservedInstances[] | [.Duration, .End, .InstanceCount, .InstanceType, .ProductDescription, .State, .InstanceTenancy, .RecurringCharges[0].Amount, .OfferingClass, .OfferingType, .Scope] | @csv"
解説
2つのコマンドをパイプで繋いでいます。
JSON 取得
aws ec2 describe-reserved-instances --filter Name=state,Values=active
これでアクティブな EC2 Reserved Instance が JSON で取得できます。
結果は次のようになります。
{
"ReservedInstances": [
{
"Duration": 31536000,
"End": "2020-04-30T07:17:45+00:00",
"FixedPrice": 0.0,
"InstanceCount": 1,
"InstanceType": "t2.micro",
"ProductDescription": "Linux/UNIX (Amazon VPC)",
"ReservedInstancesId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"Start": "2019-04-30T07:17:46+00:00",
"State": "active",
"UsagePrice": 0.0,
"CurrencyCode": "USD",
"InstanceTenancy": "default",
"OfferingClass": "standard",
"OfferingType": "No Upfront",
"RecurringCharges": [
{
"Amount": 0.01000,
"Frequency": "Hourly"
}
],
"Scope": "Region"
},
アクティブでないものも取得したい場合は --filter
を削除します。
JSON を CSV に変換
jq コマンド を使ってCSVに変換します。 AWS CloudShell でも使えます。
jq -r ".ReservedInstances[] | [.Duration, .End, .InstanceCount, .InstanceCount, .ProductDescription, .State, .InstanceTenancy, .RecurringCharges[0].Amount, .OfferingClass, .OfferingType, .Scope] | @csv"