【AWS CLI】Cost Explorer編

記事タイトルとURLをコピーする

こんにちは。AWS CLIが好きな福島です。

今回は、AWS CLIでAWS利用料を出力してみたので、その内容をブログに記載いたします。

その他のAWS CLI関連の記事

私はよくqueryを使うため、queryの使い方が分からない方は、こちらを参照していただけますと幸いです。

実行環境

今回、コマンドを実行した環境は、以下の通りとなります。
(本記事でご紹介しているコマンドの中には、Linuxのコマンドを利用している箇所があります。)

# uname -a
Linux LAPTOP-CNM26HN6 4.4.0-18362-Microsoft #1049-Microsoft Thu Aug 14 12:01:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux
#

ポイント

  • いつの利用料を取得したいかによって、STARTおよびENDの変数を変更する必要があります。

  • 今月、先月、本日、昨日の4つは、「変数の定義」項目に記載しているコマンドを実行すればOKです。
    ※それ以外の日付のAWS利用料を取得したい場合は、ご自身で定義いただければ幸いです。

  • STARTおよびENDの変数を定義した上で「コマンドのご紹介」項目に記載しているコマンドを実行します。

  • 今回は、
    aws ce get-cost-and-usage
    aws ce get-cost-forecast
    get-cost-and-usage-with-resources
    を使ってます。

  • 「aws ce get-cost-and-usage」では、「--time-period」引数にStartおよびEndを指定する必要がありますが、 Startは、包括的、Endは排他的になります。例えば、Startに2021-02-01と指定した場合は、02-01を含みますが、 Endに2021-02-01と指定した場合は、02-01が含まれません。つまり、2月分の利用料を確認する場合、 Start=2021-02-01,End=2021-03-01と指定します。

  • ブレンドコストとは、以下の通りです。 AWS Organizations の一括請求機能を有効にしていることが多いかと思いますので、基本的には、ブレンドコストを確認することになるかと存じます。

aws.amazon.com

AWS では、請求目的のため、組織内のすべてのアカウントを 1 つのアカウントとして扱います。 組織内のアカウントの価格帯とキャパシティーの予約は、1 つの一括請求書にまとめられます。 アカウントを 1 つの請求にまとめると、サービスによっては 1 時間あたりの実質料金を下げることができます。

1 時間あたりの実質料金は、コストと使用状況レポートや AWS Cost Explorer では 「ブレンド」レートと表示されます。 コンソールにブレンドレートが表示されるのは、情報提供のみを目的としています。

後は、以下のドキュメントも参考になるかと存じます。

docs.aws.amazon.com

混合コストを表示 このコスト測定基準は、一括請求 (コンソリデーティッドビリング) 全体の平均使用コストを反映しています。AWS Organizations の一括請求機能を使用する場合は、ブレンドコストを使用してコストを表示できます。詳細については、「ブレンドレート」を参照してください。

未ブレンドコストを表示 このコスト測定基準は、使用コストを反映します。請求タイプ別にグループ化された場合、非ブレンドコストは割引をそれぞれの明細項目に分けます。これにより、受け取った各割引の金額を確認できます。

変数の定義

今月

START=$(date +"%Y-%m-01");\
END=$(date +"%Y-%m-01" -d"1 month")

先月

START=$(date +"%Y-%m-01" -d"1 month ago");\
END=$(date +"%Y-%m-01")

本日

START=$(date +"%Y-%m-%d");\
END=$(date +"%Y-%m-%d" -d"1 day")

昨日

START=$(date +"%Y-%m-%d" -d"1 day ago");\
END=$(date +"%Y-%m-%d")

コマンドのご紹介

利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--query "ResultsByTime[].Total[].\
[BlendedCost.Amount,BlendedCost.Unit,\
UnblendedCost.Amount,UnblendedCost.Unit]" \
--output text  | tr "\t" "," >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
BlendedCost   Amount  UnblendedCost  Amount
0.4521480488  USD     0.4521480474   USD

