0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ひろ亭Advent Calendar 2021

Day 13

AWS CLIで Web サイトを構築、管理、運用する(13日目)

Posted at

13日目!
折り返し地点到達です!!

今回は、Web サイトを公開している方で気にならない方はまずいないと思われる(個人の感想です)、アクセス数(リクエスト数)を取得してみます。

13日目の要約

アクセス数(リクエスト数)を取得するよ!

AWS CLI の準備

このあたりをみて、好きなバージョンとお使いのOSにあった環境設定をしてくださいね。
なんなら、 AWS CloudShell で実行するのも楽でよいと思います。
この記事シリーズは、AWS CloudShell で実行し、実行例を載せています。

バージョン1
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv1.html

バージョン2
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html

概要

CloudWatch でアクセス数(リクエスト数)に関するメトリクスを取得、確認するよ!

さあ、やってみよう!

CloudFront のアクセス数(リクエスト数)は、CloudWatch の「Requests」メトリクスが該当します(とはいえ、リクエスト数なので、ガチアクセス数かと言えば微妙なところですが💦)。

メトリクスを取得する

さくさくっと取得してみましょう!
アクセス数が少なそうであれば、確認のために、何回かアクセスしてみたり、 while あたりを使って curl コマンドをぶん回しまくればいいとおもいます(雑

cloudwatch get-metric-statistics コマンドを使用します。
以下の例では現在時刻から1時間前までの間の 5分(300秒)ごとのリクエスト数の合計値を取得するようにしています。

ENDTIME=`date +%Y-%m-%dT%H:%M:00`
STARTTIME=`date --date "${ENDTIME} 1 hours ago" +%Y-%m-%dT%H:%M:00`

aws cloudwatch get-metric-statistics --namespace "AWS/CloudFront" \
--metric-name Requests  \
--dimensions Name=DistributionId,Value=<CloudFront ディストリビューションID> Name=Region,Value=Global  \
--statistics Sum --start-time ${STARTTIME}Z --end-time ${ENDTIME}Z  \
--period 300 --region us-east-1

成功すると以下のように、 リクエスト数が出力されます。Timestamp の並び順が時系列順ではないので注意ください。

{
    "Label": "Requests",
    "Datapoints": [
        {
            "Timestamp": "2021-12-12T15:12:00+00:00",
            "Sum": 30.0,
            "Unit": "None"
        },
        {
            "Timestamp": "2021-12-12T15:47:00+00:00",
            "Sum": 29.0,
            "Unit": "None"
        },
        {
            "Timestamp": "2021-12-12T15:22:00+00:00",
            "Sum": 30.0,
            "Unit": "None"
        },
(略)
]

もし、Timestamp を時系列順にしたいのであれば、 以下のように jq コマンドと組み合わせると良いでしょう。

ENDTIME=`date +%Y-%m-%dT%H:%M:00`
STARTTIME=`date --date "${ENDTIME} 1 hours ago" +%Y-%m-%dT%H:%M:00`

aws cloudwatch get-metric-statistics --namespace "AWS/CloudFront" \
--metric-name Requests \
--dimensions Name=DistributionId,Value=<CloudFront ディストリビューションID> Name=Region,Value=Global  \
--statistics Sum --start-time ${STARTTIME}Z --end-time ${ENDTIME}Z  \
--period 60 --region us-east-1 | jq '.Datapoints | sort_by(.Timestamp)'

これで、CloudWatch メトリクスで記録されている値を AWS CLI で取得できるようになりました。

まとめ

コマンドでリクエスト数を出力することで、例えば値を報告すうる際の抽出に使えたりするのではないでしょうか。
CloudFront に限らず、各種メトリクスが取得できますので、運用報告などの場面でも発揮できると思います。

  • 今回使ったコマンド
  • cloudwatch get-metric-statistics
0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?