AWSアカウントごとの利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "AccountID,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--group-by Type=DIMENSION,Key=LINKED_ACCOUNT \
--query "ResultsByTime[].Groups[].[Keys[0],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -Vrk 2 -t, >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
AccountID     BlendedCost   Amount  UnblendedCost  Amount
444444444444  0.4500736589  USD     0.4500736577   USD
222222222222  0.0011343707  USD     0.0011343705   USD
333333333333  0.0000000192  USD     0.0000000192   USD
111111111111  0.00094       USD     0.00094        USD

サービスごとの利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "SERVICE,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--group-by Type=DIMENSION,Key=SERVICE \
--query "ResultsByTime[].Groups[].[Keys[0],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -Vrk 2 -t, >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
SERVICE                             BlendedCost   Amount  UnblendedCost  Amount
Amazon Simple Storage Service       0.0011746659  USD     0.0011746645   USD
EC2 - Other                         0.0000238095  USD     0.0000238095   USD
Amazon Elastic File System          0.0000095734  USD     0.0000095734   USD
AWS CloudTrail                      0.00094       USD     0.00094        USD
AWS Cost Explorer                   0.41          USD     0.41           USD
Tax                                 0.04          USD     0.04           USD
AmazonCloudWatch                    0             USD     0              USD
Amazon Simple Queue Service         0             USD     0              USD
Amazon Simple Notification Service  0             USD     0              USD
AWS Lambda                          0             USD     0              USD
AWS Key Management Service          0             USD     0              USD
AWS Glue                            0             USD     0              USD

使用タイプごとの利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "USAGE_TYPE,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--group-by Type=DIMENSION,Key=USAGE_TYPE \
--query "ResultsByTime[].Groups[].[Keys[0],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -Vrk 2 -t, >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
USAGE_TYPE                                     BlendedCost   Amount  UnblendedCost  Amount
APN1-BoxUsage:t3.micro                         -0            USD     -0             USD
APN1-BoxUsage:t2.nano                          -0            USD     -0             USD
APN1-BoxUsage:t2.micro                         -0            USD     -0             USD
HostUsage:mac1                                 26.474861065  USD     26.474861065   USD
APN1-EBS:VolumeUsage.gp2                       8.5466648984  USD     8.5466648984   USD
APN1-AmazonEKS-Hours:perCluster                7.169021111   USD     7.169021111    USD
DashboardsUsageHour-Basic                      5.8962861298  USD     6.0410714356   USD
APN1-ESInstance:t3.small                       5.972         USD     5.972          USD
APN1-RDS:GP2-Storage                           4.000913139   USD     4.000913139    USD
APN1-PaidEventsRecorded                        4.68246       USD     4.68246        USD
APN1-ConfigurationItemRecorded                 4.057         USD     4.057          USD
APN1-EBS:VolumeUsage.gp3                       3.8872018722  USD     3.8872018722   USD
Global-WebACLV2                                2.407499944   USD     2.407499944    USD
APN1-PaidComplianceCheck                       2.915         USD     2.915          USD
APN1-LoadBalancerUsage                         2.461         USD     2.461          USD
APN1-VpcEndpoint-Hours                         2.432         USD     2.432          USD
APN1-DataProcessing-Bytes                      1.4504352358  USD     1.5977315767   USD
Health-Check-Option-Non-AWS                    1.0185714282  USD     1.0185714282   USD
APN1-EBS:SnapshotUsage                         0.5205365863  USD     0.5205365863   USD
HostedZone                                     0.4682488479  USD     0.33           USD

リージョンごとの利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "REGION,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--group-by Type=DIMENSION,Key=REGION \
--query "ResultsByTime[].Groups[].[Keys[0],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -Vrk 2 -t, >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
REGION         BlendedCost   Amount  UnblendedCost  Amount
us-east-1       0.4118743707  USD     0.4118743705   USD
ap-northeast-1  0.0002736781  USD     0.0002736769   USD
NoRegion        0.04          USD     0.04           USD
us-west-2       0             USD     0              USD
us-west-1       0             USD     0              USD
us-east-2       0             USD     0              USD
sa-east-1       0             USD     0              USD
global          0             USD     0              USD
eu-west-3       0             USD     0              USD
eu-west-2       0             USD     0              USD
eu-west-1       0             USD     0              USD
eu-north-1      0             USD     0              USD
eu-central-1    0             USD     0              USD
ca-central-1    0             USD     0              USD
ap-southeast-2  0             USD     0              USD
ap-southeast-1  0             USD     0              USD
ap-south-1      0             USD     0              USD
ap-northeast-2  0             USD     0              USD

AWSアカウント&サービスごとの利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "AccountId,SERVICE,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--group-by Type=DIMENSION,Key=LINKED_ACCOUNT Type=DIMENSION,Key=SERVICE \
--query "ResultsByTime[].Groups[].[Keys[0],Keys[1],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -Vrk 3 -t, >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
AccountId     SERVICE                             BlendedCost   Amount  UnblendedCost  Amount
222222222222  Amazon Simple Storage Service       0.0011343707  USD     0.0011343705   USD
444444444444  EC2 - Other                         0.0000238095  USD     0.0000238095   USD
444444444444  Amazon Elastic File System          0.0000095734  USD     0.0000095734   USD
444444444444  Amazon Simple Storage Service       0.000040276   USD     0.0000402748   USD
333333333333  Amazon Simple Storage Service       0.0000000192  USD     0.0000000192   USD
111111111111  AWS CloudTrail                      0.00094       USD     0.00094        USD
444444444444  AWS Cost Explorer                   0.41          USD     0.41           USD
444444444444  Tax                                 0.04          USD     0.04           USD
222222222222  Tax                                 0             USD     0              USD
111111111111  Tax                                 0             USD     0              USD
333333333333  AWS CloudTrail                      0             USD     0              USD
444444444444  AmazonCloudWatch                    0             USD     0              USD
444444444444  Amazon Simple Queue Service         0             USD     0              USD
444444444444  Amazon Simple Notification Service  0             USD     0              USD
444444444444  AWS Lambda                          0             USD     0              USD
444444444444  AWS Key Management Service          0             USD     0              USD
444444444444  AWS Glue                            0             USD     0              USD
444444444444  AWS CloudTrail                      0             USD     0              USD

AWSアカウント&使用タイプごとの利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "AccountId,USAGE_TYPE,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--group-by Type=DIMENSION,Key=LINKED_ACCOUNT Type=DIMENSION,Key=USAGE_TYPE  \
--query "ResultsByTime[].Groups[].[Keys[0],Keys[1],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -Vrk 3 -t, >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
AccountId     USAGE_TYPE                                         BlendedCost   Amount  UnblendedCost  Amount
111111111111  APN1-BoxUsage:t3.micro                         -0            USD     -0             USD
111111111111  APN1-BoxUsage:t2.nano                          -0            USD     -0             USD
111111111111  APN1-BoxUsage:t2.micro                         -0            USD     -0             USD
111111111111  HostUsage:mac1                                 26.474861065  USD     26.474861065   USD
111111111111  APN1-EBS:VolumeUsage.gp2                       8.5466648984  USD     8.5466648984   USD
111111111111  APN1-AmazonEKS-Hours:perCluster                7.169021111   USD     7.169021111    USD
111111111111  DashboardsUsageHour-Basic                      5.8962861298  USD     6.0410714356   USD
111111111111  APN1-ESInstance:t3.small                       5.972         USD     5.972          USD
111111111111  APN1-RDS:GP2-Storage                           4.000913139   USD     4.000913139    USD
111111111111  APN1-PaidEventsRecorded                        4.68246       USD     4.68246        USD
111111111111  APN1-ConfigurationItemRecorded                 4.057         USD     4.057          USD
111111111111  APN1-EBS:VolumeUsage.gp3                       3.8872018722  USD     3.8872018722   USD
111111111111  Global-WebACLV2                                2.407499944   USD     2.407499944    USD

AWSアカウント&リージョンごとの利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "AccountId,REGION,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--group-by Type=DIMENSION,Key=LINKED_ACCOUNT Type=DIMENSION,Key=REGION \
--query "ResultsByTime[].Groups[].[Keys[0],Keys[1],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -Vrk 3 -t, >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
AccountId     REGION          BlendedCost   Amount  UnblendedCost  Amount
222222222222  us-east-1       0.0011343707  USD     0.0011343705   USD
444444444444  ap-northeast-1  0.0000336589  USD     0.0000336577   USD
444444444444  us-east-1       0.41004       USD     0.41004        USD
333333333333  ap-northeast-1  0.0000000192  USD     0.0000000192   USD
111111111111  ap-northeast-1  0.00024       USD     0.00024        USD
111111111111  us-east-1       0.0007        USD     0.0007         USD
444444444444  NoRegion        0.04          USD     0.04           USD
222222222222  NoRegion        0             USD     0              USD
111111111111  NoRegion        0             USD     0              USD
333333333333  us-east-1       0             USD     0              USD
444444444444  us-west-2       0             USD     0              USD
444444444444  us-west-1       0             USD     0              USD
444444444444  us-east-2       0             USD     0              USD
444444444444  sa-east-1       0             USD     0              USD
444444444444  global          0             USD     0              USD
444444444444  eu-west-3       0             USD     0              USD
444444444444  eu-west-2       0             USD     0              USD
444444444444  eu-west-1       0             USD     0              USD
444444444444  eu-north-1      0             USD     0              USD
444444444444  eu-central-1    0             USD     0              USD
444444444444  ca-central-1    0             USD     0              USD
444444444444  ap-southeast-2  0             USD     0              USD
444444444444  ap-southeast-1  0             USD     0              USD
444444444444  ap-south-1      0             USD     0              USD
444444444444  ap-northeast-2  0             USD     0              USD

サービス&使用タイプごとの利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "SERVICE,USAGE_TYPE,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--group-by Type=DIMENSION,Key=SERVICE Type=DIMENSION,Key=USAGE_TYPE  \
--query "ResultsByTime[].Groups[].[Keys[0],Keys[1],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -Vrk 3 -t, >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
SERVICE                                          USAGE_TYPE                                     BlendedCost   Amount  UnblendedCost  Amount
Amazon Elastic Compute Cloud - Compute           APN1-BoxUsage:t3.micro                         -0            USD     -0             USD
Amazon Elastic Compute Cloud - Compute           APN1-BoxUsage:t3.large                         -0            USD     -0             USD
Amazon Elastic Compute Cloud - Compute           HostUsage:mac1                                 24.064861065  USD     24.064861065   USD
EC2 - Other                                      APN1-EBS:VolumeUsage.gp2                       7.7666648984  USD     7.7666648984   USD
Amazon Elastic Container Service for Kubernetes  APN1-AmazonEKS-Hours:perCluster                6.519021111   USD     6.519021111    USD
AmazonCloudWatch                                 DashboardsUsageHour-Basic                      5.3462861298  USD     5.4910714356   USD
Amazon Elasticsearch Service                     APN1-ESInstance:t3.small                       5.432         USD     5.432          USD
AWS CloudTrail                                   APN1-PaidEventsRecorded                        4.25246       USD     4.25246        USD
EC2 - Other                                      APN1-EBS:VolumeUsage.gp3                       3.5372018722  USD     3.5372018722   USD
Amazon Relational Database Service               APN1-RDS:GP2-Storage                           3.640913139   USD     3.640913139    USD

使用タイプ&リージョンごとの利用料

echo "##########################################";\
echo  "## Start : ${START} End : ${END}";\
echo "##########################################";\
echo "USAGE_TYPE,REGION,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" \
--group-by Type=DIMENSION,Key=USAGE_TYPE  Type=DIMENSION,Key=REGION \
--query "ResultsByTime[].Groups[].[Keys[0],Keys[1],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -Vrk 3 -t, >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
##########################################
## Start : 2021-02-01 End : 2021-03-01
##########################################
USAGE_TYPE                                     REGION          BlendedCost   Amount  UnblendedCost  Amount
APN1-BoxUsage:t3.micro                         ap-northeast-1  -0            USD     -0             USD
APN1-BoxUsage:t3.large                         ap-northeast-1  -0            USD     -0             USD
APN1-BoxUsage:t2.nano                          ap-northeast-1  -0            USD     -0             USD
APN1-BoxUsage:t2.micro                         ap-northeast-1  -0            USD     -0             USD
HostUsage:mac1                                 us-east-1       24.064861065  USD     24.064861065   USD
APN1-EBS:VolumeUsage.gp2                       ap-northeast-1  7.7666648984  USD     7.7666648984   USD
APN1-AmazonEKS-Hours:perCluster                ap-northeast-1  6.519021111   USD     6.519021111    USD
DashboardsUsageHour-Basic                      global          5.3462861298  USD     5.4910714356   USD
APN1-ESInstance:t3.small                       ap-northeast-1  5.432         USD     5.432          USD
APN1-PaidEventsRecorded                        ap-northeast-1  4.25246       USD     4.25246        USD
APN1-EBS:VolumeUsage.gp3                       ap-northeast-1  3.5372018722  USD     3.5372018722   USD
APN1-RDS:GP2-Storage                           ap-northeast-1  3.640913139   USD     3.640913139    USD
APN1-ConfigurationItemRecorded                 ap-northeast-1  3.687         USD     3.687          USD
Global-WebACLV2                                global          2.187499944   USD     2.187499944    USD
APN1-PaidComplianceCheck                       ap-northeast-1  2.645         USD     2.645          USD
APN1-LoadBalancerUsage                         ap-northeast-1  2.241         USD     2.241          USD
APN1-VpcEndpoint-Hours                         ap-northeast-1  2.212         USD     2.212          USD
HostUsage:mac1                                 NoRegion        2.41          USD     2.41           USD
APN1-DataProcessing-Bytes                      ap-northeast-1  1.3004352358  USD     1.4477315767   USD

EC2インスタンス毎の利用料

まずは、JSONファイルを作成します。

cat << EOF > awscli-get-cost-filter.json
{
"Dimensions": {
    "Key": "SERVICE",
    "Values": ["Amazon Elastic Compute Cloud - Compute"],
    "MatchOptions": ["EQUALS"]
   }
}
EOF

JSONファイル作成後、以下のコマンドを実行します。

echo "InstanceId,BlendedCost,Amount,UnblendedCost,Amount" > /tmp/awscli.tmp;\
aws ce get-cost-and-usage-with-resources \
--time-period Start=${START},End=${END} \
--filter file://awscli-get-cost-filter.json \
--granularity MONTHLY \
--group-by Type=DIMENSION,Key=RESOURCE_ID \
--metrics "BlendedCost" "UnblendedCost" \
--query "ResultsByTime[].Groups[].[Keys[0],\
Metrics.BlendedCost.Amount,Metrics.BlendedCost.Unit,\
Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]" \
--output text | tr "\t" "," | sort -t, -Vrk 2 >> /tmp/awscli.tmp;\
column -s, -t /tmp/awscli.tmp;\
rm /tmp/awscli.tmp
  • 実行結果
InstanceId                                                             BlendedCost    Amount  UnblendedCost  Amount
NoResourceId                                                           -4.5646169332  USD     -4.5646169332  USD
arn:aws:ec2:us-east-1:xxxxxxxxxxxx:dedicated-host/h-0dd0562ec0f5feb14  24.064861065   USD     24.064861065   USD
i-0ae8fe8e949338a5c                                                    2.8442838176   USD     2.8442840319   USD
i-0808672558492fde8                                                    0.7589874647   USD     0.7589875164   USD
i-0ef06f9b7e2000544                                                    0.3278859359   USD     0.3278859558   USD
i-0008ca884921e618d                                                    0.2883600433   USD     0.2883600503   USD
i-0263ab216dcbaf6d6                                                    0.1876818934   USD     0.1876819065   USD
i-04ec5a500813aac2c                                                    0.0672870105   USD     0.0672870138   USD
i-09a6462035eb05ae1                                                    0.0196700046   USD     0.0196700647   USD
i-02e25b65bc9c1a605                                                    0.0165617536   USD     0.0165617536   USD
i-0220960160f24adfb                                                    0.0124661987   USD     0.0124662027   USD
i-050f8755b11715ecb                                                    0.025833372    USD     0.0258333733   USD
i-030d81b29f25b6825                                                    0.015776       USD     0.015776       USD
i-0c87157ac0bd31923                                                    0              USD     0              USD

今月の予測コスト

本コマンドは、STARTおよびEND変数を利用していないため、
以下に記載のコマンドをそのまま実行可能です。

aws ce get-cost-forecast --time-period Start=$(date +"%Y-%m-%d"),End=$(date +"%Y-%m-01" -d"1 month") --metric "BLENDED_COST"  --granularity MONTHLY --query "ForecastResultsByTime[].{Start:TimePeriod.Start,End:TimePeriod.End,ForcastCost:MeanValue}"
  • 実行結果
[
    {
        "Start": "2021-02-01",
        "End": "2021-03-01",
        "ForcastCost": "0.0956241845070118"
    }
]

終わりに

今回は、AWSの利用料を確認するコマンドをご紹介しました。 どなたかのお役に立てれば幸いです。

福島 和弥 (記事一覧)

2019/10 入社

AWS CLIが好きです。

AWS資格12冠。2023 Japan AWS Partner Ambassador/APN ALL AWS Certifications Engineer。